Recollection: an Alternative Restoration Technique for Constraint Programming Systems
Yong Lin, Martin Henz

TL;DR
Recollection is a new restoration technique for constraint programming that stores affected variables during propagation, reducing memory use and improving runtime for complex problems compared to traditional recomputation methods.
Contribution
The paper introduces recollection, a novel restoration method that avoids rollback and recomputation by storing affected variables, implemented in Gecode, and shown to improve runtime.
Findings
Recollection reduces memory consumption compared to storing previous states.
It improves runtime for problems with expensive propagation and frequent failures.
The technique is effective in the Gecode solver environment.
Abstract
Search is a key service within constraint programming systems, and it demands the restoration of previously accessed states during the exploration of a search tree. Restoration proceeds either bottom-up within the tree to roll back previously performed operations using a trail, or top-down to redo them, starting from a previously stored state and using suitable information stored along the way. In this paper, we elucidate existing restoration techniques using a pair of abstract methods and employ them to present a new technique that we call recollection. The proposed technique stores the variables that were affected by constraint propagation during fix points reasoning steps, and it conducts neither operation roll-back nor recomputation, while consuming much less memory than storing previous visited states. We implemented this idea as a prototype within the Gecode solver. An empirical…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsConstraint Satisfaction and Optimization · AI-based Problem Solving and Planning · Logic, Reasoning, and Knowledge
