Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
A. Aggoun and N. Beldiceanu. Extending CHIP in order to solve complex scheduling and placement problems. Mathl. Comput. Modelling, 17(7):57–73, 1993.
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.
N. Beldiceanu and E. Contejean. Introducing global constraints in CHIP. Mathl. Comput. Modelling, 20(12):97–123, 1994.
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.
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.
B. Carlson, M. Carlsson, and S. Janson. The implementation of AKL(FD). In Logic Programming: Proceedings of the 1995 International Symposium. MIT Press, 1995.
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.
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.
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.
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.
Mats Carlsson et al. SICStus Prolog User's Manual. SICS Research Report, Swedish Institute of Computer Science, 1995. URL: http://www.sics.se/isl/sicstus.html.
Micha Meier et al. ECLiPSe user manual. ECRC Research Report ECRC-93-6, European Computer Research Consortium, 1993.
C. Holzbaur. Specification of Constraint Based Inference Mechanism through Extended Unification. PhD thesis, Dept. of Medical Cybernetics and AI, University of Vienna, 1990.
ILOG. ILOG Solver C++. Reference manual, ILOG S.A., 1993.
R. Mohr and T.C. Henderson. Arc and path consistency revisited. Artificial Intelligence, 28:225–233, 1986.
W. Older and A. Vellino. Constraint arithmetic on real intervals. In Constraint Logic Programming: Selected Research (eds. Benhamou and Colmerauer). MIT Press, 1993.
PrologIA. Le manuel de Prolog IV. Reference manual, PrologIA S.A., 1997.
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.
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.
Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, January 1990.
Gregory Sidebottom. A Language for Optimizing Constraint Propagation. PhD thesis, Simon Fraser University, November 1993.
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.
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.
Pascal Van Hentenryck, Vijay Saraswat, and Yves Deville. Constraint processing in cc(FD). Draft, Computer Science Department, Brown University, 1991.
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.
D. Waltz. The Psychology of Computer Vision (Ed. P. Winston), chapter Understanding line drawings of scenes with shadows. McGraw-Hill, New York, 1975.
H.P. Williams. Model Building in Mathematical Programming. J. Wiley and sons, New York, 1978.
Jörg Würtz, 1997. Personal Communication.
Neng-Fa Zhou. B-Prolog User's Manual Version 2.1. Technical report, Kyushu Institute of Technology, 1997. URL: http://www.cad.mse.kyutech.ac.jp/people/zhou/bprolog.html.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Carlsson, M., Ottosson, G., Carlson, B. (1997). An open-ended finite domain constraint solver. In: Glaser, H., Hartel, P., Kuchen, H. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1997. Lecture Notes in Computer Science, vol 1292. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0033845
Download citation
DOI: https://doi.org/10.1007/BFb0033845
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63398-3
Online ISBN: 978-3-540-69537-0
eBook Packages: Springer Book Archive