Efficient Representation of Extensional Constraints
- 853 Downloads
Constraint programming is a paradigm where a given problem is formalized in terms of satisfying a set of restrictions. Difficult combinatorial problems, from virtually any area, can be modeled as constraint satisfaction problems (CSP) and then solved with state-of-the-art CSP solvers. Constraints are logical relations between various entities (variables) each taking values in a given domain. There are no limitations on how constraints should be specified – they can be seen as predicates that indicate partial information known about the problem. The extensional or table constraint is used to express directly the combination of values that are allowed for some variables. Many problems from industry or academic research are modeled using extensional constraints as they are created based on sets of existing data, represented as n-ary relations (sets of tuples).
In this paper, we describe an efficient data structure for implementing relations of any arity, that combines the concepts of trie (prefix tree) and support list, offering a quick query method. Because real-life problems may lead to bulky relations, containing a large number of tuples, it is essential to provide a trade-off between space and time complexity. In our representation, a relation is not tied to a specific extensional constraint and this allows multiple constraints to share the same data structure, in order to decrease the memory requirements. Our approach is generic and can be adapted to any method of solving constraint satisfaction problems, either systematic or hybrid, making it easy to be integrated within a CSP solver.
In order to test the efficiency of our data structure, we performed empirical analyses using various constraint satisfaction problems from known benchmarks.
KeywordsConstraint Programming Constraint Satisfaction Problem Constraint Network Multiple Constraint Current Domain
Unable to display preview. Download preview PDF.
- 1.Bessiere, C.: Constraint Propagation. In: Rossi, F., van Beek, P., Walsh, T. (eds.) Handbook of Constraint Programming, ch. 7. Elsevier (2006)Google Scholar
- 2.Bessiere, C., Regin, J.C.: Arc consistency for general constraint networks: Preliminary results. In: IJCAI (1), pp. 398–404 (1997)Google Scholar
- 3.Dechter, R.: Constraint processing. Elsevier Morgan Kaufmann (2003)Google Scholar
- 4.Frasinaru, C.: Omnics solver (2013), http://profs.info.uaic.ro/~acf/omnics
- 6.Gent, I.P.: Minion solver (2007), http://minion.sourceforge.net/index.html
- 7.Gent, I.P., Jefferson, C., Miguel, I., Nightingale, P.: Data structures for generalised arc consistency for extensional constraints. In: AAAI, pp. 191–197. AAAI Press (2007), http://dblp.uni-trier.de/db/conf/aaai/aaai2007.html#GentJMN07
- 8.van Hoeve, W.J., Katriel, I.: Global constraints. In: Rossi, F., van Beek, P., Walsh, T. (eds.) Handbook of Constraint Programming, ch. 7. Elsevier (2006)Google Scholar
- 9.IBM: ILOG CPLEX Solver (2009), http://www-01.ibm.com/software/commerce/optimization/cplex-optimizer
- 10.Laburthe, F., Jussien, N.: Choco solver (2012), http://www.emn.fr/z-info/choco-solver
- 12.Rossi, F., van Beek, P., Walsh, T. (eds.): Handbook of Constraint Programming. Elsevier (2006)Google Scholar
- 13.Roussel, O., Lecoutre, C.: XML representation of constraint networks: Format XCSP 2.1. CoRR abs/0902.2362 (2009), http://dblp.uni-trier.de/db/journals/corr/corr0902.html#abs-0902-2362
- 14.Tsang, E.P.K.: Foundations of constraint satisfaction. Computation in cognitive science. Academic Press (1993)Google Scholar