Problems/
Software

Benchmarks

Testcases

Books/
Tutorials

Tools

Websub-
mission

Other
Sources

 
              

Tools : Automatic Differentiation, Modeling Systems, and Analysis Tools

We list here the above mentioned tools only. Others may be useful and/or even necessary, like preprocessors for systems of linear inequalities and equations, e.g. for eliminating fixed variables, redundant equalities and inequalities and similar tasks. There is no separate public domain software tool for these tasks. Some of the modeling systems mentioned below, however, include such options.

General note on Automatic Differentiation

While it is frequently necessary or desirable to replace gradients by numerical differentiation, a tool that became available more recently is that of automatic differentiation. NLP programs which have both options include DONLP2 and FSQP (see under programs for general nonlinear programming). A comparison of the various differentiation techniques is given in Griewank's paper.

The following are links to some general automatic differentiation software: These codes take a subprogram for computing a function as input and automatically generate a subprogram for computing the gradient and/or the Hessian as output.

Tapenade Source-to-source f77 (and most of f95); websubmission or local installation as JAR archive
TAMC Tangent and linear Adjoint Model Compiler; websubmission, f77 and most f90 extensions, forward and reverse modes
netlib/toms/746 method of K. Schittkowski et al, f77
ADIFOR by C. Bischof et al; f77
ADIC by C. Bischof et al; C
ADOL-C A. Griewank's packages for programs in C/C++, forward and reverse mode
MXYZPTLK C++ library, initiated at Fermilab
ADMAT automatic differentiation in Matlab
Revolvecheckpointing for reverse mode
more AD tools

Modeling Languages

Modeling languages allow you to formulate a linear or nonlinear programming problem in mathematical terms in a way near your original problem and automatically generate an evaluation code appropriate for a corresponding solver. Different solvers need different interfaces, hence not all codes come with interfaces for such modeling languages. The following example shows a typical problem in mathematical terms, coded in C , coded in the modeling language AMPL, and finally coded in SIF ALKYLATION . SIF means standard input format and has been developed by Conn, Gould and Toint in connection with their LANCELOT project. It is an extension of the old linear programming MPS format. If one has coded a problem in SIF, then the SIF evaluation tools allow computation of exact first and second order derivatives. SIF is fully documented in the book A.R. Conn, N.I.M. Gould, Ph. L. Toint: "LANCELOT A Fortran Package for Large-Scale Nonlinear Optimization", Springer publisher, 1992, ISBN 3-540-55470-X. Here comes a list of some modeling languages/systems:

AMPL For many codes links are given to an AMPL interface. The AMPL modeling language is a commercial product, but student binaries are available here and here is an Emacs interface.
GAMS & AIMMS two other commercial modeling systems
SolveLPx Graphical modeling tool, AMPL GUI, for MILP, MIQP, conic, links to free and commercial solvers, free personal version (Win-binaries).
plam A free MILP modeling environment using lp_solve as MILP solver and SWI-Prolog
stochplam An extension of PLAM above to stochastic LPs
LPL A free logic-based modeling language (Win-binaries).
FLOPC++ C++ class library for algebraic modelling of linear optimization problems (LP/MIP); uses COIN OSI interface.
ZIMPL GPL-licensed LP/MILP modelling language, produces lp/MPS formats (C)

ASCEND An extensive GPL-licensed modeling system (source, binaries, docs).
OCOMA Maple based code generator for nonlinear model predictive control, graphical interface.
others Other modeling systems, several of which come with free demo versions.

Analysis Tools

MProbe Analysis tool for Nonlinear Programs in AMPL (Win student version)
MINOS(IIS) Software Tool for Analyzing Infeasible Linear Programs (Win student version)
MODLER Input is a model of an LP incl logical constraints; output is in MPS format or a syntax file for the following tools. (Win/Linux executables)
ANALYZE Analysis tool for mixed integer LP's (Win/Linux executables, accepts also MPS format)
RANDMOD System for Randomizing Modifications to an Instance of a Linear Program (Win/Linux executables, accepts also MPS format)
 Back to the top!

Date last revised: 10-13-2003