New AMPL-Gurobi Solver Interface

Project: Research

Project Details

Project Description

The goal of this project is to create new MIP solver drivers to replace the ones currently used with AMPL. The new drivers will have a broader range of capabilities and also a more modern design that facilitates maintenance and is ready to accommodate further enhancements.



This phase will be carried out in collaboration with software developers at AMPL Optimization Inc. The work will be organized in three parts, as described below. It is anticipated that part 1 will be completed in this phase, and that aspects of parts 2 and 3 will be undertaken as time permits.



1. Building on the AMPL-solver interface framework designed in the first phase of this project, the present phase will implement a new solver driver for Gurobi to replace the current one. The new driver will maintain all current functionality, and will support all currently documented Gurobi features capable of being used from AMPL. Major current features to be supported will include:


Quadratic expressions
Alternative MIP solutions
Multiple objectives
Piecewise-linear terms
Irreducible infeasible subsets (iisfind)
Feasibility relaxation problems (feasrelax)
Warm starts
Input and output through user-defined and solver-defined suffixes
Indicator constraints


Also the following Gurobi features will be supported through detection of relevant structures and transformation to the forms that Gurobi requires:


Semi-continuous and semi-integer variables
Gurobi “general constraints” including min, max, abs, and, or
Nonlinear functions including polynomial, exponential, log, power, sine, cosine, tangent


All options currently recognized in AMPL’s gurobi_options strings will continue to be supported.



2. The basic Gurobi interface will be extended to support a variety of transformations to linear (or quadratic) problems. The forms to be supported may include:


Certain quadratic functions
Special piecewise-linear functions: min, max, abs
Logical operators: and, or, not, ==>, forall, atmost, alldiff, etc.
Univariate nonlinear functions: powers, logs, trig functions (via approximation)
Second-order cone representable functions


In cases where Gurobi is able to handle a form directly, transformation will be offered as an option in the new Gurobi driver.


3. The implementation developed for Gurobi will be adapted to support other solvers based on mixed-integer linear and quadratic programming. Drivers for CPLEX and Xpress will be implemented first, followed by drivers for other commonly used solvers such as CBC, MOSEK, and SCIP.
Short titleAMPL-Gurobi Interface
AcronymAMPL 2
StatusActive
Effective start/end date1/03/2131/08/21

Funding

  • AMPL Optimization Inc.: AUD44,726.00