Declarative Heuristics in Constraint Satisfaction
Erich Teppan, GERHARD E. FRIEDRICH · 2013
Constraint Satisfaction Problems (CSPs) have the big advantage of a succinct, declarative and easy to understand representation form. Unfortunately, solving CSPs is NP-complete in the general case. In order to cope with this, common CSP frameworks offer the possibility to use different built-in heuristics. However, the provided built-in heuristics are often not suitable to significantly boost solution calculation. Also the facilities for expressing domain-specific heuristics in a declarative manner within the CSP framework are typically very limited (e.g. by defining a static variable selection order)and thus are often not applicable. As a consequence such domain-specific heuristics are often implemented by means of custom propagators or custom constraints (e.g. a special constraint for bin packing problems) forcing domain experts and knowledge engineers to leave the declarative world and implement the heuristics in a procedural manner. In this paper we propose a new declarative language for expressing domain specific heuristics for CSPs which can be easily integrated in every CSP framework. We also describe a prototype implementation within a state-of-the-art CSP solver and present proof of concept results on real world configuration problem instances.