Promoting Constraints to First-Class Status
This paper proposes to promote constraints to first-class status. In contrast to constraint propagation, which performs inference on values of variables, first-class constraints allow reasoning about the constraints themselves. This lets the programmer access the current state of a constraint and control a constraint’s behavior directly, thus making powerful new programming and inference techniques possible, as the combination of constraint propagation and rewriting constraints à la term rewriting. First-class constraints allow for true meta constraint programming. Promising applications in the field of combinatorial optimization include early unsatisfiability detection, constraint reformulation to improve propagation, garbage collection of redundant but not yet entailed constraints, and finding minimal inconsistent subsets of a given set of constraints for debugging immediately failing constraint programs.
We demonstrate the above-mentioned applications by means of examples. The experiments were done with Mozart Oz but can be easily ported to other constraint solvers.
KeywordsConstraint programming first-class constraints early failure detection simplification and garbage collection of constraints minimal sets of inconsistent constraints
Unable to display preview. Download preview PDF.
- 1.Frédéric Benhamou and William J. Older. Applying interval arithmetic to real, integer and boolean constraints. Journal of Logic Programming, 1997.Google Scholar
- 2.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 FGCS-88, pages 693–702, Tokyo, Japan, December 1988. Institute for New Generation Computer Technology (ICOT), Tokyo, Japan.Google Scholar
- 3.Thom Früwirth. Theory and practice of constraint handling rules. Special Issue on Constraint Logic Programming, Journal of Logic Programming, 37(1–3), October 1998.Google Scholar
- 4.Warwick Harvey and Peter J. Stuckey. Constraint representation for propagation. In M. Maher and J.-F. Puget, editors, Proceedings of the Fourth International Conference on Principles and Practice of Constraint Programming (CP98), Lecture Notes in Computer Science, pages 235–249, Pisa, Italy, October 1998. Springer-Verlag.CrossRefGoogle Scholar
- 5.Nevin Heintze, Spiro Michaylov, Peter J. Stuckey, and Roland H.C. Yap. Meta-programming in CLP(R). Journal of Logic Programming, 33(3):221–259, December 1997.Google Scholar
- 6.Martin Henz and Jörg Würtz. Using Oz for college timetabling. In E.K. Burke and P. Ross, editors, Practice and Theory of Automated Timetabling, First International Conference, Selected Papers, Edinburgh 1995, volume 1153 of Lecture Notes in Computer Science, Springer, pages 162–178. Springer-Verlag, Berlin-Heidelberg, 1996.Google Scholar
- 7.ILOG S. A., URL: http://www.ilog.com/. ILOG Solver 4.4, User’s Manual, 1999.
- 8.Michael Mehl, Tobias Müller, Christian Schulte, and Ralf Scheidhauer. Interfacing to C and C++. Technical report, Mozart Consortium, 1999. Available at http://www.mozart-oz.org/documentation/foreign/index.html.
- 9.The Mozart Consortium. The Mozart Programming System. http://www.mozart-oz.org/.
- 10.Tobias Müller. Practical investigation of constraints with graph views. In Konstantinos Sagonas and Paul Tarau, editors, Proceedings of the International Workshop on Implementation of Declarative Languages (IDL’99), September 1999.Google Scholar
- 11.Tobias Müller. The Mozart Constraint Extensions Reference. Technical report, Mozart Consortium, 1999. Available at http://www.mozart-oz.org/documentation/cpiref/index.html.
- 12.Tobias Müller and Martin Müller. Finite set constraints in Oz. In François Bry, Burkhard Freitag, and Dietmar Seipel, editors, 13. Workshop Logische Programmierung, pages 104–115, Technische Universität München, 17–19 September 1997.Google Scholar
- 13.Tobias Müller and Jörg Würtz. Extending a concurrent constraint language by propagators. In Jan Małuszyński, editor, Proceedings of the International Logic Programming Symposium, pages 149–163. The MIT Press, Cambridge, 1997.Google Scholar
- 14.Jean-François Puget and Michel Leconte. Beyond the glass box: Constraints as objects. In John Lloyd, editor, Logic Programming-Proceedings of the 1995 International Symposium, pages 513–527. The MIT Press, Cambridge, December 1995.Google Scholar
- 15.Christian Schulte. Oz Explorer: A visual constraint programming tool. In Lee Naish, editor, Proceedings of the Fourteenth International Conference on Logic Programming, pages 286–300, Leuven, Belgium, 8–11 July 1997. The MIT Press, Cambridge.Google Scholar
- 16.Christian Schulte. Programming constraint inference engines. In Gert Smolka, editor, Proceedings of the Third International Conferenceon Principles and Practice of Constraint Programming, volume 1330 of Lecture Notes in Computer Science, Schloss Hagenberg, Linz, Austria, October 1997. Springer-Verlag, Berlin-Heidelberg.CrossRefGoogle Scholar
- 17.Universität Bremen, Group of Prof. Dr. Bernd Krieg-Brückner. The Graph Visualization System daVinci. http://www.informatik.uni-bremen.de/davinci/.
- 18.Pascal Van Hentenryck and Yves Deville. The Cardinality Operator: A new Logical Connective for Constraint Logic Programming. In Koichi Furukawa, editor, Proceedings of the International Conference on Logic Programming, pages 745–759, Paris, France, 1991. The MIT Press.Google Scholar
- 19.Pascal Van Hentenryck, Vijay Saraswat, and Yves Deville. Design, implementation and evaluation of the constraint language cc(FD). In Andreas Podelski, editor, Constraints: Basics and Trends, volume 910 of Lecture Notes in Computer Science. Springer Verlag, 1995.Google Scholar