Modeling overview and implemented solvers#
AMPL’s newly extended C++ solver interface library, MP, is publicly available in the ampl/mp repository. Solver interfaces built with MP are able to handle a significantly expanded range of model expressions. Currently available MP-based solvers include:
gurobi, an interface to the Gurobi solver
cplex, an interface to the IBM ILOG CPLEX solver
copt, an interface to Cardinal Optimizer
xpress, an interface to FICO Xpress
mosek, an interface to the MOSEK solver
baronmp, an interface to the BARON solver
highs, an interface to the open-source HiGHS solver
cuopt, an interface to the open-source NVIDIA cuOpt solver
cbc, an enhanced interface to the open-source CBC solver
scip, an interface to the open-source SCIP solver
gcg, an interface to the open-source GCG solver
A meta-solver MP2NL translating MP to any AMPL solver.
Binaries for these solvers can be downloaded, in distribution bundles and individually, through the AMPL Portal. Solver options and features are described at Feature guide for MP-based AMPL solvers and, for concrete solvers, at AMPL Development.
The expanded MP solver interface library offers new support for the following categories of operators and expressions:
Conditional operators:
if-then-else;==>,<==,<==>Logical operators:
or,and,not;exists,forallPiecewise linear functions:
abs;min,max;<<breakpoints; slopes>>Counting operators:
count;atmost,atleast,exactly;numberofRelational and comparison operators:
>(=),<(=),(!)=;alldiffComplementarity operator:
complementsNonlinear operators and functions:
*,/,^;exp,log;sin,cos,tan;sinh,cosh,tanhSet membership operator:
in
Modeling details and examples are given in the Expressions supported section below. Technical details, configuration settings, and tools are in the Tools & details section. See also the individual solvers’ documentation at AMPL Development for more details of solver-specific features:
Choice between linearization in the interface and native solver support for some operations
Handling of AMPL suffixes on constraints that are transformed by the interface
The slides from our presentation on Advances in Model-Based Optimization provide overview of the MP interface library in the context of AMPL applications, including comments on implementation and efficiency issues.