Views and Iterators for Generic Constraint Implementations

  • Christian Schulte
  • Guido Tack
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3978)


This paper introduces an architecture for generic constraint implementations based on variable views and range iterators. Views allow, for example, to scale, translate, and negate variables. The paper shows how to make constraint implementations generic and how to reuse a single generic implementation with different views for different constraints. A wide range of applications of views exemplifies their usefulness and their potential for simplifying constraint implementations. We introduce domain operations compatible with views based on range iterators. The paper evaluates the applicability of the approach as well as different implementation techniques for the presented architecture.


Linear Inequality Variable Domain Generic Propagator Domain Constraint Intersection Iterator 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Brisset, P., El Sakkout, H., Frühwirth, T., Harvey, W., Meier, M., Novello, S., Le Provost, T., Schimpf, J., Wallace, M.: ECLiPSe Constraint Library Manual 5.8. User manual, IC Parc, London, UK (February 2005)Google Scholar
  2. 2.
    Gecode: Generic constraint development environment (2005), available as an open-source library from
  3. 3.
    Gervet, C.: Interval propagation to reason about sets: Definition and implementation of a practical language. Constraints 1(3), 191–244 (1997)CrossRefMATHGoogle Scholar
  4. 4.
    ILOG S.A.: ILOG Solver 5.0: Reference Manual. Gentilly, France (August 2000)Google Scholar
  5. 5.
    Intelligent Systems Laboratory. SICStus Prolog user’s manual, 3.12.1. Technical report, Swedish Institute of Computer Science, Box 1263, 164 29 Kista, Sweden (April 2005)Google Scholar
  6. 6.
    Laburthe, F.: CHOCO: implementing a CP kernel. In: Beldiceanu, N., Harvey, W., Henz, M., Laburthe, F., Monfroy, E., Müller, T., Perron, L., Schulte, C. (eds.) Proceedings of TRICS: Techniques foR Implementing Constraint programming Systems, a post-conference workshop of CP 2000. 55 Science Drive 2, Singapore 117599, September 2000, vol. TRA9/00, pp. 71–85 (2000)Google Scholar
  7. 7.
    Lagoon, V., Stuckey, P.J.: Set domain propagation using rOBDDs. In: Wallace, M. (ed.) CP 2004. LNCS, vol. 3258, pp. 347–361. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  8. 8.
    Müller, T.: Constraint Propagation in Mozart. Doctoral dissertation, Universität des Saarlandes, Fakultät für Mathematik und Informatik, Fachrichtung Informatik, Im Stadtwald, 66041 Saarbrücken, Germany (2001)Google Scholar
  9. 9.
    Puget, J.-F.: A C++ implementation of CLP. In: Proceedings of the Second Singapore International Conference on Intelligent Systems (SPICIS), Singapore, November 1994, pp. B256–B261 (1994)Google Scholar
  10. 10.
    Puget, J.-F.: A fast algorithm for the bound consistency of alldiff constraints. In: Proceedings of the 15th National Conference on Artificial Intelligence (AAAI 1998), Madison, WI, USA, July 1998, pp. 359–366. AAAI Press/The MIT Press (1998)Google Scholar
  11. 11.
    Puget, J.-F., Leconte, M.: Beyond the glass box: Constraints as objects. In: Lloyd, J. (ed.) Proceedings of the International Symposium on Logic Programming, Portland, OR, USA, December 1995, pp. 513–527. MIT Press, Cambridge (1995)Google Scholar
  12. 12.
    Régin, J.-C.: A filtering algorithm for constraints of difference in CSPs. In: Proceedings of the Twelfth National Conference on Artificial Intelligence, Seattle, WA, USA, pp. 362–367. AAAI Press, Menlo Park (1994)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Christian Schulte
    • 1
  • Guido Tack
    • 2
  1. 1.ICT, KTHRoyal Institute of TechnologySweden
  2. 2.PS LabSaarland UniversitySaarbrückenGermany

Personalised recommendations