Section: Scientific Foundations
Integration of Constraint Programming tools
Constraint Programming (CP) [51] focuses on iteratively reducing the variable domains (sets of feasible values) by applying logical and problem-specific operators. The latter propagate on selected variables the restrictions that are implied by the other variable domains through the relations between variables that are defined by the constraints of the problem. Combined with enumeration, it gives rise to exact optimization algorithms.
A CP approach is particularly effective for tightly constrained problems, feasibility problems and min-max problems (minimizing the maximum of several variable values). Mixed Integer Programming (MIP), on the other hand, is effective for loosely constrained problems and for problems with an objective function defined as the weigthed sum of variables. Many problems belong to the intersection of these two classes. For example, some scheduling and timetabling problems are tightly constrained and have a sum-type objective. For such problems, it is reasonable to use algorithms that exploit complementary strengths of Constraint Programming and Mixed Integer Programming.
The integration of MIP and CP methods is currently an important research direction in combinatorial optimization [100] , [123] . A wide variety of applications demonstrate the potential of such collaboration. Methods which combine MIP with CP have been successfully applied to scheduling [8] , [105] , [101] , transportation [76] , [81] , network design [102] , [151] and other problems.