AMPL > >Products > >Solvers


Whereas AMPL creates optimization problems from models and data, and retrieves results for analysis, solvers are the number-crunching algorithms that compute optimal solutions.

The AMPL product does not incorporate solvers, but rather provides interfaces to all of the best products of competing solver developers.  Thus to apply AMPL in your work, you will need to obtain at least one solver having an AMPL interface.  Several options are available for acquiring solvers to be used with AMPL:

  • Buy solvers directly from us.  To provide the fastest run times and greatest reliability, we offer a selection of top commercial solvers interfaced to AMPL.  We provide the same high level of licensing and technical support for these solvers as for the core AMPL product.

  • Download open-source solvers.  AMPL interfaces are included with a number of popular solvers distributed under open-source licenses.  We provide links to pre-compiled executables so that you can set up these free solvers quickly for use with AMPL.

  • Acquire solvers directly from developers.  Our full list of AMPL-interfaced solvers includes a variety of alternatives that may meet your needs.

Each solver is designed for optimization problems of certain kinds, as indicated in our solver detail pages linked above.  Thus when you determine the form of your optimization problem — for example linear or nonlinear, continuous or discrete — you will also narrow down the list of appropriate solvers.   We recommend that you then test alternative solvers to determine which offers the best tradeoff of price and performance for your needs.  

Although many solvers rely on common overall approaches to optimization, each individual solver’s design is based on its own complex mix of algorithmic ideas and implementation strategies.  Thus solver performance cannot readily be predicted from problem size or other simple measures.  Rather, solve times and memory requirements are best evaluated through benchmark tests on problems typical of your application.