Solving Optimization Problems with AMPL and NEOS

Jorge Moré, Argonne National Laboratory

In the conventional approach to solving optimization problems, the user must first identify and obtain the appropriate piece of optimization software; write code to define the problem in the manner required; and then compile, link, and run the software. Typically, Fortran or C code must be written to define the problem, compute function values and derivatives, and specify sparsity patterns.

The Network-Enabled Optimization System (NEOS) Server at Argonne National Laboratory (ANL) provides a novel alternative to this process. NEOS allows users to solve optimization problems over the Internet with state-of-the-art software without downloading and linking code. Given the definition of a nonlinear optimization problem, NEOS determines an appropriate solver, uses automatic differentiation tools to compute derivatives and sparsity patterns, compiles all subroutines, links with the appropriate libraries, and executes the solver. The user is given a solution, along with runtime statistics. Most of the computation is done in the background, hidden from view.

Although problem-solving is greatly simplified with NEOS, the user still needs to define the problem in Fortran or C. For many problems, this can require considerable effort. To streamline the process, ANL researcher Jorge Moré, in cooperation with leading experts in optimization software, added a series of AMPL solvers to the NEOS system. AMPL is a comprehensive and powerful modeling language for optimization problems that simplifies the formulation of optimization problems. AMPL makes such problems easier to submit to NEOS. AMPL's flexibility and convenience make it suitable for rapid prototyping and model development, while its speed and control options make it an efficient choice for repeated production runs.

The following solvers can be used for AMPL-formatted optimization problems on the NEOS Server: DONLP2, LANCELOT, LOQO, MINOS, and SNOPT. Each solver has instructions on how to submit a problem using AMPL, as well as pointers to a user guide and a set of sample problems.

Using the service is simple. After the user submits a model in AMPL format, the model is specified by a model file, and optionally, a data file and command file. See for examples of models in AMPL format. For the AMPL-PRO interface, which allows users to submit a problem to all the solvers, see

Sample problems can be found at

Contributors to the development and installation of AMPL Solvers on the NEOS Server and the related web sites are as follows:

AMPL: David Gay, Bell Laboratories; and Bob Fourer, Northwestern University (

AMPL-PRO: Chih-Jen Lin, ANL and the University of Michigan (

DONLP2: Hans Mittelmann, Arizona State University; and Peter Spellucci, Technical University of Darmstadt, Germany (

LANCELOT: Nick Gould, Rutherford Appleton Laboratories, UK (

LOQO: Bob Vanderbei, Princeton University (

MINOS: Michael Saunders, Stanford University (

SNOPT: Philip Gill, University of California at San Diego (

For general information about the NEOS Server, including frequently asked questions, client software, submission tools, usage statistics, and collaborators, see

Other Issues of PCR Back to PCR CRPC Home Page