1992 年 7 巻 3 号 p. 487-495
In this paper, we describe design and implementation of a constraint logic programming language EPOCH. EPOCH can interpret two types of constraints, "required constraint" that must be satisfied and "goal constraint" that not have to but should be satisfied. Goal constraint is used to find an "optimal solution" from more than one feasible solution. Under this constraint model, this paper describes formalization of optimal solutions for a problem in terms of mathematical programming framework. EPOCH translates constraints described in a program into a standard linear programming problem, and EP0CH's constraint solver can find an optimal solution with the implex method for goal programming. In order to demonstrate EPOCH, this paper shows two examples ; a layout problem and a scheduling problem. In general, inequalities are more useful than equations to express time constraints or location constraints. Therefore, these problems generally have many feasible solutions. However, existing languages, such as CLP(ℜ), CHIP and Prolog-III, do not have any basis to find a particular solution, because they can only interpret required constraints. In contrast with them, EPOCH has the ability of finding an optimal solution based on goal constraints. Thus, EPOCH is applicable to many kinds of problems compared with existing languages.