Skip to main content

Constraint hierarchies

  • Background Papers
  • Conference paper
  • First Online:
Over-Constrained Systems (OCS 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1106))

Included in the following conference series:

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 is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Paul Barth. An Object-Oriented Approach to Graphical Interfaces. ACM Transactions on Graphics, 5(2):142–172, April 1986.

    Google Scholar 

  2. Karl-Friedrich Böhringer. Using Constraints to Achieve Stability in Automatic Graph Layout Algorithms. In CHI'90 Conference Proceedings, pages 43–52, Seattle,. Washington, April 1990. ACM SIGCHI.

    Google Scholar 

  3. Alan Borning. The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory. ACM Transactions on Programming Languages and Systems, 3(4):353–387, October 1981.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  6. Alan Borning, Robert Duisberg, Bjorn Freeman-Benson, Axel Kramer, and Michael Woolf. Constraint Hierarchies. In Proceedings of the 1987 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 48–60. ACM, October 1987.

    Google Scholar 

  7. Alan Borning, Michael Maher, Amy Martindale, and Molly Wilson. Constraint Hierarchies and Logic Programming. In Proceedings of the Sixth International Conference on Logic Programming, pages 149–164, Lisbon, June 1989.

    Google Scholar 

  8. Gerhard Brewka. Preferred Subtheories: An Extended Logical Framework for Default Reasoning. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pages 1043–1048, August 1989.

    Google Scholar 

  9. C. A. Carter and W. R. LaLonde. The Design of a Program Editor Based on Constraints. Technical Report CS TR 50, Carleton University, May 1984.

    Google Scholar 

  10. Ellis S. Cohen, Edward T. Smith, and Lee A. Iverson. Constraint-Based Tiled Windows. IEEE Computer Graphics and Applications, pages 35–45, May 1986.

    Google Scholar 

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

    Article  Google Scholar 

  12. Alain Colmerauer. An Introduction to Prolog III. Communications of the ACM, pages 69–90, July 1990.

    Google Scholar 

  13. Yannick Descotte and Jean-Claude Latombe. Making Compromises among Antagonist Constraints in a Planner. Artificial Intelligence, 27(2):183–217, November 1985.

    Google Scholar 

  14. M. Dincbas, P. Van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Bertheir. The Constraint Logic Programming Language CHIP. In Proceedings Fifth Generation Computer Systems-88, 1988.

    Google Scholar 

  15. Robert A. Duisberg. Constraint-Based Animation: The Implementation of Temporal Constraints in the Animus System. PhD thesis, University of Washington, 1986. Published as UW Computer Science Department Technical Report No. 86-09-01.

    Google Scholar 

  16. Raimund Ege, David Maier, and Alan Borning. The Filter Browser—Defining Interfaces Graphically. In Proceedings of the European Conference on Object-Oriented Programming, pages 155–165, Paris, June 1987. Association Française pour la Cybernétique Économique et Technique.

    Google Scholar 

  17. Danny Epstein and Wilf LaLonde. A Smalltalk Window System Based on Constraints. In Proceedings of the 1988 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 83–94, San Diego, September 1988. ACM.

    Google Scholar 

  18. Mark S. Fox. Constraint-Directed Search: A Case Study of Job-Shop Scheduling. Morgan Kaufmann, Los Altos, California, 1987.

    Google Scholar 

  19. Bjorn Freeman-Benson. A Module Compiler for ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 389–396, New Orleans, October 1989. ACM.

    Google Scholar 

  20. Bjorn Freeman-Benson. 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, pages 77–88, Ottawa, Canada, October 1990. ACM.

    Google Scholar 

  21. Bjorn Freeman-Benson and Alan Borning. Integrating Constraints with an Object-Oriented Language. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pages 268–286, June 1992.

    Google Scholar 

  22. Bjorn Freeman-Benson and Alan Borning. The Design and Implementation of Kaleidoscope'90, A Constraint Imperative Programming Language. In Proceedings of the IEEE Computer Society International Conference on Computer Languages, pages 174–180, April 1992.

    Google Scholar 

  23. Bjorn Freeman-Benson and John Maloney. The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. In Proceedings of the Eighth Annual IEEE Phoenix Conference on Computers and Communications, Scottsdale, Arizona, March 1989. IEEE.

    Google Scholar 

  24. Bjorn Freeman-Benson, John Maloney, and Alan Borning. The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. Technical Report 89-08-06, Department of Computer Science and Engineering, University of Washington, August 1989.

    Google Scholar 

  25. Bjorn Freeman-Benson, John Maloney, and Alan Borning. An Incremental Constraint Solver. Communications of the ACM, 33(1):54–63, January 1990.

    Article  Google Scholar 

  26. Bjorn Freeman-Benson and Molly Wilson. 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, May 1990.

    Google Scholar 

  27. Bjorn Freeman-Benson, Molly Wilson, and Alan Borning. DeltaStar: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. In Proceedings of the Eleventh Annual IEEE Phoenix Conference on Computers and Communications, pages 561–568, Scottsdale, Arizona, March 1992. IEEE.

    Google Scholar 

  28. Bjorn N. Freeman-Benson. Multiple Solutions from Constraint Hierarchies. Technical Report 88-04-02, University of Washington, Seattle, WA, April 1988.

    Google Scholar 

  29. Bjorn N. Freeman-Benson. Constraint Imperative Programming. PhD thesis, University of Washington, Department of Computer Science and Engineering, July 1991. Published as Department of Computer Science and Engineering Technical Report 91-07-02.

    Google Scholar 

  30. Eugene Freuder. Partial Constraint Satisfaction. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pages 278–283, August 1989.

    Google Scholar 

  31. Michel Gangnet and Burton Rosenberg. Constraint Programming and Graph Algorithms. In Second International Symposium on Artificial Intelligence and Mathematics, January 1992.

    Google Scholar 

  32. Matthew L. Ginsberg, editor. Readings in Nonmonotonic Reasoning. Morgan Kaufmann, Los Altos, California, 1987.

    Google Scholar 

  33. James A. Gosling. Algebraic Constraints. PhD thesis, Carnegie-Mellon University, May 1983. Published as CMU Computer Science Department Technical Report CMU-CS-83-132.

    Google Scholar 

  34. Ralph D. Hill. A 2-D Graphics System for Multi-User Interactive Graphics Based on Objects and Constraints. In E. H. Blake and P. Wisskirchen, editors, Advances in Object Oriented Graphics I, pages 67–91. Springer-Verlag, Berlin, 1990.

    Google Scholar 

  35. Ralph D. Hill. Languages for the Construction of Multi-User Multi-Media Synchronous (MUMMS) Applications. In Brad Myers, editor, Languages for Developing User Interfaces, pages 125–143. Jones and Bartlett, Boston, 1992.

    Google Scholar 

  36. Bruce Horn. 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, October 1992.

    Google Scholar 

  37. Bruce Horn. Properties of User Interface Systems and the Siri Programming Language. In Brad Myers, editor, Languages for Developing User Interfaces, pages 211–236. Jones and Bartlett, Boston, 1992.

    Google Scholar 

  38. James P. Ignizio. Generalized Goal Programming. Computers and Operations Research, 10(4):277–290, 1983.

    Google Scholar 

  39. James P. Ignizio. Introduction to Linear Goal Programming. Sage Publications, Beverly Hills, 1985. Sage University Paper Series on Qualitative Applications in the Social Sciences, 07–056.

    Google Scholar 

  40. Joxan Jaffar and Jean-Louis Lassez. Constraint Logic Programming. In Proceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich, January 1987.

    Google Scholar 

  41. Joxan Jaffar and Spiro Michaylov. Methodology and Implementation of a CLP System. In Proceedings of the Fourth International Conference on Logic Programming, pages 196–218, Melbourne, May 1987.

    Google Scholar 

  42. Joxan Jaffar, Spiro Michaylov, Peter Stuckey, and Roland Yap. The CLP(\(\mathcal{R}\)) Language and System. ACM Transactions on Programming Languages and Systems, 14(3):339–395, July 1992.

    Article  Google Scholar 

  43. Tomihisa Kamada and Satoru Kawai. A General Framework for Visualizing Abstract Objects and Relations. ACM Transactions on Graphics, 10(1):1–39, January 1991.

    Google Scholar 

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

    Google Scholar 

  45. Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller Pederson, and Kirsten Nygaard. Abstraction Mechanisms in the BETA Programming Language. In Proceedings of the Tenth Annual Principles of Programming Languages Symposium, Austin, Texas, January 1983. ACM.

    Google Scholar 

  46. William Leler. Constraint Programming Languages. Addison-Wesley, 1987.

    Google Scholar 

  47. Alan K. Mackworth. Consistency in Networks of Relations. Artificial Intelligence, 8(1):99–118, 1977.

    Article  Google Scholar 

  48. Michael J. Maher. Logic Semantics for a Class of Committed-choice Programs. In Proceedings of the Fourth International Conference on Logic Programming, pages 858–876, Melbourne, May 1987.

    Google Scholar 

  49. Michael J. Maher and Peter J. Stuckey. Expanding Query Power in Constraint Logic Programming. In Proceedings of the North American Conference on Logic Programming, Cleveland, October 1989.

    Google Scholar 

  50. John Maloney. Using Constraints for User Interface Construction. PhD thesis, Department of Computer Science and Engineering, University of Washington, August 1991. Published as Department of Computer Science and Engineering Technical Report 91-08-12.

    Google Scholar 

  51. John Maloney, Alan Borning, and Bjorn Freeman-Benson. Constraint Technology for User-Interface Construction in ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 381–388, New Orleans, October 1989. ACM.

    Google Scholar 

  52. John Alan McDonald, Werner Stuetzle, and Andreas Buja. 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, pages 245–257, Ottawa, Canada, October 1990.

    Google Scholar 

  53. Katta G. Murty. Linear Programming. Wiley, 1983.

    Google Scholar 

  54. Brad Myers. Creating User Interfaces by Demonstration. PhD thesis, University of Toronto, 1987.

    Google Scholar 

  55. Brad A. Myers. Creating Dynamic Interaction Techniques by Demonstration. In CHI+GI 1987 Conference Proceedings, pages 271–278, April 1987.

    Google Scholar 

  56. Brad A. Myers, Dario Guise, Roger B. Dannenberg, Brad Vander Zanden, David Kosbie, Philippe Marchal, Ed Pervin, Andrew Mickish, and John A. Kolojejchick. 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, March 1990.

    Google Scholar 

  57. Brad A. Myers, Dario Guise, Roger B. Dannenberg, Brad Vander Zanden, David Kosbie, Philippe Marchal, and Ed Pervin. Comprehensive Support for Graphical, Highly-Interactive User Interfaces: The Garnet User Interface Development Environment. IEEE Computer, 23(11):71–85, November 1990.

    Google Scholar 

  58. Greg Nelson. Juno, A Constraint-Based Graphics System. In SIGGRAPH '85 Conference Proceedings, pages 235–243, San Francisco, July 1985. ACM.

    Google Scholar 

  59. Hayato Ohwada and Fumio Mizoguchi. A Constraint Logic Programming Approach for Maintaining Consistency in User-Interface Design. In Proceedings of the 1990 North American Conference on Logic Programming, pages 139–153. MIT Press, October 1990.

    Google Scholar 

  60. Dan R. Olsen, Jr. Creating Interactive Techniques by Symbolically Solving Geometric Constraints. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, pages 102–107, Snowbird, Utah, October 1990. ACM SIGGRAPH and SIGCHI.

    Google Scholar 

  61. A. Robinson. Non-Standard Analysis. North-Holland Publishing Company, Amsterdam, 1966.

    Google Scholar 

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

    Google Scholar 

  63. Michael Sannella and Alan Borning. Multi-Garnet: Integrating Multi-Way Constraints with Garnet. Technical Report 92-07-01, Department of Computer Science and Engineering, University of Washington, September 1992.

    Google Scholar 

  64. Vijay A. Saraswat. Problems with Concurrent Prolog. Technical Report CS-86-100, Carnegie-Mellon University, May 1985. Revised January 1986.

    Google Scholar 

  65. Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, Computer Science Department, January 1989.

    Google Scholar 

  66. Vijay A. Saraswat, Martin Rinard, and Prakash Panangaden. Semantic Foundations of Concurrent Constraint Programming. In Proceedings of the Eighteenth Annual Principles of Programming Languages Symposium. ACM, 1991.

    Google Scholar 

  67. Ken Satoh. Formalizing Soft Constraints by Interpretation Ordering. In Proceedings of the European Conference on Artificial Intelligence, 1990.

    Google Scholar 

  68. Ken Satoh and Akira Aiba. CAL: A Theoretical Background of Constraint Logic Programming and its Applications (Revised). Technical Report TR-537, Institute for New Generation Computer Technology, Tokyo, February 1990.

    Google Scholar 

  69. Ken Satoh and Akira Aiba. Computing Soft Constraints by Hierarchical Constraint Logic Programming. Technical Report TR-610, Institute for New Generation Computer Technology, Tokyo, January 1991.

    Google Scholar 

  70. Ken Satoh and Akira Aiba. The Hierarchical Constraint Logic Language CHAL. Technical Report TR-592, Institute for New Generation Computer Technology, Tokyo, September 1991.

    Google Scholar 

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

    Google Scholar 

  72. Linda Shapiro and Robert Haralick. Structural Descriptions and Inexact Matching. IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI-3(5):504–519, September 1981.

    Google Scholar 

  73. Steven Sistare. A Graphical Editor for Constraint-Based Geometric Modeling. PhD thesis, Department of Computer Science, Harvard, December 1990. Published as Technical Report TR-06-9.

    Google Scholar 

  74. Guy L. Steele. The Definition and Implementation of a Computer Programming Language Based on Constraints. PhD thesis, MIT, August 1980. Published as MIT-AI TR 595, August 1980.

    Google Scholar 

  75. Ivan Sutherland. Sketchpad: A Man-Machine Graphical Communication System. In Proceedings of the Spring Joint Computer Conference. IFIPS, 1963.

    Google Scholar 

  76. Ivan Sutherland. Sketchpad: A Man-Machine Graphical Communication System. PhD thesis, Department of Electrical Engineering, MIT, January 1963.

    Google Scholar 

  77. Shin Takahashi, Satoshi Matsuoka, and Akinori Yonezawa. 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, pages 165–174, Hilton Head, South Carolina, November 1991.

    Google Scholar 

  78. Pascal Van Hentenryck. Constraint Satisfaction in Logic Programming. MIT Press, Cambridge, MA, 1989.

    Google Scholar 

  79. Christopher J. van Wyk. A Language for Typesetting Graphics. PhD thesis, Department of Computer Science, Stanford, June 1980.

    Google Scholar 

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

    Google Scholar 

  81. Brad Vander Zanden, Brad Myers, Dario Guise, and Pedro Szekely. The Importance of Pointer Variables in Constraint Models. In Proceedings of the ACM SIG-GRAPH Symposium on User Interface Software and Technology, pages 155–164, Hilton Head, South Carolina, November 1991.

    Google Scholar 

  82. Bradley T. Vander Zanden. An Incremental Planning Algorithm for Ordering Equations in a Multilinear system of Constraints. PhD thesis, Department of Computer Science, Cornell University, April 1988.

    Google Scholar 

  83. William W. Wadge and Edward A. Ashcroft. Lucid, the Dataflow Programming Language. Academic Press, London, 1985.

    Google Scholar 

  84. Clifford Walinsky. CLP(∑ *): Constraint Logic Programming with Regular Sets. In Proceedings of the Sixth International Conference on Logic Programming, pages 181–196, Lisbon, June 1989.

    Google Scholar 

  85. Molly Wilson. Hierarchical Constraint Logic Programming. PhD thesis, Department of Computer Science and Engineering, University of Washington, 1992. Forthcoming.

    Google Scholar 

  86. Molly Wilson and Alan Borning. Extending Hierarchical Constraint Logic Programming: Nonmonotonicity and Inter-Hierarchy Comparison. In Proceedings of the North American Conference on Logic Programming, pages 3–19, Cleveland, October 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alan Borning .

Editor information

Michael Jampel Eugene Freuder Michael Maher

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Borning, A., Freeman-Benson, B., Wilson, M. (1996). Constraint hierarchies. In: Jampel, M., Freuder, E., Maher, M. (eds) Over-Constrained Systems. OCS 1995. Lecture Notes in Computer Science, vol 1106. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61479-6_17

Download citation

  • DOI: https://doi.org/10.1007/3-540-61479-6_17

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61479-1

  • Online ISBN: 978-3-540-68601-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics