Abstract
Constraint problems are usually solved by specific satisfaction methods. Another way for solving constraints, called solution maintenance, is to try to recover the consistency from an existing solution, disturbed by the addition of new constraints and/or the update of some variables. We present in this paper a solution maintenance algorithm based on value propagation in the constraint network. This algorithm is specially appropriate to interactive applications like spreadsheets, several different kinds of programs for incremental manipulation of geometrical figures, and also in case-based reasoning. Although the method is efficient and incremental, it may not be able to find a solution even when the constraint problem has one.
The basic principle of the algorithm is the following. The user gives in an incremental manner computation methods m(C, V) which compute a new value for the set of variables V in order to satisfy the constraints C. Perturbations introduced into a solution involve a solving phase divided into two steps: the planning step and the runtime step. During the planning step, the algorithm builds a directed acyclic graph (DAG) yielding a partial order between methods, according to the topology of the constraint network and the available methods. The roots of this DAG correspond to the initial perturbations. In the runtime step, the algorithm follows the DAG from the roots to the leaves and applies a method at each node. If this step succeeds, we get a new solution. Note that the variables can be modified only once during the solving phase.
The Constraints system manages both another propagation algorithm and a reasoning maintenance system in order to obtain solution maintenance. The resulting algorithm is quite inefficient.
The main influence on the design of our value propagation has been the Prose system by Pierre Berlandier (INRIA). Our algorithm improves the one used in Prose on the following points:
-
several distinct methods associated to the same constraint can be applied during a solving phase
-
the computation methods are general and may satisfy several constraints by altering the value of several variables
-
the basic principle of the runtime step presented above is extended in order to take into account methods yielding several values for a variable (in the case of inequations for example), and
-
our algorithm can avoid some kinds of failures due to cycles in the constraint network.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Trombettoni, G. (1993). A constraint maintenance algorithm based on value propagation. In: Filgueiras, M., Damas, L. (eds) Progress in Artificial Intelligence. EPIA 1993. Lecture Notes in Computer Science, vol 727. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57287-2_64
Download citation
DOI: https://doi.org/10.1007/3-540-57287-2_64
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57287-9
Online ISBN: 978-3-540-48036-5
eBook Packages: Springer Book Archive