Search Combinators

  • Tom Schrijvers
  • Guido Tack
  • Pieter Wuille
  • Horst Samulowitz
  • Peter J. Stuckey
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6876)


The ability to model search in a constraint solver can be an essential asset for solving combinatorial problems. However, existing infrastructure for defining search heuristics is often inadequate. Either modeling capabilities are extremely limited or users are faced with a low-level programming language and modeling search becomes unwieldy. As a result, major improvements in performance may remain unexplored.

This paper introduces search combinators, a lightweight and solver -independent method that bridges the gap between a conceptually simple search language (high-level, functional and naturally compositional) and an efficient implementation (low-level, imperative and highly non-modular). Search combinators allow one to define application-tailored strategies from a small set of primitives, resulting in a rich search language for the user and a low implementation cost for the developer of a constraint solver. The paper discusses two modular implementation approaches and shows, by empirical evaluation, that search combinators can be implemented without overhead compared to a native, direct implementation in a constraint solver.


Search Heuristic Constraint Solver Concrete Syntax Message Protocol Search Combinators 
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.
    Baatar, D., Boland, N., Brand, S., Stuckey, P.J.: CP and IP approaches to cancer radiotherapy delivery optimization. Constraints 16(2), 173–194 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Cook, W.R.: A denotational semantics of inheritance. Ph.D. thesis, Brown University (1989)Google Scholar
  3. 3.
  4. 4.
    Cremet, V., Garillot, F., Lenglet, S., Odersky, M.: A core calculus for Scala type checking. In: Královič, R., Urzyczyn, P. (eds.) MFCS 2006. LNCS, vol. 4162, pp. 1–23. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
  6. 6.
    Harvey, W.D., Ginsberg, M.L.: Limited discrepancy search. In: IJCAI, pp. 607–613 (1995)Google Scholar
  7. 7.
    Korf, R.E.: Depth-first iterative-deepening: an optimal admissible tree search. Artif. Intell. 27, 97–109 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Laburthe, F., Caseau, Y.: SALSA: A language for search algorithms. Constraints 7(3), 255–288 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Marriott, K., Nethercote, N., Rafeh, R., Stuckey, P., Garcia de la Banda, M., Wallace, M.: The design of the Zinc modelling language. Constraints 13(3), 229–267 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Nethercote, N., Stuckey, P.J., Becket, R., Brand, S., Duck, G.J., Tack, G.: MiniZinc: Towards a standard CP modelling language. In: Bessière, C. (ed.) CP 2007. LNCS, vol. 4741, pp. 529–543. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. 11.
    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
  12. 12.
    Puget, J.F.: A C++ implementation of CLP. In: Proceedings of the Second Singapore International Conference on Intelligent Systems (SPICIS). pp. B256–B261 (November 1994)Google Scholar
  13. 13.
    Refalo, P.: Impact-based search strategies for constraint programming. In: Wallace, M. (ed.) CP 2004. LNCS, vol. 3258, pp. 557–571. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  14. 14.
    Samulowitz, H., Tack, G., Fischer, J., Wallace, M., Stuckey, P.: Towards a lightweight standard search language. In: ModRef (2010)Google Scholar
  15. 15.
    Schrijvers, T., Stuckey, P.J., Wadler, P.: Monadic constraint programming. Journal of Functional Programming 19(6), 663–697 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Schulte, C.: Programming constraint inference engines. In: Smolka, G. (ed.) CP 1997. LNCS, vol. 1330, pp. 519–533. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  17. 17.
    Sellmann, M., Kadioglu, S.: Dichotomic search protocols for constrained optimization. In: Stuckey, P.J. (ed.) CP 2008. LNCS, vol. 5202, pp. 251–265. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  18. 18.
  19. 19.
    Smolka, G.: The Oz programming model. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000, pp. 324–343. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  20. 20.
    Van Hentenryck, P., Michel, L.: Constraint-Based Local Search. MIT Press, Cambridge (2005)zbMATHGoogle Scholar
  21. 21.
    Van Hentenryck, P., Michel, L.: Nondeterministic control for hybrid search. Constraints 11(4), 353–373 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Van Hentenryck, P., Perron, L., Puget, J.F.: Search and strategies in OPL. ACM TOCL 1(2), 285–315 (2000)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Tom Schrijvers
    • 1
  • Guido Tack
    • 2
  • Pieter Wuille
    • 2
  • Horst Samulowitz
    • 3
  • Peter J. Stuckey
    • 4
  1. 1.Universiteit GentBelgium
  2. 2.Katholieke Universiteit LeuvenBelgium
  3. 3.IBM ResearchNew YorkUSA
  4. 4.National ICT Australia (NICTA) and University of MelbourneAustralia

Personalised recommendations