Tech Report CS-00-07

OPL++: A Modeling Layer for Constraint Programming Libraries

Laurent Michel and Pascal Van Hentenryck

December 2000


Mathematical modeling and constraint programming languages have orthogonal strengths in stating combinatorial optimization problems. Modeling languages typically feature high-level set and algebraic notations, while constraint programming languages provide a rich constraint language and the ability to specify search procedures. This paper shows that many of the functionalities typically found in modeling languages can be integrated elegantly in constraint programming libraries without defining a specific language or preprocessor. In particular, it presents the design of OPL++, a C++ modeling layer for constraint programming that combines the salient features of both approaches. Of particular interest is the one-to-one correspondance between high-level models and OPL++ statements and the negligible overhead induced by the extensions.

(complete text in pdf or gzipped postscript)