
Send AMPL files
over the net
for execution by the NEOS server
Try AMPL
on small problems
using our website's simple interface
|
Remote solvers available
Local AMPL with remote solvers: the Kestrel client Remote AMPL with remote solvers
More about the NEOS Server |
AMPL and the
NEOS Server
To simplify the work of comparing and testing solvers, we have undertaken to make AMPL and solver resources available over the Internet, in collaboration with the NEOS Server project of the Argonne/Northwestern Optimization Technology Center. AMPL users can interact with the NEOS server in either of two ways: These services are available free of charge to anyone who has the requisite Internet connections. They are intended mainly for testing, prototyping, and instructional purposes, however; there is no guarantee as to the schedule or volume of computing resources to be made available. |
Remote solvers availableThe following solvers are currently available for use through the indicated AMPL Remote Access interfaces. Solvers marked limited can accept AMPL model and data files for remote processing at the NEOS Server, but do not allow for AMPL command files.For more information, follow the links from the solver names to their entries in the NEOS Optimization Software Guide. |
| Solver | Problem Type | Kestrel: Local AMPL, Remote solvers |
NEOS Server: Remote AMPL, Remote solvers |
Try AMPL: Simple web interface |
| BLMVM | bound-constrained optimization | yes | yes | -- |
| BonsaiG | integer linear programming | -- | limited | -- |
| BPMPD | linear programming | yes | yes | yes |
| DFO | nondifferentiable nonlinear optimization | -- | limited | -- |
| DONLP2 | nonlinearly constrained optimization | yes | yes | yes |
| FILTER | nonlinearly constrained optimization | yes | yes | -- |
| FortMP | linear programming, integer linear programming |
yes | yes | -- |
| GLPK | integer linear programming | -- | limited | -- |
| KNITRO | nonlinearly constrained optimization | yes | yes | -- |
| LANCELOT | nonlinearly constrained optimization | yes | yes | yes |
| L-BFGS-B | bound-constrained optimization | yes | yes | yes |
| Solver | Problem Type | Kestrel: Local AMPL, Remote solvers |
NEOS Server: Remote AMPL, Remote solvers |
Try AMPL: Simple web interface |
| LMQNBC | bound-constrained optimization | -- | -- | yes |
| LOQO | linear programming, nonlinearly constrained optimization |
yes | yes | yes |
| lp_solve | integer linear programming | -- | -- | yes |
| MINLP | integer nonlinear programming | yes | yes | -- |
| MINOS | linear programming, nonlinearly constrained optimization |
yes | yes | yes |
| MOSEK | linear programming, nonlinearly constrained optimization |
yes | yes | -- |
| NDA | nondifferentiable nonlinear optimization | -- | limited | -- |
| PATH | complementarity problems | yes | yes | yes |
| PATHNLP | nonlinearly constrained optimization | yes | -- | -- |
| PCx | linear programming | -- | yes | -- |
| SNOPT | nonlinearly constrained optimization | yes | yes | yes |
| TRON | bound-constrained optimization | yes | yes | -- |
| XPRESS-MP | linear programming, integer linear programming |
-- | yes | -- |
|
Additional solvers are to be provided. If you want to add a solver to
those currently available through the NEOS Server, contact the Server
administrators by writing to neos-comments@mcs.anl.gov.
The introduction below covers everything you need to know to start using Kestrel with AMPL. Information about more advanced features and other uses of Kestrel can be found in The Kestrel Interface to the NEOS Server.
Downloading and installing the Kestrel clientTo get started using this feature, you must obtain the free Kestrel program. Currently Kestrel is available for downloading in the form of executables for the following environments:
For Linux or Solaris, you'll get a compressed archive file kestrel.tar.gz. Uncompress and unpack the archive by entering the following Unix commands: gunzip kestrel.tar.gz tar xvf kestrel.tarThen place the resulting executable file -- the one named kestrel -- somewhere in your search path, such as in the same directory as the AMPL program. For Windows, you'll get a compressed archive file kestrel.zip, which should be uncompressed and unpacked by use of "unzip" or another "expander" utility. The resulting executable file kestrel.exe should be placed somewhere in your search path, such as in the same folder as ampl.exe. In either case, you'll find that unpacking the archive also gives you three small text files: kestrelsub, kestrelret, and kestrelkill. These are short AMPL scripts that you can ignore at first; they can be convenient for managing Kestrel runs in some circumstances.
Selecting and running a solver with the Kestrel clientThe Kestrel client program works like a special kind of solver. Once you have installed the Kestrel executable, you tell AMPL to use Kestrel by setting the option solver to kestrel. You then set the option kestrel_options to indicate which remote solver you want to access through Kestrel. Directives for the chosen solver are specified in the usual way through an option having a name of the form solvername_options.As an example, here is how you might invoke Kestrel from a local AMPL session, using BPMPD as your remote solver: ampl: model steelT.mod; ampl: data steelT.dat; ampl: option solver kestrel; ampl: option kestrel_options 'solver=bpmpd'; ampl: option bpmpd_options 'ordering=3 outlev=1'; ampl: solve;After Kestrel is invoked by solve, it establishes communication with the NEOS Server and sends the AMPL problem file. The NEOS Server's successful receipt of the problem file is indicated by messages like these: |
Job has been submitted to Kestrel Kestrel/NEOS Job number : 6893 Kestrel/NEOS Job password : FaahsrIh Check the following URL for progress report : http://www-neos.mcs.anl.gov/neos/testneos/cgi-bin/check-status.cgi?job=6893&pass=FaahsrIh
The job number, password, and URL have several uses in retrieving the
results, as we'll explain in a moment, but in the simplest mode of
operation Kestrel simply waits at this point for the NEOS Server to
send back the solver's results. Kestrel then displays all of the
output produced by the solver in the course of solving your problem:
BPMPD 2.11: ordering=3
outlev=1
Process: presolv
Presolv done...
<< more output omitted >>
Stopping criterion : Small infeasibility and duality gap
ABSOLUTE infeas. Primal : 8.0026E-11 Dual : 1.8651746814E-14
PRIMAL : Relative infeas. : 2.4069E-14 Objective : -5.1503299999E+05
DUAL : Relative infeas. : 1.2473E-16 Objective : -5.1503300001E+05
Complementarity gap : 4.5924E-14 Duality gap : -3.6320538845E-11
Solver time 0.00 sec.
Finished call
Kestrel then disconnects from the NEOS Server and terminates its
execution. Finally, the solve command completes its work by
reading the solution file and displaying its usual solution summary:
BPMPD 2.11: Optimal solution found, objective 515033 7 iterations, 13 corrections (1.86 per iter.) ampl:That's it! You are returned to the ampl: prompt and can proceed to display or manipulate the solution or to do anything else that you would have done if the problem had been solved by a local copy of BPMPD. Subsequent uses of the solve command will continue to invoke a remote solver, until you change the option solver or conclude the AMPL session. In general, you choose a remote solver through your setting of the AMPL option kestrel_options. The form of the AMPL command for this purpose is
option kestrel_options 'solver=solvername';
The following choices for solvername are currently
recognized:
option bpmpd_options 'ordering=3 outlev=1';
For information on directives recognized by the available solvers,
follow the links from their names in the listing above.
Viewing output and resultsTo look at the solver's output while it is running, point your browser at the URL given in the Kestrel output as shown above, and click on "View Intermediate Results" in the web page that appears. This will take you to another page that shows all of the output produced by the solver for your problem so far. To track the solver's progress, simply update this page periodically.To retrieve results from a previous Kestrel run, first set up the same AMPL model and data that you used when submitting your problem. Then set kestrel_options to specify the job number and password that Kestrel reported when it processed the job. For the example above, the appropriate AMPL commands would be as follows: ampl: model steelT.mod; ampl: data steelT.dat; ampl: option solver kestrel; ampl: option kestrel_options 'job=6893 password=FaahsrIh'; ampl: solve;Following the solve, Kestrel contacts the NEOS Server to retrieve the results from the specified job. The display of the solver output and the return of the results to AMPL then proceed exactly as previously described. This feature enables you to retrieve results for any problem that has been successfully sent from Kestrel to the NEOS Server, even if Kestrel and AMPL have been terminated before results can be received. The NEOS Server only keeps previous results for a short time, however -- typically a day -- so this feature is not appropriate for archiving of runs.
Managing Kestrel runsTo submit multiple optimization runs and then retrieve them in the order that they were submitted, use the AMPL scripts kestrelsub and kestrelret that are unpacked along with the Kestrel executable. Detailed intructions are given in The Kestrel Interface to the NEOS Server. This feature should be used with care, so as not to overload the Server resources.To cancel an optimization run before the solver has completed execution, set option kestrel_options to specify the appropriate job number and password, and then run the AMPL script kestrelkill. For example: ampl: option kestrel_options 'job=6893 password=FaahsrIh'; ampl: commands kestrelkill;To insure that AMPL will find the script, place the file kestrelkill in the directory (or folder) that will be current when you execute AMPL, or set option ampl_include to specify the directory where the script can be found.
When you submit a job, the NEOS Server starts up a copy of the AMPL processor, which reads and executes the commands in the run file (or executes "solve" if no run file is provided). The NEOS Server also executes the requested solver. AMPL's display or printing commands can be included in the run file to produce listings of results that are sent back along with other AMPL output. To use this facility, follow a link below to consult the page of instructions for the solver in which you are interested. Solvers currently available are:
More about the NEOS ServerThe Network-Enabled Optimization System Server (NEOS Server) is a project of the Optimization Technology Center (OTC) of Northwestern University and Argonne National Laboratory.The NEOS Server uses the computational and algorithmic resources of OTC collaborators to provide optimization services via the Internet. Users are able to apply state-of-the-art optimization software to solve optimization problems without downloading and linking code. The Server thus demonstrates that the Internet can be used as a computational as well as an informational resource. More about NEOS Server and its components may be found in the following articles:
CreditsThe AMPL/NEOS interface has been developed under the auspices of of the Optimization Technology Center of Argonne National Laboratory and Northwestern University.The remote AMPL/remote solvers facility has been created by Jorge Moré (Argonne), with assistance from David Gay (Bell Laboratories) and Robert Fourer (Northwestern). The Kestrel local AMPL/remote solvers facility has been created by Elizabeth Dolan, Jean-Pierre Goux, and Todd Munson, in collaboration with Robert Fourer and Jorge Moré.
|