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 convex: Convex or concave but not all-linear objective, with linear (and possibly certain nonlinear) constraints, by an 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.

  • 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
BPMPD Linear (interior) Download from netlib/opt main.c README.bpmpd
CONOPT Nonlinear ARKI Consulting & Development A/S
CPLEX Linear (simplex)
Linear (interior)
Network
Quadratic
Integer linear
Integer quadratic
ILOG, Inc.

Download student edition from netlib/ampl
cplex.c README.1st README.cplex

AMPL/CPLEX 8.0 User's Guide
DONLP2 Nonlinear Download from the DONLP2 ftp site README.donlp2

DONLP2 short users guide
FortMP Linear (simplex)
Linear (interior)
Quadratic
Integer linear
Integer quadratic
OptiRisk Systems

FSQP Nonlinear AEM Design fsqp.c README.fsqp
GRG2
LSGRG
Nonlinear
Integer nonlinear
Frontline Systems, Inc.
IPOPT Nonlinear See the IPOPT homepage
KNITRO Nonlinear See the KNITRO homepage
LAMPS Linear (simplex)
Integer linear
Advanced Mathematical Software
LANCELOT Nonlinear Download from the LANCELOT site lancelot.c README.lancelot
LOQO Linear (interior)
Quadratic
Nonlinear
R.J. Vanderbei, Princeton Univ: LOQO homepage
LP_SOLVE Linear (simplex)
Integer linear
Download from
Michel Berkelaar
lpsolve.c README.lpsolve
MINOS Linear (simplex)
Nonlinear
Stanford Business Software, Inc.
(see also SOL Optimization Software)
m55.c README.1st
README.minos

Using AMPL/MINOS
MOSEK Linear (simplex)
Linear (interior)
Quadratic, nonlinear convex
Integer linear, integer quadratic
See the MOSEK homepage
NPSOL Nonlinear Stanford Business Software, Inc.
(see also SOL Optimization Software)
npsol.c README.npsol
OSL Linear (simplex)
Linear (interior)
Network
Quadratic
Integer linear
Optimal Solution Technologies or IBM Corporation osl.c README.1st
README.osl

Using AMPL/OSL (version 1.2)
PATH Complementarity CPNET, Computer Sciences Dept, Univ of Wisconsin path.c README.path
PCx Linear (interior) NEOS Tools, Argonne National Laboratory
SNOPT Nonlinear Stanford Business Software, Inc.
(see also SOL Optimization Software)
snopt.c README.snopt
SOPT Linear (simplex)
Quadratic
Nonlinear convex
Integer linear
SAITECH, Inc.
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
Dash Optimization


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 3.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 5 APRIL 2003 BY 4er.