Components for State Restoration in Tree Search

Constraint programming systems provide software architectures for the fruitful interaction of algorithms for constraint propagation, branching and exploration of search trees. Search requires the ability to restore the state of a constraint store. Today's systems use different state restoration policies. Up ward restoration undoes changes using a trail, and downward restoration (recomputation) reinstalls information along a downward path in the search tree. In this paper, we present an architecture that isolates the state restoration policy as an orthogonal software component. Applications of the architecture include two novel state restoration policies, called lazy copying and batch recomputation, and a detailed comparison of these and existing restoration policies with "everything else being equal". The architecture allows the user to optimize the time and space consumption of applications by choosing existing and designing new state restoration policies in response to application-specific characteristics.

[1]  Nicolas Beldiceanu,et al.  Time Stamps Techniques for the Trailed Data in Constraint Logic Programming Systems , 1990, SPLT.

[2]  Enrico Pontelli,et al.  &ACE: a high-performance parallel Prolog system , 1995, IPPS.

[3]  Martin Henz,et al.  A Toolkit for Constraint-Based Inference Engines , 2000, PADL.

[4]  François Laburthe,et al.  CLAIRE: combining sets, search and rules to better express algorithms , 1999, Theory and Practice of Logic Programming.

[5]  Martin Henz,et al.  Figaro: Yet Another Constraint Programming Library , 1999, Electron. Notes Theor. Comput. Sci..

[6]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[7]  Christian Schulte,et al.  Programming Constraint Inference Engines , 1997, CP.

[8]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[9]  Philippe Codognet,et al.  The GNU Prolog system and its implementation , 2000, SAC '00.

[10]  Christian Schulte,et al.  Programming Constraint Services , 2002, Lecture Notes in Computer Science.

[11]  Christian Schulte Oz Explorer: A Visual Constraint Programming Tool , 1996, PLILP.

[12]  Christian Schulte Comparing Trailing and Copying for Constraint Programming , 1999, ICLP.

[13]  Jian Xu,et al.  Necessary and Sufficient Conditions for Consistent Global Snapshots , 1995, IEEE Trans. Parallel Distributed Syst..

[14]  Gert Smolka Principles and Practice of Constraint Programming-CP97 , 1997, Lecture Notes in Computer Science.