Constraint Programming History
JeanFrancoisPuget 2700028FGP Visits (10396)
Paul Shaw and I were invited by John Poppelaars to give talks at the Back to School seminar of Dutch ORMS society.
Part of our presentation was a brief history of constraint programming. We drafted this slide to summarize it.
We certainly left out many important topics and CP systems, and we welcome any suggestions to improve it. You can use comments to this post for suggested changes and additions.
Before commenting about what we missed, please have a look at the full presentation as it will provide some context. Its abstract is reproduced below, and the slides are available here.
Background and Theory of Constraint Programming
This talk will review the principles and the historical roots of constraint programming (CP). Indeed, understanding the history behind this field helps understand the basic principles it is built on. CP can be traced back to a combination of Artificial Intelligence, Combinatorics (graph algorithms), and programming language design. It took two decades to unify these in a comprehensive and versatile framework shared by all modern CP tools and solvers. We'll review this framework and how it is implemented in recent tools. Last we will relate it and contrast it with mathematical programming.
I could not attend that conference unfortunately, and Paul presented, see the picture John posted on twitter :
Paul also presented a second topic which I recommend:
Practical Application of Constraint Programming Techniques
This talk will build on the previous one by presenting a number of techniques that are typically used by CP practitioners to solve problems more effectively. These techniques can be divided into two categories: those which can be applied when modeling the problem, and those which relate to the solving process. Both categories will be explored. Throughout the presentation we will use IBM's constraint programming solver, CP Optimizer, to illustrate how a user would either access or implement these techniques.
Paul's slides are available here
More generally, have a look at rece