Creative Commons License First Edition, 1998



Some of my constraint related tutorials (with slides to download):

Now you can download a survey in the form of PDF file (146 KB) or PowerPoint presentation (404 KB)
Please use the following reference for the survey (I welcome if you inform me about your papers referring this document):
Constraint Programming: In Pursuit of the Holy Grail
Barták, R., in Proceedings of the Week of Doctoral Students (WDS99), Part IV, MatFyzPress, Prague, June 1999, pp. 555-564.

Here is a deep survey of constraint propagation techniques: paper or presentation
Please use the following reference for the survey:
Theory and Practice of Constraint Propagation
Barták, R., in Proceedings of the 3rd Workshop on Constraint Programming for Decision and Control (CPDC2001), Wydavnictvo Pracovni Komputerowej, Gliwice, Poland, June 2001, pp. 7-14.

Another presentation with survey of constraint programming techniques (including backjumping and backmarking).

Thanks to Galina Miklosic you can read part of the guide in Belorussian.

  „Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it."

Eugene C. Freuder, CONSTRAINTS, April 1997

Welcome to the On-Line Guide to CONSTRAINT PROGRAMMING designed and maintained by Roman Barták. I have opened this site as an on-line tutorial or, if you want, a textbook for beginners to the area of constraint programming. This area belongs to the less known software technologies but it rapidly evolves and brings a significant commercial interest.

The Web server and Internet connection for this site is kindly provided by Faculty of Mathematics and Physics, Charles University, Prague. I really appreciate all additional supporters.

If you want to know more about the author of the site, please visit my Home Page. Also, your comments, suggestions and corrections are highly welcomed.

If you are looking for changes and additions since your last visit, then go directly to page Additions and Corrections.



Constraint Satisfaction

Binarization of Constraints

Systematic Search Algorithms

Consistency Techniques

Constraint Propagation

Variable and Value Ordering

Reducing Search

Heuristics and Stochastic Algorithms

Benchmarking and Algorithm Analysis

Over-Constrained Problems

Extending CSP

Partial Constraint Satisfaction Problems

Constraint Hierarchies

Algorithms for Solving Constraint Hierarchies

Alternative and Generalized Approaches

Modeling and Solving Real-Life Problems

Frequently Asked Questions



Additions and Corrections


How to navigate through the site?

There is a navigation bar at the top and bottom of each page that can be used to navigate through pages. The navigation bar looks as follows:

to the contents (this page)

to the up level





to the previous section


to the subsequent section


PROLOG - the language of this site

To present algorithms within this site in a runable form, I choose the PROLOG programming language which is appropriate for representing search algorithms. This language is easy to understandand, however, if you are not familiar with PROLOG you can visit my Guide to Prolog Programming.

Tips: You can hide the Navigation and Location Toolbars in your browser to enlarge the visible area. You will not need these gadgets to navigate through this guide. Do not forget to bookmark this page for easy future access.

The address of this site is

Designed and maintained by Roman Barták

WebArchiv - archiv českého webu