Abstract
Constraint Logic Programming (CLP) tries to unify the best from Logic Programming and Constraint Satisfaction. However, implementors of languages of the CLP class such as the CLP (R) must solve some unique problems such as constraint backtracking and devising an incremental constraint solver. This paper describes how the Simplex algorithm was adapted to serve as a constraint solver in a prototype CLP (R) system. The algorithm can handle equations as well as inequalities. The Simplex algorithm can be incrementalized easily by dividing it into invariant preserving steps. Constraint backtracking can be implemented efficiently by changing slack variable types.
Preview
Unable to display preview. Download preview PDF.
References
Bazaraa M.S. & Jarvis J.J: Linear Programming and Network Flows, John Wiley & Sons 1977.
Gabriel J. & Lindholm T. & Lusk E.L. & Overbeek R.A: Tutorial on the Warren Abstract Machine for Computational Logic, Tech. Rep. ANL-84-84, Argonne National Lab., Argonne, Illinois.
Heesterman A.R.G: Matrices and Simplex Algorithms, D. Reidel Publishing Company 1983, Holland.
Jaakola J: Rajoitelogiikkaohjelmoinnin toteutus (Implementation of Constraint Logic Programming), Department of Computer Science, University of Helsinki, 1990. In Finnish.
Jaffar J. & Lassez J-L: Constraint Logic Programming, Proceedings of the 14th ACM POPL Conference, Munich, January 1987.
Jaffar J. & Michaylov S: Methodology and Implementation of a CLP System, Proceedings of the 4th International Conference on Logic Programming, Melbourne, 1987.
Schrijver A: Theory of Linear and Integer Programming, John Wiley & Sons Ltd. 1987, Great Britain.
Warren D.H.D: An Abstract Prolog Instruction Set, Technical Note 309, SRI International, 1983.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jaakola, J. (1990). Modifying the simplex algorithm to a constraint solver. In: Deransart, P., Maluszyński, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1990. Lecture Notes in Computer Science, vol 456. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0024178
Download citation
DOI: https://doi.org/10.1007/BFb0024178
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53010-7
Online ISBN: 978-3-540-46298-9
eBook Packages: Springer Book Archive