Constraint programming allows the behavior of a program to be specified declaratively in terms of constraints. A constraint is a system-maintained assertion about the desired state of the program's data structures. To specify the behavior of a system of constraints more precisely, the authors have found it useful to separate constraints into levels according to their relative importance, creating a constraint hierarchy. Constraint hierarchies have been used effectively in such applications as interactive simulations and user interface construction. Future applications of constraint programming will make more frequent changes to the constraint hierarchy at runtime, placing stringent performance requirements on the constraint solver. Previous algorithms for solving constraint hierarchies analyzed the entire constraint hierarchy on each invocation and thus were not well matched to the job of resatisfying the hierarchy after small changes. The authors present an incremental constraint solver, DeltaBlue, that maintains a solution to the constraint hierarchy as constraints are added and removed. DeltaBlue minimizes the cost of finding a new solution after each change by utilizing its knowledge of the current solution. The DeltaBlue algorithm is designed to produce locally predicate-better solutions when the constraint hierarchy can be solved by local propagation. That is, it does not handle cycles in the constraint graph, but will detect them and can then call a more powerful algorithm.<<ETX>>
[1]
Christopher J. Van Wyk,et al.
A High-Level Language for Specifying Pictures
,
1982,
TOGS.
[2]
Alan Borning,et al.
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory
,
1981,
TOPL.
[3]
Michael J. Maher,et al.
Constraint Hierarchies and Logic Programming
,
1989,
ICLP.
[4]
David Maier,et al.
The Filter Browser Defining Interfaces Graphically
,
1987,
ECOOP.
[5]
Ivan E. Sutherland,et al.
Sketchpad a Man-Machine Graphical Communication System
,
1899,
Outstanding Dissertations in the Computer Sciences.