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.
KeywordsSearch Heuristic Constraint Solver Concrete Syntax Message Protocol Search Combinators
Unable to display preview. Download preview PDF.
- 2.Cook, W.R.: A denotational semantics of inheritance. Ph.D. thesis, Brown University (1989)Google Scholar
- 3.IBM ILOG CP Optimizer (2011), http://www-01.ibm.com/software/integration/optimization/cplex-cp-optimizer/
- 5.ECLiPSe (2008), http://www.eclipse-clp.org/
- 6.Harvey, W.D., Ginsberg, M.L.: Limited discrepancy search. In: IJCAI, pp. 607–613 (1995)Google Scholar
- 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.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
- 14.Samulowitz, H., Tack, G., Fischer, J., Wallace, M., Stuckey, P.: Towards a lightweight standard search language. In: ModRef (2010)Google Scholar
- 18.SICStus Prolog (2008), http://www.sics.se/isl/sicstuswww/site/