An open-ended finite domain constraint solver

  • Mats Carlsson
  • Greger Ottosson
  • Björn Carlson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1292)


We describe the design and implementation of a finite domain constraint solver embedded in a Prolog system using an extended unification mechanism via attributed variables as a generic constraint interface. The solver is essentially a scheduler for indexicals, i.e. reactive functional rules encoding local consistency methods performing incremental constraint solving or entailment checking, and global constraints, i.e. general propagators which may use specialized algorithms to achieve a higher degree of consistency or better time and space complexity.

The solver has an open-ended design: the user can introduce new constraints, either in terms of indexicals by writing rules in a functional notation, or as global constraints via a Prolog programming interface. Constraints defined in terms of indexicals can be linked to 0/1-variables modeling entailment; thus indexicals are used for constraint solving as well as for entailment testing. Constraints can be arbitrarily combined using the propositional connectives by automatic expansion to systems of reified constraints.


Implementation of Constraint Systems Constraint Programming Finite Domains Indexicals Global Constraints 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    A. Aggoun and N. Beldiceanu. Extending CHIP in order to solve complex scheduling and placement problems. Mathl. Comput. Modelling, 17(7):57–73, 1993.Google Scholar
  2. 2.
    P. Baptiste and C. Le Pape. A theoretical and experimental comparison of constraint propagation techniques for disjunctive scheduling. In Proceedings of the Seventeenth International Joint Conference on Artificial Intelligence (IJCAI-95), Montreal, Canada, August 1995.Google Scholar
  3. 3.
    N. Beldiceanu and E. Contejean. Introducing global constraints in CHIP. Mathl. Comput. Modelling, 20(12):97–123, 1994.Google Scholar
  4. 4.
    B. Carlson and M. Carlsson. Compiling and Executing Disjunctions of Finite Domain Constraints. In Proceedings of the Twelfth International Conference on Logic Programming. MIT Press, 1995.Google Scholar
  5. 5.
    B. Carlson, M. Carlsson, and D. Diaz. Entailment of finite domain constraints. In Proceedings of the Eleventh International Conference on Logic Programming. MIT Press, 1994.Google Scholar
  6. 6.
    B. Carlson, M. Carlsson, and S. Janson. The implementation of AKL(FD). In Logic Programming: Proceedings of the 1995 International Symposium. MIT Press, 1995.Google Scholar
  7. 7.
    Y. Caseau and F. Laburthe. Improved clp scheduling with task intervals. In P. Van Hentenryck, editor, Logic Programming, Proceedings of the Eleventh International Conference on Logic Programming, pages 369–383, Santa Margherita Ligure, Italy, 1994. MIT Press.Google Scholar
  8. 8.
    Philippe Codognet and Giuseppe Nardiello. Enhancing the constraint-solving power of clp(FD) by means of path-consistency methods. In A. Podelski, editor, Constraints: Basics and Trends, volume 910 of Lecture Notes in Computer Science, pages 37–61. Springer-Verlag, 1995.Google Scholar
  9. 9.
    D. Diaz and P. Codognet. A Minimal Extension of the WAM for CLP(FD). In Proceedings of the International Conference on Logic Programming, pages 774–790, Budapest, Hungary, 1993. MIT Press.Google Scholar
  10. 10.
    M. Dincbas, P. van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Berthier. The Constraint Logic Programming Language CHIP. In Proceedings of the International Conference on Fifth Generation Computer Systems, 1988.Google Scholar
  11. 11.
    Mats Carlsson et al. SICStus Prolog User's Manual. SICS Research Report, Swedish Institute of Computer Science, 1995. URL: Scholar
  12. 12.
    Micha Meier et al. ECLiPSe user manual. ECRC Research Report ECRC-93-6, European Computer Research Consortium, 1993.Google Scholar
  13. 13.
    C. Holzbaur. Specification of Constraint Based Inference Mechanism through Extended Unification. PhD thesis, Dept. of Medical Cybernetics and AI, University of Vienna, 1990.Google Scholar
  14. 14.
    ILOG. ILOG Solver C++. Reference manual, ILOG S.A., 1993.Google Scholar
  15. 15.
    R. Mohr and T.C. Henderson. Arc and path consistency revisited. Artificial Intelligence, 28:225–233, 1986.Google Scholar
  16. 16.
    W. Older and A. Vellino. Constraint arithmetic on real intervals. In Constraint Logic Programming: Selected Research (eds. Benhamou and Colmerauer). MIT Press, 1993.Google Scholar
  17. 17.
    PrologIA. Le manuel de Prolog IV. Reference manual, PrologIA S.A., 1997.Google Scholar
  18. 18.
    J.-F. Puget and M. Leconte. Beyond the glass box: Constraints as objects. In J. Lloyd, editor, Proceedings of the International Logic Programming Symposium (ILPS-95), pages 513–527, Portland, 1995.Google Scholar
  19. 19.
    J.-C. Régin. A filtering algorithm for constraints of difference in CSPs. In Proc. of the Twelfth National Conference on Artificial Intelligence (AAAI-94), pages 362–367, 1994.Google Scholar
  20. 20.
    Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, January 1990.Google Scholar
  21. 21.
    Gregory Sidebottom. A Language for Optimizing Constraint Propagation. PhD thesis, Simon Fraser University, November 1993.Google Scholar
  22. 22.
    Gert Smolka. The Oz programming model. In J. van Leeuwen, editor, Computer Science Today, volume 1000 of Lecture Notes in Computer Science, pages 324–343. Springer-Verlag, 1995.Google Scholar
  23. 23.
    Pascal Van Hentenryck and Yves Deville. The cardinality operator: a new logical connective in constraint logic programming. In International Conference on Logic Programming. MIT Press, 1991.Google Scholar
  24. 24.
    Pascal Van Hentenryck, Vijay Saraswat, and Yves Deville. Constraint processing in cc(FD). Draft, Computer Science Department, Brown University, 1991.Google Scholar
  25. 25.
    Pascal Van Hentenryck, Vijay Saraswat, and Yves Deville. Design, implementation and evaluation of the constraint language cc(FD). In A. Podelski, editor, Constraints: Basics and Rends, volume 910 of Lecture Notes in Computer Science. Springer-Verlag, 1995.Google Scholar
  26. 26.
    D. Waltz. The Psychology of Computer Vision (Ed. P. Winston), chapter Understanding line drawings of scenes with shadows. McGraw-Hill, New York, 1975.Google Scholar
  27. 27.
    H.P. Williams. Model Building in Mathematical Programming. J. Wiley and sons, New York, 1978.Google Scholar
  28. 28.
    Jörg Würtz, 1997. Personal Communication.Google Scholar
  29. 29.
    Neng-Fa Zhou. B-Prolog User's Manual Version 2.1. Technical report, Kyushu Institute of Technology, 1997. URL: Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Mats Carlsson
    • 1
  • Greger Ottosson
    • 2
  • Björn Carlson
    • 3
  1. 1.SICSKistaSweden
  2. 2.Computing Science Dept.Uppsala UniversityUppsalaSweden
  3. 3.Xerox PARCPalo AltoUSA

Personalised recommendations