Depth-first iterative-deepening: an optimal admissible tree search
Artificial Intelligence
ACM Transactions on Computational Logic (TOCL)
SALSA: A Language for Search Algorithms
Constraints
Search Procedures and Parallelism in Constraint Programming
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
A denotational semantics of inheritance
A denotational semantics of inheritance
Constraint-Based Local Search
Nondeterministic Control for Hybrid Search
Constraints
The Design of the Zinc Modelling Language
Constraints
Dichotomic Search Protocols for Constrained Optimization
CP '08 Proceedings of the 14th international conference on Principles and Practice of Constraint Programming
IJCAI'95 Proceedings of the 14th international joint conference on Artificial intelligence - Volume 1
Monadic constraint programming
Journal of Functional Programming
MiniZinc: towards a standard CP modelling language
CP'07 Proceedings of the 13th international conference on Principles and practice of constraint programming
A core calculus for scala type checking
MFCS'06 Proceedings of the 31st international conference on Mathematical Foundations of Computer Science
Monads, zippers and views: virtualizing the monad stack
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
A high level language for solver independent model manipulation and generation of hybrid solvers
CPAIOR'12 Proceedings of the 9th international conference on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems
Tor: extensible search with hookable disjunction
Proceedings of the 14th symposium on Principles and practice of declarative programming
Constraints
Hi-index | 0.01 |
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.