Twenty Years of Constraint Programming (CP) Research
- 369 Downloads
Around twenty years ago, the research community working on constraint satisfaction, optimization and contraint programming was moving the first steps toward a more organized structure. Indeed the first events on the subject, often colocated with major AI conferences, date back to almost thirty years ago. In 1995, after a successful series of two workshops on the subject (PPCP’93 and PPCP’94), the first Conference on Principles and Practice of Constraint Programming was organized in Cassis. One year later, the first number of the Constraints Journal was issued. The Editor in Chief was Eugene Freuder, whose paper opens this special issue with a very clear and lucid analysis on the advances obtained in twenty years of research and on open research perspectives.
Constraint programming has its roots in the Artificial Intelligence area of constraint satisfaction, but along the years many cross-fertilizations with related disciplines have been studied. Logic programming is the first obvious intersection, as the first constraint languages were based on logic. The integration of operations research techniques in constraint programming has been extremely successful, as wittnessed by the long series of CPAIOR conferences. Problem solving in the precence of uncertainty has received a lot of attention in the last decade resulting in stochastic constraint languages. Techniques based on SAT have been succesfully integrated into constraint programming solvers and obtained state of the art results in many combinatorial problems. More recently also machine learning has been succesfully integrated in CP to ease the modeling activity, to acquire constraints and to exploit existing solutions of similar problems.
These cross-fertilizations have been made possible thanks to CP flexibility, one of the main features of constraint programming languages. Constraint programming global constraints are in fact, a very powerful modeling tool, but also enable the embedding of sophisticated algorithms inherited by other disciplines.
Much needs to be done to improve some aspects of CP. Usability of constraint programming languages for non CP experts is a crucial point for fostering the wide adoption of CP in industry. The holy grail cited by Eugene Freuder in the first paper of the issue is indeed the possibility of stating the problem in a human understandable way and let the computer find a solution.
Explainability is another foundamental aspect still to be fully covered by the CP research community. Since constraint programming languages enable the creation of decision support systems, domain experts using CP have to understand why a specific solution is consistent, why a given solution is considered as optimal and why there is no solution to an overconstrained problem.
This special issue celebrates the 20 t h anniversary of the Constraints Journal by providing some perspectives on what has been achieved in these 20 years and what remains to be done.
1 Content of this issue
The current issue contains four papers: one is an analysis of what has been achieved in twenty years of research and on open issues, the second paper concerns the integration of operations research in CP and the third the modeling of uncertainty. The last paper discusses about scheduling, one of the most successful applications of CP to date.
1.1 Progress towards the holy grail
The opening paper of the special issue has been written by the first Editor in Chief of the Constraints Journal. Twenty years ago, he wrote a paper entitled In Pursuit of the Holy Grail where he set autonomous modeling and solving as a strategic goal for constraint programming. In this paper, the author outlines what has been obtained toward this goal and what remains to do. He covers important aspects as user interaction to enable humans to collaborate with constraint solvers, and automation, replacing the need for human intervention. The paper focusses on these issues along three lines: acquisition, solving and explanation and the progress toward their integration in automated consultants.
1.2 Constraint programming and operations research
The second paper, written by John Hooker and Willem Jan van Hoeve, discusses the successful integration between constraint programming and operations research. They cover basically four different integration directions. The first is the combination of relaxations from OR with propagation from CP thus merging feasibility filtering for pruning infeasible values and relaxation enable filtering for pruning sub-optimal trees. The second topic concerns the use of methods from operations research to improve filtering in constraint programming global constraints. The third research direction covers the use of decomposition methods to enable partitioning the problem into subproblems that can be more suitably solved either through OR or CP. Finally the paper discusses the application of constraint propagation to dynamic programming models. Open perspectives on future research on hybrid CP/OR methods are covered in the concluding discussion.
1.3 Modeling uncertainties with chance constraints
This paper, written by Imen Zghidi, Brahim Hnich and Adbelwahab Rebaii, covers the modeling of uncertainty in constraint programming. In particular it refers to a specific modeling component: the chance constraint. The paper provides an overview of Stochastic Constraint Satisfaction Problems and the modeling requirements needed to face them: decision and random variables, stochastic constraints, single chance constraints, joint chance constraints and stages. Then different methods for propagating chance constraints are proposed and a discussion closes the paper providing insights on aspects that have not been properly addressed yet in the literature.
1.4 IBM ILOG CP optimizer for scheduling
The fourth paper of the issue, written by Philippe Laborie, Jerome Rogerie, Paul Shaw and Petr Vilim, is about scheduling, i.e., one of the most successful application areas of constraint programming. The paper starts with describing the main application domains where scheduling problems arise, and then covers the extentions to the classical CP framework by introducing a few new types of decision variables, expressions and constraints for scheduling. Four complete examples are provided using the previously presented modeling tools. Search is then covered along with details on the solution engine. Finally a section on easing the modeling activity of scheduling is provided.
We would like to thank all authors for sharing their interesting views and possibly help the community to grow.