Global domain views for expressive and cross-domain constraint programming
Résumé
The concept of domain views is a powerful abstraction in constraint programming. It permits to define variables that do not declare any domain but instead rely on a variable x and a function f, such that y=f(x) where y is the view. In addition to making modelling easier by providing an expressive layer of abstraction, views provide an alternative to constraint decomposition that does not involve auxiliary variables and propagators. In this article, we introduce the notion of global domain view and illustrate it on set and graph views. A global domain view relies on an arbitrary number of variables and a function such that y=f(x1,...,xn). The combination of global domain views with set and graph variables extends the expressiveness of constraint programming by allowing the definition of complex relationships between different types of variables within a light and simple framework.