Improved Linearization of Constraint Programming Models
Constraint Programming (CP) standardizes many specialized “global constraints” allowing high-level modelling of combinatorial optimization and feasibility problems. Current Mixed-Integer Linear Programming (MIP) technology lacks both a modelling language and a solving mechanism based on high-level constraints.
MiniZinc is a solver-independent CP modelling language. The solver interface works by translating a MiniZinc model into the simpler language FlatZinc. A specific solver can provide its own redefinition library of MiniZinc constraints.
This paper describes improvements to the redefinitions for MIP solvers and to the compiler front-end. We discuss known and new translation methods, in particular we introduce a coordinated decomposition for domain constraints. The redefinition library is tested on the benchmarks of the MiniZinc Challenges 2012–2015. Experiments show that the two solving paradigms have rather diverse sets of strengths and weaknesses. We believe this is an important step for modelling languages. It illustrates that the high-level approach of recognizing and naming combinatorial substructure and using this to define a model, common to CP modellers, is equally applicable to those wishing to use MIP solving technology. It also makes the goal of solver-independent modelling one step closer. At least for prototyping, the new front-end frees the modeller from considering the solving technology, extracting very good performance from MIP solvers for high-level CP-style MiniZinc models.
KeywordsCombinatorial optimization High-level modelling Automatic reformulation Linear decomposition Context-aware reformulation
- 1.A list of constraint languages (2016). http://www.csplib.org/Languages/
- 5.Chu, G.: Improving combinatorial optimization - extended abstract. In: Proceedings of the 23rd International Joint Conference on Artificial Intelligence IJCAI 2013, Beijing, China, pp. 3116–3120 (2013)Google Scholar
- 6.Chu, G.: Constraint Programming solver Chuffed (2016). https://github.com/geoffchu/chuffed. Accessed 16 Mar 2016
- 11.Gurobi Optimization, Inc. Gurobi Optimizer Reference Manual Version 6.5. Houston, Texas: Gurobi Optimization (2016)Google Scholar
- 14.IBM Software. IBM ILOG CPLEX optimizer. Data sheet, IBM Corporation (2014)Google Scholar
- 15.Koch, T.: Rapid mathematical prototyping. Ph.d. thesis, Technische Universität Berlin (2004)Google Scholar
- 16.Leo, K., Tack, G.: Multi-pass high-level presolving. In: International Joint Conference on Artificial Intelligence (IJCAI) (2015)Google Scholar
- 17.Linderoth, J., Ralphs, T.: Noncommercial software for mixed-integer linear programming. Technical report, Lehigh University (2004)Google Scholar
- 22.Opturion Pty Ltd. Opturion CPX user’s guide: version 1.0.2 (2013)Google Scholar