A Generalized Algorithm for Solving Constraint Hierarchies (1997) [2 citations — 2 self]
Abstract:
Constraint hierarchies have been proposed to overcome over-constrained systems of constraints by specifying constraints with hierarchical preferences. They are widely used in HCLP (Hierarchical Constraint Logic Programming), CIP (Constraint Imperative Programming) and graphical user interfaces. The advantages of constraint hierarchies are a declarative expression of preferred constraints and the existence of efficient satisfaction algorithms. At present, there exist a lot of relatively independent constraint hierarchy solvers/satisfaction algorithms that could be classified into two categories: refining and local propagation algorithms. While the local propagation algorithms are fast but limited to equality (functional) constraints the more general refining algorithms are not incremental. In this paper we propose a generalized algorithm for solving constraint hierarchies. This algorithm combines advantages of both refining and local propagation approaches. It is based on ideas of local propagation however it is not limited to one type of comparators. The algorithm solves constraint hierarchies, even if some constraints must be solved simultaneously, by dividing them into constraint cells as much as possible. By constructing a constraint network/graph it also supports "constraint planning", i.e., the method of smart resatisfying of constraints when a value of one variable is changed. The proposed algorithm fits in our concept of plug-in architecture of constraint hierarchy solvers.

