FAQ | BOOK | SOLVERS | PLATFORMS | VENDORS | CALENDAR | MORE! | WHAT'S NEW
  EXTENSIONS | CHANGE LOG | REPORTS | NETLIB | EXAMPLES | CONTENTS | HOME


Solvers that
Work with AMPL



Solver Listing

Problem Analysis Tools

Hooking Your Own Solver



The following table summarizes availability of solvers for which interfaces to AMPL have been constructed, and provides links to additional information in the AMPL vendor listing and at the Web sites of individual companies.

Algorithm types listed in the table are distinguished by the problems they solve and the methods they use, as follows:

  • Linear (simplex): Linear objective and constraints, by some version of the simplex method.

  • Linear (interior): Linear objective and constraints, by some version of an interior (or barrier) method.

  • Network: Linear objective and network flow constraints, by some version of the network simplex method.

  • Quadratic: Convex or concave quadratic objective and linear constraints, by either a simplex-type or interior-type method.

  • Nonlinear: Continuous but not all-linear objective and constraints, by any of several methods including reduced gradient, quasi-newton, augmented lagrangian and interior-point. Unless other indication is given (see below), possibly optimal over only some local neighborhood.
    • Nonlinear convex: Nonlinear with an objective that is convex (if minimized) or concave (if maximized) and constraints that define a convex region. Guaranteed to be optimal over the entire feasible region.
    • Nonlinear global: Nonlinear but requiring a solution that is optimal over all points in the feasible region.

  • Complementarity: Linear or nonlinear as above, with additional complementarity conditions.

  • Integer linear: Linear objective and constraints and some or all integer-valued variables, by a branch-and-bound approach that applies a linear solver to successive subproblems.

  • Integer nonlinear: Continuous but not all-linear objective and constraints and some or all integer-valued variables, by a branch-and-bound approach that applies a nonlinear solver to successive subproblems.

Note that some solvers are packages that incorporate a range of optimization algorithms. These algorithms may be available individually; contact the vendor for details.

If your favorite solver does not appear here, we encourage you to explore the possibility of adding it to the list. See our discussion of hooking your solver to AMPL following the solver listing.


Solver listing

All of the solvers listed below can be used with AMPL. Send additions or corrections to info@ampl.com.

Algorithm Types. See above for definitions.

Vendor or Download Site. Sources of further information for obtaining the solver. This entry may be a link to a developer's or vendor's web site, or (where indicated) to a site from which the solver can be downloaded.

Driver Code. A link to a directory in netlib/ampl/solvers from which you can download C source code to make an AMPL driver for the solver. The driver provides an interface from AMPL's general description of an optimization problem to a solver's particular algorithms and options. Hence a different driver is needed for each solver. Some solvers are available bundled with the appropriate AMPL driver, while others require that you download and compile the driver yourself; details are available from the vendor or from the README file in the driver's netlib directory.

Documentation. The README files are text copied from the netlib/ampl/solvers directory mentioned above. The Using . . . booklets can be downloaded in PDF or postscript format.


Solver Algorithm Types Vendor or
Download Site
Driver Code Documentation
ACRS Nonlinear global Contact G. Liuzzi    
ALGENCAN Nonlinear See the TANGO site    
BLMVM Nonlinear
   bounded-variable
Download from the Toolkit for Advanced Optimization   directives table
Bonmin Integer nonlinear See the Bonmin homepage and
Getting Started with Bonmin
  Bonmin Users' Manual
BPMPD Linear (interior) Download from netlib/opt main.c README.bpmpd

directives table
CBC Linear (simplex)
Integer linear
See the CBC homepage   CBC User Guide

directives guide
CONDOR Nonlinear
   nondifferentiable
See the Kranf Site    
CONOPT Nonlinear Buy directly from us.
Write to
info@ampl.com for prices.
  README.conopt

Using CONOPT with AMPL
CPLEX Linear (simplex)
Linear (interior)
Network
Quadratic
Integer linear
Integer quadratic
Buy directly from us.
Write to
info@ampl.com for prices.
cplex.c README.1st README.cplex

IBM ILOG AMPL CPLEX 12.2 User's Guide
DONLP2 Nonlinear DONLP2 information page   README.donlp2

DONLP2 Users Guide and
directives table
FilMINT Integer nonlinear Contact authors of FilMINT slides and paper   Slides and Paper

FilMINT
directives tables
FILTER /
MINLP
Nonlinear
Integer nonlinear
Dundee solvers for MINLP/NLP/QP   FILTER and MINLP
directives tables
FortMP Linear (simplex)
Linear (interior)
Quadratic
Integer linear
Integer quadratic
OptiRisk Systems   directives table
FSQP Nonlinear AEM Design fsqp.c README.fsqp
Gecode Combinatorial
   using CP extensions
Download free from our Gecode page   directives table
Gurobi Linear (simplex)
Linear (interior)
Quadratic
Integer linear
Integer quadratic
Buy directly from us.
Write to
info@ampl.com for prices.
gurobi.c README.1st README.gurobi

AMPL-Gurobi 5.6 Guide
ILOG CP Combinatorial
   using CP extensions
Part of the CPLEX for AMPL package   directives table
IPOPT Nonlinear See the IPOPT homepage    
KNITRO Nonlinear Buy directly from us.
Write to
info@ampl.com for prices.
  directives table
LANCELOT Nonlinear Download from the LANCELOT site lancelot.c README.lancelot

directives table
L-BFGS-B Nonlinear
   bounded-variable
See the L-BFGS-B page   directives table
LGO Nonlinear global Contact Pintér Consulting Services   AMPL-LGO-readme.txt
LOQO Linear (interior)
Quadratic
Nonlinear
See the LOQO site for downloads and availability.   directives table
LP_SOLVE Linear (simplex)
Integer linear
See the  lpsolve homepage lpsolve files @SourceForge Using lp_solve
MINLP Integer nonlinear see entry for FILTER/MINLP    
MINOS Linear (simplex)
Nonlinear
Buy binaries directly from us.
Write to
info@ampl.com for prices.

Source code from Stanford Business Software
m551.c README.1st
README.minos

Using AMPL/MINOS
MINTO Linear (simplex)
Integer linear
MINTO at COR@L   directives table
MOSEK Linear (simplex)
Linear (interior)
Quadratic, nonlinear convex
Integer linear, integer quadratic
See the MOSEK homepage   directives table
NPSOL Nonlinear Source code from Stanford Business Software npsol.c README.npsol
NSIPS Nonlinear semi-infinite See the NSIPS homepage   directives table
OOQP Linear
Quadratic convex
See the OOQP homepage    
PATH Complementarity See the PATH homepage path.c README.path

directives table
PCx Linear (interior) NEOS Tools, Argonne National Laboratory    
PENNON Nonlinear See the PENNON homepage   User's Guide (version 1.3)
SNOPT Nonlinear Buy binaries directly from us.
Write to
info@ampl.com for prices.

Source code from Stanford Business Software
snopt.c README.snopt

directives table
SOPT Linear (simplex)
Quadratic
Nonlinear convex
Integer linear
SAITECH, Inc.    
TRON Nonlinear
   bounded-variable
See the TRON homepage   directives table
WSAT(OIP) Integer linear constraints Download from Joachim P. Walser    
XA Linear (simplex)
Integer linear
Sunset Software Technology    
XLSOL
LS-XLSOL
Linear (simplex)
Quadratic
Integer linear
Frontline Systems, Inc.    
Xpress Linear (simplex)
Linear (interior)
Quadratic
Integer linear
Integer quadratic
Buy directly from us.
Write to
info@ampl.com for prices.
xpress.c README.1st
README.xpress

directives table


Problem analysis tools

MProbe

MProbe is a tool for analyzing nonlinear functions to discern their shapes in a region of interest. MProbe is linked to AMPL, so that it may be used to analyze any nonlinear objective or constraint function written in the AMPL language.

Shape means whether the function is linear or almost linear, convex or almost convex, concave or almost concave, or concave and convex. Knowledge of function shape is crucial when developing nonlinear optimization models, or when selecting the nonlinear solver for a nonlinear optimization problem. Determining function shape is difficult for nonlinear functions having more than two variables. MProbe is specifically designed to operate on nonlinear functions having many variables.

MProbe 5.0 offers numerous new plotting options, sampling inside any convex enclosure (for improved accuracy of conclusions), and identification of redundant constraints and bounds.

MProbe has been developed by Prof. John Chinneck of Carleton University. A student/demo version bundled with the AMPL Student Edition is available for downloading through the web.


Hooking your own solver to AMPL

New solver hookups are encouraged though AMPL's use of freely available interface routines to support flexible and fully documented file formats for problems and results.

Detailed instructions and examples are available to help you (or your solver's developer) to write an AMPL driver. AMPL can then switch to your solver, set up its algorithmic options, send it a problem to be solved and retrieve the results, all in the same way that you work with currently supported solvers. See our instructions on hooking your solver to AMPL for further details.



Comments or questions?
Write to info@ampl.com or use our comment form.

Return to the AMPL home page.


LAST MODIFIED 4 FEBRUARY 2014 BY 4er.