Skip to main content

Maintaining State in Propagation Solvers

  • Conference paper
Principles and Practice of Constraint Programming - CP 2009 (CP 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5732))

Abstract

Constraint propagation solvers interleave propagation, removing impossible values from variable domains, with search. The solver state is modified during propagation. But search requires the solver to return to a previous state. Hence a propagation solver must determine how to maintain state during propagation and forward and backward search. This paper sets out the possible ways in which a propagation solver can choose to maintain state, and the restrictions that such choices place on the resulting system. Experiments illustrate the result of various choices for the three principle state components of a solver: variables, propagators, and dependencies between them. This paper also provides the first realistic comparison of trailing versus copying for state restoration.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aggoun, A., Beldiceanu, N.: Time Stamps Techniques for the Trailed Data in Constraint Logic Programming Systems. In: Actes du Séminaire 1990 de programmation en Logique, pp. 487–509. CNET, Lannion (1990)

    Google Scholar 

  2. Apt, K.R., Wallace, M.: Constraint Logic Programming Using ECLiPSe. Cambridge University Press, Cambridge (2006)

    Book  Google Scholar 

  3. Carlsson, M., Ottosson, G., Carlson, B.: An open-ended finite domain constraint solver. In: Glaser, H., Hartel, P.H., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 191–206. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. CHOCO (2009), http://choco-solver.net

  5. Choi, C.W., Henz, M., Ng, K.B.: Components for state restoration in tree search. In: Walsh, T. (ed.) CP 2001. LNCS, vol. 2239, pp. 240–255. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Gecode: generic constraint development environment (2009), http://www.gecode.org

  7. Gent, I.P., Jefferson, C., Miguel, I.: Minion: A fast scalable constraint solver. In: Brewka, G., Coradeschi, S., Perini, A., Traverso, P. (eds.) European Conference on Artificial Intelligence, pp. 98–102. IOS Press, Amsterdam (2006)

    Google Scholar 

  8. Gent, I.P., Jefferson, C., Miguel, I.: Watched literals for constraint propagation in Minion. In: Benhamou, F. (ed.) CP 2006. LNCS, vol. 4204, pp. 182–197. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  9. ILOG Solver, part of ILOG CP (2009), http://www.ilog.com/products/cp

  10. JaCoP (2009), http://jacop.osolpro.com/

  11. Michel, L., Van Hentenryck, P.: A decomposition-based implementation of search strategies. ACM Trans. Comput. Logic 5(2), 351–383 (2004)

    Article  MathSciNet  Google Scholar 

  12. Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: engineering an efficient SAT solver. In: DAC 2001: Proceedings of the 38th conference on Design automation, pp. 530–535. ACM Press, New York (2001)

    Google Scholar 

  13. Perron, L.: Search procedures and parallelism in constraint programming. In: Jaffar, J. (ed.) CP 1999. LNCS, vol. 1713, pp. 346–361. Springer, Heidelberg (1999)

    Google Scholar 

  14. Régin, J.-C.: A filtering algorithm for constraints of difference in CSPs. In: AAAI 1994: Proceedings of the Twelfth National Conference on Artificial intelligence, Menlo Park, CA, USA, vol. 1, pp. 362–367 (1994)

    Google Scholar 

  15. Schulte, C.: Comparing trailing and copying for constraint programming. In: Schreye, D.D. (ed.) Proceedings of the Sixteenth International Conference on Logic Programming, Las Cruces, NM, USA, pp. 275–289. MIT Press, Cambridge (1999)

    Google Scholar 

  16. Schulte, C.: Programming Constraint Services. LNCS (LNAI), vol. 2302. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  17. Schulte, C., Stuckey, P.J.: Efficient constraint propagation engines. Transactions on Programming Languages and Systems 31(1), 2:1–2:43 (2008)

    Article  Google Scholar 

  18. Schulte, C., Tack, G., Lagerkvist, M.Z.: Modeling with Gecode (2009), http://www.gecode.org/doc-latest/modeling.pdf

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Reischuk, R.M., Schulte, C., Stuckey, P.J., Tack, G. (2009). Maintaining State in Propagation Solvers. In: Gent, I.P. (eds) Principles and Practice of Constraint Programming - CP 2009. CP 2009. Lecture Notes in Computer Science, vol 5732. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04244-7_54

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04244-7_54

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04243-0

  • Online ISBN: 978-3-642-04244-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics