Adaptive Constraint Handling with CHR in Java

  • Armin Wolf
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2239)


The most advanced implementation of adaptive constraint processing with Constraint Handling Rules (CHR) is introduced in the imperative object-oriented programming language Java. The presented Java implementation consists of a compiler and a run-time system, all implemented in Java. The run-time system implements data structures like sparse bit vectors, logical variables and terms as well as an adaptive unification and an adaptive entailment algorithm. Approved technologies like attributed variables for constraint storage and retrieval as well as code generation for each head constraint are used. Also implemented are theoretically sound algorithms for adapting of rule derivations and constraint stores after arbitrary constraint deletions. The presentation is rounded off with some novel applications of CHR in constraint processing: simulated annealing for the n queens problem and intelligent backtracking for some SAT benchmark problems.


Operational Semantic Active Constraint Runtime System Java Code Constraint Handling 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Slim Abdennadher. Operational semantics and confluence of Constraint Handling Rules. In Proceedings of the Third International Conference on Principles and Practice of Constraint Programming-CP97, number 1330 in Lecture Notes in Computer Science. Springer Verlag, 1997.Google Scholar
  2. 2.
    Ken Arnold, James Gosling, and David Holmes. The Java Programming Language, Third Edition. Addison-Wesley, June 2000.Google Scholar
  3. 3.
    Andy Hon Wai C. Constraint programming in Java with JSolver. In Proceedings of PACLP99, The Practical Application of Constraint Technologies and Logic Programming, London, April 1999.Google Scholar
  4. 4.
    David Flanagan. Java Foundation Classes in a Nutshell. O'Reilly, September 1999.Google Scholar
  5. 5.
    David Flanagan. Java in a Nutshell. O'Reilly, 3rd edition, November 1999.Google Scholar
  6. 6.
    Thom Frühwirth. Constraint Handling Rules. In Andreas Podelski, editor, Constraint Programming: Basics and Trends, number 910 in Lecture Notes in Computer Science, pages 90–107. Springer Verlag, March 1995.Google Scholar
  7. 7.
    Thom Frühwirth. Theory and practice of Constraint Handling Rules. The Journal of Logic Programming, 37:95–138, 1998.zbMATHCrossRefGoogle Scholar
  8. 8.
    Thom Frühwirth and Pascal Brisset. High-Level Implementations of Constraint Handling Rules. Technical report, ECRC, 1995.Google Scholar
  9. 9.
    Matthew L. Ginsberg. Dynamic backtracking. Journal of Artificial Intelligence Research, 1:25–46, 1993.zbMATHGoogle Scholar
  10. 10.
    Christian Holzbaur. Specification of Constraint Based Inference Mechanism through Extended Unification. PhD thesis, Dept. of Medical Cybernetics & AI, University of Vienna, 1990.Google Scholar
  11. 11.
    Christian Holzbaur and Thom Frühwirth. A Prolog Constraint Handling Rules compiler and runtime system. Applied Artificial Intelligence, 14(4):369–388, April 2000.CrossRefGoogle Scholar
  12. 12.
    K. Iwama, E. Miyano, and Y. Asahiro. Random generation of test instances with controlled attributes. In Cliques, Coloring, and Satisfiability, volume 26 of DIMACS Series in Discrete Mathematics and Theoretical Computer Science, pages 377–394. American Mathematical Society, 1996.Google Scholar
  13. 13.
    Kim Marriott and Peter J. Stuckey. Programming with Constraints: An Introduction. The MIT Press, 1998.Google Scholar
  14. 14.
    Matthias Schmauss. An implementation of CHR in Java. Master’s thesis, Ludwig Maximilians Universität München, Institut für Informatik, May 1999.Google Scholar
  15. 15.
    Marc Torrens, Rainer Weigel, and Baoi Faltings. Java constraint library: Bringing constraint technology on the internet using java. In Proceedings of the CP-97 Workshop on Constraint Reasoning on the Internet, November 1997.Google Scholar
  16. 16.
    Armin Wolf. Adaptive entailment of equations over rational trees. In Proceedings of the 13th Workshop on Logic Programming, WLP’98, Technical Report 1843-1998-10, pages 25–33. Vienna University of Technology, October 1998.Google Scholar
  17. 17.
    Armin Wolf. Adaptive solving of equations over rational trees. In Proceedings of the Fourth International Conference on Principles and Practice on Constraint Programming, CP’98, Poster Session, number 1520 in Lecture Notes in Computer Science, page 475. Springer, 1998.Google Scholar
  18. 18.
    Armin Wolf. Adaptive Constraintverarbeitung mit Constraint-Handling-Rules-Ein allgemeiner Ansatz zur Lösung dynamischer Constraint-Probleme, volume 219 of Disserationen zur Künstlichen Intelligenz (DISKI). infix, November 1999.Google Scholar
  19. 19.
    Armin Wolf, Thomas Gruenhagen, and Ulrich Geske. On incremental adaptation of CHR derivations. Applied Artificial Intelligence, 14(4):389–416, April 2000.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Armin Wolf
    • 1
  1. 1.Institute for Computer Architecture and Software Technology (FIRST)Fraunhofer GesellschaftBerlinGermany

Personalised recommendations