High-Level Nondeterministic Abstractions in C++

  • Laurent Michel
  • Andrew See
  • Pascal Van Hentenryck
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4204)


This paper presents high-level abstractions for nondeterministic search in C++ which provide the counterpart to advanced features found in recent constraint languages. The abstractions have several benefits: they explicitly highlight the nondeterministic nature of the code, provide a natural iterative style, simplify debugging, and are efficiently implementable using macros and continuations. Their efficiency is demonstrated by comparing their performance with the C++ library Gecode, both for programming search procedures and search engines.


Search Tree Search Procedure Constraint Programming Search Node Current Index 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Colmerauer, A.: Opening the Prolog-III Universe. BYTE Magazine 12(9) (1987)Google Scholar
  2. 2.
    de Givry, S., Jeannin, L.: Tools: A library for partial and hybrid search methods. In: CP-AI-OR 2003 (2003)Google Scholar
  3. 3.
    Heintze, N.C., Michaylov, S., Stuckey, P.J.: CLP(\(\Re\)) and some Electrical Engineering Problems. In: ICLP 1987 (1987)Google Scholar
  4. 4.
    Generic Constraint Development Environment (2005) http://www.gecode.org/
  5. 5.
    Ilog Solver 4.4. Reference Manual. Ilog SA, Gentilly, France (1998)Google Scholar
  6. 6.
    Laburthe, F., Caseau, Y.: SALSA: A Language for Search Algorithms. In: Maher, M.J., Puget, J.-F. (eds.) CP 1998. LNCS, vol. 1520, p. 310. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  7. 7.
    Lauriere, J.-L.: A Language and a Program for Stating and Solving Combinatorial Problems. Artificial Intelligence 10(1), 29–127 (1978)MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Michel, L., Van Hentenryck, P.: Modeler++: A Modeling Layer for Constraint Programming Libraries. In: CP-AI-OR 2001 (2001)Google Scholar
  9. 9.
    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
  10. 10.
    Puget, J.-F.: A C++ Implementation of CLP. In: Proceedings of SPICIS 1994 (1994)Google Scholar
  11. 11.
    Puget, J.-F.: Personal Communication (March 2006)Google Scholar
  12. 12.
    Schulte, C.: Programming Constraint Inference Engines. In: CP 1997 (1997)Google Scholar
  13. 13.
    Van Hentenryck, P.: Constraint Satisfaction in Logic Programming. The MIT Press, Cambridge (1989)Google Scholar
  14. 14.
    Van Hentenryck, P.: The OPL Optimization Programming Language. The MIT Press, Cambridge (1999)Google Scholar
  15. 15.
    Van Hentenryck, P., Michel, L.: Nondeterministic Control for Hybrid Search. In: CP-AI-OR 2005 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Laurent Michel
    • 1
  • Andrew See
    • 1
  • Pascal Van Hentenryck
    • 2
  1. 1.University of ConnecticutStorrs
  2. 2.Brown UniversityProvidence

Personalised recommendations