View-based Propagator Derivation

Christian Schulte, Guido Tack.

[pdf | bibtex]

When implementing a propagator for a constraint, one must decide about variants: When implementing min, should one also implement max? Should one implement linear equations both with and without coefficients? Constraint variants are ubiquitous: implementing them requires considerable effort, but yields better performance.

This abstract shows how to use views to derive propagator variants where derived propagators are perfect in that they inherit essential properties such as correctness and domain and bounds consistency. Techniques for systematically deriving propagators are developed, and the abstract sketches an implementation architecture for views that is independent of the underlying constraint programming system. 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.

In: Barry O'Sullivan, editor, Twentieth International Conference on Principles and Practice of Constraint Programming, Lyon, France, volume 8656 of Lecture Notes in Computer Science, pages 938-942. Springer-Verlag, September, 2014. DOI 10.1007/978-3-319-10428-7_71.

Copyright Springer-Verlag, the original publication is available at www.springerlink.com