A filtering algorithm for constraints of difference in CSPs
AAAI '94 Proceedings of the twelfth national conference on Artificial intelligence (vol. 1)
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Conjunto: constraint logic programming with finite set domains
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
The direct cost of virtual function calls in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A fast algorithm for the bound consistency of alldiff constraints
AAAI '98/IAAI '98 Proceedings of the fifteenth national/tenth conference on Artificial intelligence/Innovative applications of artificial intelligence
On the Desirability of Acyclic Database Schemes
Journal of the ACM (JACM)
The Definition of Standard ML
Constraint-Based Scheduling
An Open-Ended Finite Domain Constraint Solver
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
When do bounds and domain propagation lead to the same search space?
ACM Transactions on Programming Languages and Systems (TOPLAS)
Principles of Constraint Programming
Principles of Constraint Programming
Efficient propagators for global constraints
Efficient propagators for global constraints
Efficient constraint propagation engines
ACM Transactions on Programming Languages and Systems (TOPLAS)
MINION: A Fast, Scalable, Constraint Solver
Proceedings of the 2006 conference on ECAI 2006: 17th European Conference on Artificial Intelligence August 29 -- September 1, 2006, Riva del Garda, Italy
Solving set constraint satisfaction problems using ROBDDs
Journal of Artificial Intelligence Research
Type Parametric Compilation of Algebraic Constraints
EPIA '09 Proceedings of the 14th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence
Lazy clause generation reengineered
CP'09 Proceedings of the 15th international conference on Principles and practice of constraint programming
CP'09 Proceedings of the 15th international conference on Principles and practice of constraint programming
CP'09 Proceedings of the 15th international conference on Principles and practice of constraint programming
Watched literals for constraint propagation in minion
CP'06 Proceedings of the 12th international conference on Principles and Practice of Constraint Programming
Finite domain bounds consistency revisited
AI'06 Proceedings of the 19th Australian joint conference on Artificial Intelligence: advances in Artificial Intelligence
Hi-index | 0.00 |
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.