Abstract
CLIP is an implementation of CLP(Intervals) built on top of Prolog. It has been developed using the simplest model of constraint solving in which constraints are decomposed into sets of primitive constraints and a simple constraint queue is used to repeatedly apply primitive constraint contractions until some termination condition applies (e.g. no signicant change occurs, or a preset limit on the number of contractions is reached). The simple semantics and implementation make it relatively straightforward to prove that the system is sound. In this paper we show how to implement more complex constraint solvers in CLIP. In particu- lar, we demonstrate that several of the box-narrowing algorithms from the Newton and Numerica systems can be easily implemented in CLIP. The principal advantages of this approach are (1) the resulting solvers are relatively easy to prove correct, (2) new solvers can be rapidly prototyped since the code is more concise and declarative than for imperative languages, and (3) contractors can be implemented directly from mathematical formulae without having to first prove results about interval arithmetic operators.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Forman S. Acton, Real computing made real: Preventing Errors in Scientific and Engineering calculations, Princeton University Press, Princeton, New Jersey 1996.
Applied Logic Systems. CLP(BNR) manual. http://www.als.com 1999.
Frédéric Benhamou and David McAllister and Pascal Van Hentenryck CLP(Intervals) Revisited Proceedings of ILPS’94, 1994.
Frédéric Benhamou and William J. Older. Applying interval arithmetic to real, integer, and Boolean constraints. Journal of Logic Programming, 32:1–24, 1997.
Bell Northern Research. CLP(BNR) Reference and User Manuals. 1988
Cucker, F. and Smale, S. Complexity Estimates Depending on Condition and Round-Off Error, Journal of the ACM, 46:1, pp. 113–184, 1999.
Daniel Dìaz. GNU Prolog. http://www.gnu.org/software/prolog 1999.
L. Granvilliers. A Symbolic-Numerical Branch and Prune Algorithm for Solving Non-linear Polynomial Systems. Journal of Universal Computer Science vol. 4(2):125–146, 1998. Springer Science Online.
F. Benhamou and L. Granvilliers. Automatic Generation of Numerical Redundancies for Non-Linear Constraint Solving. Reliable Computing, vol 3(3):335–344, 1997. Kluwer Academic Publishers.
T. Hickey, CLP(F) and Constrained ODEs, in the Workshop on Constraint Languages and their use in Problem Modeling, ECRC Tech. Report (defunct), 1994.
T. Hickey, CLIP: an implementation of CLP (Intervals), http://www.cs.brandeis.edu/~tim/clip, 1999.
T. Hickey, Analytic Constraint Solving and Interval Arithmetic, to appear in the Proceedings of POPL’00, Boston, MA, Jan. 2000.
T. Hickey and D. Wittenberg, Validated Constraint Compilation Brandeis University, Tech Rep. CS-99-201, April, 1999.
T. Hickey, H. Wu, and M.H. van Emden, A Unified Framework for Interval Constraints and Interval Arithmetic, in Principles and Practice of Constraint Programming — CP98, M. Maher and J-F. Puget (eds.), Springer-Verlag, LNCS v. 1520, pp. 250–264, 1998.
T. Hickey, Q. Ju, and M.H. van Emden, Interval Arithmetic: from Principles to Implementation, Brandeis University Tech Report. CS-99-202, July, 1999.
R. Hammer, M. Hocks, U. Kulisch, and D. Ratz. Numerical Toolbox for Verified Computing I. Springer-Verlag, 1993.
Jaffar, J. and Lassez, J. L., Constraint Logic Programming. in Proceedings of the 14th ACM Symposium on the Principles of Programming Languages, 1987.
Moore, R. E., Interval Analysis. Prentice-Hall, 1966.
A. Neumaier. Interval Methods for Systems of Equations. Cambridge University Press. 1990.
William Older and Frédéric Benhamou. Programming in CLP(BNR). Proceedings of PPCP’93, 1993.
Older, W. and Vellino, A., Constraint Arithmetic on Real Intervals, in Constraint Logic Programming: Selected Research. Colmerauer, A. and Benhamou, F. (eds), MIT Press 1993.
Pascal Van Hentenryck, Laurent Michel, and Yves Deville. Numerica: A Modeling Language for Global Optimization. MIT Press, 1997.
Pascal Van Hentenryck, David McAllester, Dipak Kapur. Solving Polynomial Systems Using a Branch and Prune Approach, SIAM Journal on Numerical Analysis, 34(2), 1997
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hickey, T.J. (1999). CLIP: A CLP(Intervals) Dialect for Metalevel Constraint Solving. In: Pontelli, E., Santos Costa, V. (eds) Practical Aspects of Declarative Languages. PADL 2000. Lecture Notes in Computer Science, vol 1753. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46584-7_14
Download citation
DOI: https://doi.org/10.1007/3-540-46584-7_14
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66992-0
Online ISBN: 978-3-540-46584-3
eBook Packages: Springer Book Archive