Optimization Online


Dippy -- a simplified interface for advanced mixed-integer programming

Michael O'Sullivan (michael.osullivan***at***auckland.ac.nz)
Cameron Walker (cameron.walker***at***auckland.ac.nz)
Qi-Shan Lim (qishan***at***gmail.com)
Iain Dunning (iaindunning***at***gmail.com)
Stuart Mitchell (stu***at***stuartmitchell.com)

Abstract: Mathematical modelling languages such as AMPL, GAMS, and Xpress-MP enable mathematical models such as mixed-integer linear programmes (MILPs) to be expressed clearly for solution in solvers such as CPLEX, MINOS and Gurobi. However some models are sufficiently difficult that they cannot be solved using “out-of-the-box” solvers, and customisation of the solver framework to exploit model-specific structure is required. Many solvers, including CPLEX, Symphony and DIP, enable this customisation by providing “callback functions” that are called at key steps in the solution of a model. This approach traditionally involves either expressing the mathematical formulation in a low-level language such as C++ or Java, or implementing a complicated indexing scheme to be able to track model components such as variables and constraints between the mathematical modelling language and the solver’s callback framework. In this paper we present Dippy, a combination of the Python-based mathematical modelling language PuLP and the open source solver DIP. Dippy provides the power of callback functions, but without sacrificing the usability and flexibility of modelling languages. We discuss the link between PuLP and DIP and give examples of how advanced solving techniques can be expressed concisely and intuitively in Dippy.

Keywords: mixed integer linear programming; branch, price and cut; modelling language

Category 1: Combinatorial Optimization (Branch and Cut Algorithms )

Category 2: Integer Programming ((Mixed) Integer Linear Programming )

Category 3: Optimization Software and Modeling Systems (Modeling Languages and Systems )

Citation: Report 685, University of Auckland Faculty of Engineering, Auckland, New Zealand, February 2011

Download: [PDF]

Entry Submitted: 02/13/2011
Entry Accepted: 02/14/2011
Entry Last Modified: 01/25/2012

Modify/Update this entry

  Visitors Authors More about us Links
  Subscribe, Unsubscribe
Digest Archive
Search, Browse the Repository


Coordinator's Board
Classification Scheme
Give us feedback
Optimization Journals, Sites, Societies
Mathematical Optimization Society