Abstract
Constraints allow programmers and users to state declaratively a relation that should be maintained, rather than requiring them to write procedures to maintain the relation themselves. They are thus useful in such applications as programming languages, user interface toolkits, and simulation packages. In many situations, it is desirable to be able to state both required and preferential constraints. The required constraints must hold. Since the other constraints are merely preferences, the system should try to satisfy them if possible, but no error condition arises if it cannot. A constraint hierarchy consists of a set of constraints, each labeled as either required or preferred at some strength. An arbitrary number of different strengths is allowed. In the discussion of a theory of constraint hierarchies, we present alternate ways of selecting among competing possible solutions, and prove a number of propositions about the relations among these alternatives. We then outline algorithms for satisfying constraint hierarchies, and ways in which we have used constraint hierarchies in a number of programming languages and systems.
This paper was originally published in Lisp and Symbolic Computation, Vol. 5 No. 3 (September 1992), pages 223–270.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Barth, P. (1986, April). An Object-Oriented Approach to Graphical Interfaces. ACM Transactions on Graphics 5 (2), 142–172.
Böhringer, K.-F. (1990, April). Using Constraints to Achieve Stability in Automatic Graph Layout Algorithms. In CHI’90 Conference Proceedings, Seattle, Washington, pp. 43–52. ACM SIGCHI.
Borning, A. (1981, October). The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory. ACM Transactions on Programming Languages and Systems 3 (4), 353–387.
Borning, A. (1986). Graphically Defining New Building Blocks in ThingLab. Human-Computer Interaction 2 (4), 269–295.
Borning, A. and R. Duisberg (1986, October). Constraint-Based Tools for Building User Interfaces. ACM Transactions on Graphics 5 (4).
Borning, A., R. Duisberg, B. Freeman-Benson, A. Kramer, and M. Woolf (1987, October). Constraint Hierarchies. In Proceedings of the 1987 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 48–60. ACM.
Borning, A., M. Maher, A. Martindale, and M. Wilson (1989, June). Constraint Hierarchies and Logic Programming. In Proceedings of the Sixth International Conference on Logic Programming, Lisbon, pp. 149–164.
Brewka, G. (1989, August). Preferred Subtheories: An Extended Logical Framework for Default Reasoning. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pp. 1043–1048.
Carter, C. A. and W. R. LaLonde (1984, May). The Design of a Program Editor Based on Constraints. Technical Report CS TR 50, Carleton University.
Cohen, E. S., E. T. Smith, and L. A. Iverson ( 1986, May). Constraint-Based Tiled Windows. IEEE Computer Graphics and Applications, 35–45.
Cohen, J. (1990, July). Constraint Logic Programming Languages. Communications of the ACM 33 (7), 52–68.
Colmerauer, A. ( 1990, July). An Introduction to Prolog III. Communications of the ACM, 69–90.
Descotte, Y. and J.-C. Latombe (1985, November). Making Compromises among Antagonist Constraints in a Planner. Artificial Intelligence 27 (2), 183–217.
Dincbas, M., P. V. Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Bertheir (1988). The Constraint Logic Programming Language CHIP. In Proceedings Fifth Generation Computer Systems-88.
Duisberg, R. A. (1986). Constraint–Based Animation: The Implementation of Temporal Constraints in the Animus System. Ph. D. thesis, University of Washington. Published as UW Computer Science Department Technical Report No. 86–09–01.
Ege, R., D. Maier, and A. Borning (1987, June). The Filter Browser—Defining Interfaces Graphically. In Proceedings of the European Conference on Object-Oriented Programming, Paris, pp. 155–165. Association Française pour la Cybernétique Économique et Technique.
Epstein, D. and W. LaLonde (1988, September). A Smalltalk Window System Based on Constraints. In Proceedings of the 1988 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, San Diego, pp. 83–94. ACM.
Fox, M. S. (1987). Constraint-Directed Search: A Case Study of Job-Shop Scheduling. Los Altos, California: Morgan Kaufmann.
Freeman-Benson, B. (1989, October). A Module Compiler for ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, New Orleans, pp. 389–396. ACM.
Freeman-Benson, B. (1990, October). Kaleidoscope: Mixing Objects, Constraints, and Imperative Programming. In Proceedings of the 1990 Conference on Object-Oriented Programming Systems, Languages, and Applications, and European Conference on Object-Oriented Programming, Ottawa, Canada, pp. 77–88. ACM.
Freeman-Benson, B. and A. Borning (1992a, June). Integrating Constraints with an Object-Oriented Language. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pp. 268–286.
Freeman-Benson, B. and A. Borning (1992b, April). The Design and Implementation of Kaleidoscope’90, A Constraint Imperative Programming Language. In Proceedings of the IEEE Computer Society International Conference on Computer Languages, pp. 174–180.
Freeman–Benson, B. and J. Maloney (1989, March). The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. In Proceedings of the Eighth Annual IEEE Phoenix Conference on Computers and Communications, Scottsdale, Arizona. IEEE. Freeman–Benson, B., J. Maloney, and A. Borning (1989, August). The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. Technical Report 89–08–06, Department of Computer Science and Engineering, University of Washington.
Freeman-Benson, B., J. Maloney, and A. Borning (1990, January). An Incremental Constraint Solver. Communications of the ACM 33 (1), 54–63.
Freeman–Benson, B. and M. Wilson (1990, May). DeltaStar, How I Wonder What You Are: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. Technical Report 90–05–02, Department of Computer Science and Engineering, University of Washington.
Freeman-Benson, B., M. Wilson, and A. Borning (1992, March). DeltaStar: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. In Proceedings of the Eleventh Annual IEEE Phoenix Conference on Computers and Communications, Scottsdale, Arizona, pp. 561–568. IEEE.
Freeman–Benson, B. N. (1988, April). Multiple Solutions from Constraint Hierarchies. Technical Report 88–04–02, University of Washington, Seattle, WA.
Freeman–Benson, B. N. (1991, July). Constraint Imperative Programming. Ph. D. thesis, University of Washington, Department of Computer Science and Engineering. Published as Department of Computer Science and Engineering Technical Report 91–07–02.
Freuder, E. ( 1989, August). Partial Constraint Satisfaction. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pp. 278–283.
Gangnet, M. and B. Rosenberg (1992, January). Constraint Programming and Graph Algorithms. In Second International Symposium on Artificial Intelligence and Mathematics.
Ginsberg, M. L. (Ed.) (1987). Readings in Nonmonotonic Reasoning. Los Altos, California: Morgan Kaufmann.
Gosling, J. A. (1983, May). Algebraic Constraints. Ph. D. thesis, Carnegie-Mellon University. Published as CMU Computer Science Department Technical Report CMU-CS-83–132.
Hill, R. D. (1990). A 2-D Graphics System for Multi-User Interactive Graphics Based on Objects and Constraints. In E. H. Blake and P. Wisskirchen (Eds.), Advances in Object Oriented Graphics I, pp. 67–91. Berlin: Springer-Verlag.
Hill, R. D. (1992). Languages for the Construction of Multi-User Multi-Media Synchronous (MUMMS) Applications. In B. Myers (Ed.), Languages for Developing User Interfaces, pp. 125–143. Boston: Jones and Bartlett.
Horn, B. (1992a, October). Constraint Patterns as a Basis for Object-Oriented Constraint Programming. In Proceedings of the 1992 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Vancouver, British Columbia
Horn, B. (1992b). Properties of User Interface Systems and the Siri Programming Language. In B. Myers (Ed.), Languages for Developing User Interfaces, pp. 211–236. Boston: Jones and Bartlett.
Ignizio, J. P. (1983). Generalized Goal Programming. Computers and Operations Research 10 (4), 277–290.
Ignizio, J. P. (1985). Introduction to Linear Goal Programming. Beverly Hills: Sage Publications. Sage University Paper Series on Qualitative Applications in the Social Sciences, 07–056.
Jaffar, J. and J.-L. Lassez (1987, January). Constraint Logic Programming. In Proceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich.
Jaffar, J. and S. Michaylov (1987, May). Methodology and Implementation of a CLP System. In Proceedings of the Fourth International Conference on Logic Programming, Melbourne, pp. 196–218.
Jaffar, J., S. Michaylov, P. Stuckey, and R. Yap (1992, July). The CLP(R) Language and System. ACM Transactions on Programming Languages and Systems 14 (3), 339–395.
Kamada, T. and S. Kawai (1991, January). A General Framework for Visualizing Abstract Objects and Relations. ACM Transactions on Graphics 10 (1), 1–39.
Konopasek, M. and S. Jayaraman (1984). The TK! Solver Book. Berkeley, CA: Osborne/McGraw-Hill.
Kristensen, B. B., O. L. Madsen, B. Moeller-Pederson, and K. Nygaard (1983, January). Abstraction Mechanisms in the BETA Programming Language. In Proceedings of the Tenth Annual Principles of Programming Languages Symposium, Austin, Texas. ACM.
Leier, W. (1987). Constraint Programming Languages. Addison-Wesley.
Mackworth, A. K. (1977). Consistency in Networks of Relations. Artificial Intelligence 8 (1), 99–118.
Maher, M. J. (1987, May). Logic Semantics for a Class of Committed-choice Programs. In Proceedings of the Fourth International Conference on Logic Programming, Melbourne, pp. 858–876.
Maher, M. J. and P. J. Stuckey (1989, October). Expanding Query Power in Constraint Logic Programming. In Proceedings of the North American Conference on Logic Programming, Cleveland.
Maloney, J. (1991, August). Using Constraints for User Interface Construction. Ph. D. thesis, Department of Computer Science and Engineering, University of Washington. Published as Department of Computer Science and Engineering Technical Report 91–08–12.
Maloney, J., A. Borning, and B. Freeman-Benson (1989, October). Constraint Technology for User-Interface Construction in ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, New Orleans, pp. 381–388. ACM.
McDonald, J. A., W. Stuetzle, and A. Buja (1990, October). Painting Multiple Views of Complex Objects. In Proceedings of the 1990 ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications and the European Conference on Object-Oriented Programming, Ottawa, Canada, pp. 245–257.
Murty, K. G. (1983). Linear Programming. Wiley.
Myers, B. (1987a). Creating User Interfaces by Demonstration. Ph. D. thesis, University of Toronto.
Myers, B. A. (1987b, April). Creating Dynamic Interaction Techniques by Demonstration. In CHI+GI 1987 Conference Proceedings, pp. 271–278.
Myers, B. A., D. Guise, R. B. Dannenberg, B. Vander Zanden, D. Kosbie, P. Marchai, and E. Pervin (1990, November). Comprehensive Support for Graphical, Highly-Interactive User Interfaces: The Garnet User Interface Development Environment. IEEE Computer 23 (11), 71–85.
Myers, B. A., D. Guise, R. B. Dannenberg, B. Vander Zanden, D. Kosbie, P. Maschal, E. Pervin, A. Mickish, and J. A. Kolojejchick (1990, March). The Garnet Toolkit Reference Manuals: Support for Highly-Interactive Graphical User Interfaces in Lisp. Technical Report CMU-CS-90–117, Computer Science Dept, Carnegie Mellon University.
Nelson, G. (1985, July). Juno, A Constraint-Based Graphics System. In SIG-GRAPH ‘85 Conference Proceedings, San Francisco, pp. 235–243. ACM.
Ohwada, H. and F. Mizoguchi (1990, October). A Constraint Logic Programming Approach for Maintaining Consistency in User-Interface Design. In Proceedings of the 1990 North American Conference on Logic Programming, pp. 139–153. MIT Press.
Olsen, Jr., D. R. (1990, October). Creating Interactive Techniques by Symbolically Solving Geometric Constraints. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, Snowbird, Utah, pp. 102–107. ACM SIGGRAPH and SIGCHI.
Robinson, A. (1966). Non-Standard Analysis. Amsterdam: North-Holland Publishing Company.
Rotterdam, E. (1989, June). Physiological Modeling and Simulation with Constraints. Technical Report R89001, Medical Information Science, Department of Anesthesiology, Oostersingel 59, 9713 E2 Groningen.
Sannella, M. and A. Borning (1992, September). Multi–Garnet: Integrating Multi–Way Constraints with Garnet. Technical Report 92–07–01, Department of Computer Science and Engineering, University of Washington.
Saraswat, V. A. (1985, May). Problems with Concurrent Prolog. Technical Report CS-86–100, Carnegie-Mellon University. Revised January 1986.
Saraswat, V. A. (1989, January). Concurrent Constraint Programming Languages. Ph. D. thesis, Carnegie-Mellon University, Computer Science Department.
Saraswat, V. A., M. Rinard, and P. Panangaden (1991). Semantic Foundations of Concurrent Constraint Programming. In Proceedings of the Eighteenth Annual Principles of Programming Languages Symposium. ACM.
Satoh, K. (1990). Formalizing Soft Constraints by Interpretation Ordering. In Proceedings of the European Conference on Artificial Intelligence.
Satoh, K. and A. Aiba (1990, February). CAL: A Theoretical Background of Constraint Logic Programming and its Applications (Revised). Technical Report TR-537, Institute for New Generation Computer Technology, Tokyo.
Satoh, K. and A. Aiba (1991a, January). Computing Soft Constraints by Hierarchical Constraint Logic Programming. Technical Report TR-610, Institute for New Generation Computer Technology, Tokyo.
Satoh, K. and A. Aiba (1991b, September). The Hierarchical Constraint Logic Language CHAL. Technical Report TR-592, Institute for New Generation Computer Technology, Tokyo.
Shapiro, E. (1986, August). Concurrent Prolog: A Progress Report. IEEE Computer 19 (8), 44–58.
Shapiro, L. and R. Haralick (1981, September). Structural Descriptions and Inexact Matching. IEEE Transactions on Pattern Analysis and Machine Intelligence PAMI 3 (5), 504–519.
Sistare, S. (1990, December). A Graphical Editor for Constraint-Based Geometric Modeling. Ph. D. thesis, Department of Computer Science, Harvard. Published as Technical Report TR-06–9.
Steele, G. L. (1980, August). The Definition and Implementation of a Computer Programming Language Based on Constraints. Ph. D. thesis, MIT. Published as MIT-AI TR 595, August 1980.
Sutherland, I. (1963a). Sketchpad: A Man-Machine Graphical Communication System. In Proceedings of the Spring Joint Computer Conference. IFIPS.
Sutherland, L (1963b, January). Sketchpad: A Man-Machine Graphical Communication System. Ph. D. thesis, Department of Electrical Engineering, MIT. Takahashi, S., S. Matsuoka, and A. Yonezawa (1991, November). A General Framework for Bi-Directional Translation between Abstract and Pictorial Data. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, Hilton Head, South Carolina, pp. 165–174.
Van Hentenryck, P. (1989). Constraint Satisfaction in Logic Programming. Cambridge, MA: MIT Press.
van Wyk, C. J. (1980, June). A Language for Typesetting Graphics. Ph. D. thesis, Department of Computer Science, Stanford.
van Wyk, C. J. (1982, April). A High-level Language for Specifying Pictures. ACM Transactions on Graphics 1 (2).
Vander Zanden, B., B. Myers, D. Guise, and P. Szekely (1991, November). The Importance of Pointer Variables in Constraint Models. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, Hilton Head, South Carolina, pp. 155–164.
Vander Zanden, B. T. ( 1988, April). An Incremental Planning Algorithm for Ordering Equations in a Multilinear system of Constraints. Ph. D. thesis, Department of Computer Science, Cornell University.
Wadge, W. W. and E. A. Ashcroft (1985). Lucid, the Dataflow Programming Language. London: Academic Press.
Walinsky, C. (1989, June). CLP(E*): Constraint Logic Programming with Regular Sets. In Proceedings of the Sixth International Conference on Logic Programming, Lisbon, pp. 181–196.
Wilson, M. (1992). Hierarchical Constraint Logic Programming. Ph. D. thesis, Department of Computer Science and Engineering, University of Washington. Forthcoming.
Wilson, M. and A. Borning (1989, October). Extending Hierarchical Constraint Logic Programming: Nonmonotonicity and Inter-Hierarchy Comparison. In Proceedings of the North American Conference on Logic Programming, Cleveland, pp. 3–19.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Borning, A., Freeman-Benson, B., Wilson, M. (1994). Constraint Hierarchies. In: Mayoh, B., Tyugu, E., Penjam, J. (eds) Constraint Programming. NATO ASI Series, vol 131. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-85983-0_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-85983-0_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-85985-4
Online ISBN: 978-3-642-85983-0
eBook Packages: Springer Book Archive