AMPL works with a variety of large variety of solvers for optimization problems of many kinds. See our solver pages for details.
Yes. Once you have AMPL running, you add a solver by simply installing the AMPL-interfaced version of that solver on your system..
The procedure is equally simple if you already have a solver running, and want to later add AMPL to your system. You will need to obtain the AMPL-interfaced version of the solver, however, if your distribution did not come with it.
Generally there is no extra charge for the “link” between AMPL and solvers. In many cases the linking code is freely available.
Many solver options can be specified directly from AMPL. You don’t need to prepare separate “spec files” or run solvers outside the AMPL environment in order to get the benefits of these options.
Separate guides to solver directives are available online, from the solver developers, or both. See our solver listing for more information.
AMPL has a publicly documented interface that you can use to make your own link to any solver you are developing. The interface works through files; AMPL writes a problem file to be read by your solver, and your solver writes a solution file to be read back by AMPL. The file format has equivalent binary and ASCII versions. It offers the flexibility needed to support a wide variety of solvers, yet is designed to afford very efficient reading and writing.
The AMPL interface is described and illustrated in Hooking Your Solver to AMPL. You can also download standard interface routines (in C) for reading and writing the AMPL file formats, along with a variety of examples of complete AMPL/solver links; see our hooking page for details.