Skip to main content

An Introduction to Search Combinators

  • Conference paper
Logic-Based Program Synthesis and Transformation (LOPSTR 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7844))

  • 410 Accesses

Abstract

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 general-purpose programming language whose features are not tailored towards writing search heuristics. As a result, major improvements in performance may remain unexplored.

This article introduces search combinators, a lightweight and solver-independent method that bridges the gap between a conceptually simple modeling language for search (high-level, functional and naturally compositional) and an efficient implementation (low-level, imperative and highly non-modular). By allowing the user to define application-tailored search strategies from a small set of primitives, search combinators effectively provide a rich domain-specific language (DSL) for modeling search to the user. Remarkably, this DSL comes at a low implementation cost to the developer of a constraint solver.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
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.

Similar content being viewed by others

References

  1. Van Hentenryck, P., Perron, L., Puget, J.F.: Search and strategies in OPL. ACM TOCL 1(2), 285–315 (2000)

    Article  Google Scholar 

  2. Van Hentenryck, P., Michel, L.: Constraint-Based Local Search. MIT Press (2005)

    Google Scholar 

  3. 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)

    Article  MathSciNet  MATH  Google Scholar 

  4. Schimpf, J., Shen, K.: ECLiPSe – From LP to CLP. Theory and Practice of Logic Programming 12(1-2), 127–156 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  5. Schulte, C., et al.: Gecode, the generic constraint development environment (2009) http://www.gecode.org/ (accessed November 2012)

  6. 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)

    Chapter  Google Scholar 

  7. Cook, W.R.: A denotational semantics of inheritance. PhD thesis, Brown University (1989)

    Google Scholar 

  8. Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  9. Schrijvers, T., Tack, G., Wuille, P., Samulowitz, H., Stuckey, P.J.: Search combinators. In: Lee, J. (ed.) CP 2011. LNCS, vol. 6876, pp. 774–788. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  10. Schrijvers, T., Tack, G., Wuille, P., Samulowitz, H., Stuckey, P.: Search combinators. Constraints, 1–37 (2012)

    Google Scholar 

  11. Refalo, P.: Impact-based search strategies for constraint programming. In: Wallace, M. (ed.) CP 2004. LNCS, vol. 3258, pp. 557–571. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  13. Schrijvers, T., Triska, M., Demoen, B.: Tor: Extensible search with hookable disjunction. In: Principles and Practice of Declarative Programming, PPDP 2012. ACM (2012)

    Google Scholar 

  14. Wielemaker, J., Schrijvers, T., Triska, M., Lager, T.: SWI-Prolog. Theory and Practice of Logic Programming 12(1-2), 67–96 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  15. Zhou, N.F.: The language features and architecture of B-Prolog. Theory and Practice of Logic Programming 12(1-2), 189–218 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  16. Desouter, B.: Modular Search Heuristics in Scala. Master’s thesis, Ghent University (2012) (in Dutch)

    Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. Kuchcinski, K., Szymanek, R.: JaCoP - Java Constraint Programming solver (2012), http://www.jacop.eu/ (accessed November 2012)

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schrijvers, T., Tack, G., Wuille, P., Samulowitz, H., Stuckey, P.J. (2013). An Introduction to Search Combinators. In: Albert, E. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 2012. Lecture Notes in Computer Science, vol 7844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38197-3_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-38197-3_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-38196-6

  • Online ISBN: 978-3-642-38197-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics