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

Mike O'Sullivan
Dept of Engineering Science,
Auckland University, New Zealand


Wednesday, Feb 16, 2011
4:30 - 5:30 PM
Y2E2 101

Abstract:

The development of mathematical modeling languages such as AMPL, GAMS, Xpress-MP and OPL Studio have made it easier to formulate mathematical models such as linear, mixed-integer, and nonlinear programs for solution in solvers such as CPLEX, Gurobi, and SNOPT. However, some models cannot be solved using black-box solvers, so advanced techniques need to be added to the solver framework.

Many solvers, including CPLEX, Symphony and DIP, provide callback functions to enable users to customize the overall solution framework. However, this approach involves either expressing the mathematical formulation in a low-level language such as C++ or Java, or implementing a complicated indexing scheme to track formulation components such as variables and constraints between the modeling language and the solver's callback framework.

In this talk I will present Dippy, a combination of the Python mathematical modeling language PuLP and the open source solver DIP. Using Dippy, users can express their model in a straightforward modeling language and use callback functions to access the PuLP model directly. We discuss the link between PuLP and DIP and give examples of advanced solving techniques expressed simply in Dippy.







Operations Research Colloquia: http://or.stanford.edu/oras_seminars.html