View-based propagator derivation
2013 (English)In: Constraints, ISSN 1383-7133, E-ISSN 1572-9354, Vol. 18, no 1, 75-107 p.Article in journal (Refereed) Published
When implementing a propagator for a constraint, one must decide about variants: When implementing min, should one also implement max Should one implement linear constraints both with unit and non-unit coefficients Constraint variants are ubiquitous: implementing them requires considerable (if not prohibitive) effort and decreases maintainability, but will deliver better performance than resorting to constraint decomposition. This paper shows how to use views to derive propagator variants, combining the efficiency of dedicated propagator implementations with the simplicity and effortlessness of decomposition. A model for views and derived propagators is introduced. Derived propagators are proved to be perfect in that they inherit essential properties such as correctness and domain and bounds consistency. Techniques for systematically deriving propagators such as transformation, generalization, specialization, and type conversion are developed. The paper introduces an implementation architecture for views that is independent of the underlying constraint programming system. A detailed evaluation of views implemented in Gecode shows that derived propagators are efficient and that views often incur no overhead. Views have proven essential for implementing Gecode, substantially reducing the amount of code that needs to be written and maintained.
Place, publisher, year, edition, pages
Springer, 2013. Vol. 18, no 1, 75-107 p.
Constraint propagation, Constraint solver implementation, Parametric propagators, Views
IdentifiersURN: urn:nbn:se:kth:diva-107405DOI: 10.1007/s10601-012-9133-zISI: 000312879500004ScopusID: 2-s2.0-84871922124OAI: oai:DiVA.org:kth-107405DiVA: diva2:575808
FunderSwedish Research Council, 621-2004-4953
QC 201301152012-12-112012-12-112013-12-03Bibliographically approved