View-based Propagator Derivation

08/14/2009
by   Christian Schulte, et al.
0

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 perfect propagator variants. A model for views and derived propagators is introduced. Derived propagators are proved to be indeed 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. Without views, Gecode would either require 180 000 rather than 40 000 lines of propagator code, or would lack many efficient propagator variants. Compared to 8 000 lines of code for views, the reduction in code for propagators yields a 1750

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/21/2014

Domain Views for Constraint Programming

Views are a standard abstraction in constraint programming: They make it...
research
06/06/2020

Replacements and Replaceables: Making the Case for Code Variants

There are often multiple ways to implement the same requirement in sourc...
research
10/21/2011

A Generalized Arc-Consistency Algorithm for a Class of Counting Constraints: Revised Edition that Incorporates One Correction

This paper introduces the SEQ BIN meta-constraint with a polytime algori...
research
08/26/2020

Generic Analysis of Model Product Lines via Constraint Lifting

Engineering a product-line is more than just describing a product-line: ...
research
06/12/2021

Reverse-engineer the Distributional Structure of Infant Egocentric Views for Training Generalizable Image Classifiers

We analyze egocentric views of attended objects from infants. This paper...
research
09/21/2016

Multi-View Constraint Propagation with Consensus Prior Knowledge

In many applications, the pairwise constraint is a kind of weaker superv...

Please sign up or login with your details

Forgot password? Click here to reset