Abstract
Experience using constraint programming to solve real-life problems has shown that finding an efficient solution to a problem often requires experimentation with different constraint solvers or even building a problem-specific solver. HAL is a new constraint logic programming language expressly designed to facilitate this process. In this paper we examine different ways of building solvers in HAL. We explain how type classes can be used to specify solver interfaces, allowing the constraint programmer to support modelling of a constraint problem independently of a particular solver, leading to easy “plug and play” experimentation. We compare a number of different ways of writing a simple solver in HAL: using dynamic scheduling, constraint handling rules and building on an existing solver. We also examine how external solvers may be interfaced with HAL, and approaches for removing interface overhead.
Cite
CITATION STYLE
De La Banda, M. G., Jeffery, D., Marriott, K., Nethercote, N., Stuckey, P. J., & Holzbaur, C. (2001). Building constraint solvers with HAL. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 2237, pp. 90–104). Springer Verlag. https://doi.org/10.1007/3-540-45635-x_14
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.