Constraint Programming

Constraint programming is one of the fundamental methodologies for solving hard discrete optimization problems, which is particularly adapted to scheduling, routing, and timetabling problems. It can also be hybridized nicely with mathematical programming techniques, especially combinatorial Benders decomposition and branch & price & check. It has become a mature technology with excellent commercial and open-source solvers. The current focus of this research is the design and implementation of the MiniCP solver, which provides a small kernel for students to learn constraint-programming implementations.