Similarly, performance debugging and monitoring tools would alleviate this problem by helping users build their own intuitions. Constraint programs are not incremental. Most of the time they are used to produce, in an offline manner, a plan or a resource allocation that is then executed. However, machines break down, planes are delayed, new orders come at the worst possible time. Upgrading an offline solution in a reasonable fashion and in a reasonable time to absorb unexpected events is a fundamental challenge for the constraint community.
Constraint propagation is too local.
However, it is clear that constraint programming should have the ability to manipulate subsets of constraints globally, and recent work in CHIP, Ilog Solver, and Newton has shown how beneficial global constraints can be. In addition, it is surprising to see that these global constraints can often be given a semantics as instances of general-purpose consistency conditions, making their integration in the languages natural. The main challenge here is probably to find or identify innovative ways to combine constraints to produce efficient pruning techniques. Cooperation between solvers is still primitive. There is a strong need for new theoretical and experimental results on cooperation between independent solvers.