Search citation statements
Paper Sections
Citation Types
Year Published
Publication Types
Relationship
Authors
Journals
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% return on investment.Plan of the paper. Section 2 introduces constraints and propagators. Section 3 establishes views and propagator derivation. Section 4 presents propagator derivation techniques. Section 5 describes an implementation architecture based on parametric propagators and range iterators. Section 6 discusses limitations of views. The implementation is evaluated in Section 7, and Section 8 concludes. PreliminariesThis section introduces constraints, propagators, and propagation strength. * Constraints are defined on assignments as total functions on all variables. For a typical constraint c, only a subset vars(c) of the variables is significant; the constraint is the full relation for all x / ∈ vars(c). Constraints are either written as sets of assignments (for example, {a ∈ Asn | a(x) < a(y)}) or as expressions with the usual meaning, using the notation · (for example, x < y ).Example 2 (Sum constraint) Let X = {x, y, z} and V = {1, 2, 3, 4}. The constraint x = y + z corresponds to the following set of assignments:is a function mapping variables to sets of values, such that d(x) ⊆ V . The set of all domains is Dom = X → P(V ). The set of values in d for a particular variable x, d(x), is called the variable domain of x. A domain d represents a set of assignments, a constraint, defined as con(d) = {a ∈ Asn | ∀x ∈ X : a(x) ∈ d(x)} An assignment a ∈ con(d) is licensed by d. * Propagators. A propagation-based constraint solver employs propagators to implement constraints. A propagator for a constraint c takes a domain d as input and removes values from the variable domains in d that are in conflict with c. A domain d is stronger than a domain d ′ , written d ⊆ d ′ , if...
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% return on investment.Plan of the paper. Section 2 introduces constraints and propagators. Section 3 establishes views and propagator derivation. Section 4 presents propagator derivation techniques. Section 5 describes an implementation architecture based on parametric propagators and range iterators. Section 6 discusses limitations of views. The implementation is evaluated in Section 7, and Section 8 concludes. PreliminariesThis section introduces constraints, propagators, and propagation strength. * Constraints are defined on assignments as total functions on all variables. For a typical constraint c, only a subset vars(c) of the variables is significant; the constraint is the full relation for all x / ∈ vars(c). Constraints are either written as sets of assignments (for example, {a ∈ Asn | a(x) < a(y)}) or as expressions with the usual meaning, using the notation · (for example, x < y ).Example 2 (Sum constraint) Let X = {x, y, z} and V = {1, 2, 3, 4}. The constraint x = y + z corresponds to the following set of assignments:is a function mapping variables to sets of values, such that d(x) ⊆ V . The set of all domains is Dom = X → P(V ). The set of values in d for a particular variable x, d(x), is called the variable domain of x. A domain d represents a set of assignments, a constraint, defined as con(d) = {a ∈ Asn | ∀x ∈ X : a(x) ∈ d(x)} An assignment a ∈ con(d) is licensed by d. * Propagators. A propagation-based constraint solver employs propagators to implement constraints. A propagator for a constraint c takes a domain d as input and removes values from the variable domains in d that are in conflict with c. A domain d is stronger than a domain d ′ , written d ⊆ d ′ , if...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2025 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.