Skip to main content

Constraint Hierarchies

  • Conference paper

Part of the book series: NATO ASI Series ((NATO ASI F,volume 131))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

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.

    Article  MathSciNet  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • Borning, A. (1986). Graphically Defining New Building Blocks in ThingLab. Human-Computer Interaction 2 (4), 269–295.

    Article  Google Scholar 

  • Borning, A. and R. Duisberg (1986, October). Constraint-Based Tools for Building User Interfaces. ACM Transactions on Graphics 5 (4).

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Cohen, E. S., E. T. Smith, and L. A. Iverson ( 1986, May). Constraint-Based Tiled Windows. IEEE Computer Graphics and Applications, 35–45.

    Google Scholar 

  • Cohen, J. (1990, July). Constraint Logic Programming Languages. Communications of the ACM 33 (7), 52–68.

    Article  Google Scholar 

  • Colmerauer, A. ( 1990, July). An Introduction to Prolog III. Communications of the ACM, 69–90.

    Google Scholar 

  • Descotte, Y. and J.-C. Latombe (1985, November). Making Compromises among Antagonist Constraints in a Planner. Artificial Intelligence 27 (2), 183–217.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Fox, M. S. (1987). Constraint-Directed Search: A Case Study of Job-Shop Scheduling. Los Altos, California: Morgan Kaufmann.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Freeman-Benson, B., J. Maloney, and A. Borning (1990, January). An Incremental Constraint Solver. Communications of the ACM 33 (1), 54–63.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Freeman–Benson, B. N. (1988, April). Multiple Solutions from Constraint Hierarchies. Technical Report 88–04–02, University of Washington, Seattle, WA.

    Google Scholar 

  • 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.

    Google Scholar 

  • Freuder, E. ( 1989, August). Partial Constraint Satisfaction. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pp. 278–283.

    Google Scholar 

  • Gangnet, M. and B. Rosenberg (1992, January). Constraint Programming and Graph Algorithms. In Second International Symposium on Artificial Intelligence and Mathematics.

    Google Scholar 

  • Ginsberg, M. L. (Ed.) (1987). Readings in Nonmonotonic Reasoning. Los Altos, California: Morgan Kaufmann.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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

    Google Scholar 

  • 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.

    Google Scholar 

  • Ignizio, J. P. (1983). Generalized Goal Programming. Computers and Operations Research 10 (4), 277–290.

    Article  MathSciNet  Google Scholar 

  • 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.

    MATH  Google Scholar 

  • Jaffar, J. and J.-L. Lassez (1987, January). Constraint Logic Programming. In Proceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • Kamada, T. and S. Kawai (1991, January). A General Framework for Visualizing Abstract Objects and Relations. ACM Transactions on Graphics 10 (1), 1–39.

    Article  Google Scholar 

  • Konopasek, M. and S. Jayaraman (1984). The TK! Solver Book. Berkeley, CA: Osborne/McGraw-Hill.

    Google Scholar 

  • 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.

    Google Scholar 

  • Leier, W. (1987). Constraint Programming Languages. Addison-Wesley.

    Google Scholar 

  • Mackworth, A. K. (1977). Consistency in Networks of Relations. Artificial Intelligence 8 (1), 99–118.

    Article  MathSciNet  MATH  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Chapter  Google Scholar 

  • Murty, K. G. (1983). Linear Programming. Wiley.

    Google Scholar 

  • Myers, B. (1987a). Creating User Interfaces by Demonstration. Ph. D. thesis, University of Toronto.

    Google Scholar 

  • Myers, B. A. (1987b, April). Creating Dynamic Interaction Techniques by Demonstration. In CHI+GI 1987 Conference Proceedings, pp. 271–278.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Nelson, G. (1985, July). Juno, A Constraint-Based Graphics System. In SIG-GRAPH ‘85 Conference Proceedings, San Francisco, pp. 235–243. ACM.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Robinson, A. (1966). Non-Standard Analysis. Amsterdam: North-Holland Publishing Company.

    MATH  Google Scholar 

  • Rotterdam, E. (1989, June). Physiological Modeling and Simulation with Constraints. Technical Report R89001, Medical Information Science, Department of Anesthesiology, Oostersingel 59, 9713 E2 Groningen.

    Google Scholar 

  • 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.

    Google Scholar 

  • Saraswat, V. A. (1985, May). Problems with Concurrent Prolog. Technical Report CS-86–100, Carnegie-Mellon University. Revised January 1986.

    Google Scholar 

  • Saraswat, V. A. (1989, January). Concurrent Constraint Programming Languages. Ph. D. thesis, Carnegie-Mellon University, Computer Science Department.

    Google Scholar 

  • 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.

    Google Scholar 

  • Satoh, K. (1990). Formalizing Soft Constraints by Interpretation Ordering. In Proceedings of the European Conference on Artificial Intelligence.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Satoh, K. and A. Aiba (1991b, September). The Hierarchical Constraint Logic Language CHAL. Technical Report TR-592, Institute for New Generation Computer Technology, Tokyo.

    Google Scholar 

  • Shapiro, E. (1986, August). Concurrent Prolog: A Progress Report. IEEE Computer 19 (8), 44–58.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Sutherland, I. (1963a). Sketchpad: A Man-Machine Graphical Communication System. In Proceedings of the Spring Joint Computer Conference. IFIPS.

    Google Scholar 

  • 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.

    Google Scholar 

  • Van Hentenryck, P. (1989). Constraint Satisfaction in Logic Programming. Cambridge, MA: MIT Press.

    Google Scholar 

  • van Wyk, C. J. (1980, June). A Language for Typesetting Graphics. Ph. D. thesis, Department of Computer Science, Stanford.

    Google Scholar 

  • van Wyk, C. J. (1982, April). A High-level Language for Specifying Pictures. ACM Transactions on Graphics 1 (2).

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Wadge, W. W. and E. A. Ashcroft (1985). Lucid, the Dataflow Programming Language. London: Academic Press.

    MATH  Google Scholar 

  • 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.

    Google Scholar 

  • Wilson, M. (1992). Hierarchical Constraint Logic Programming. Ph. D. thesis, Department of Computer Science and Engineering, University of Washington. Forthcoming.

    Google Scholar 

  • 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics