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