AMPL Shell

AMPL Shell 2018-09-18T12:05:54+00:00

AMPL is a comprehensive, powerful and flexible algebraic modelling language and AMPL Shell is an interactive shell-level modelling environment. It is used to create machine-readable formulation of the linear, non-linear and integer programming problems.


AMPL is based on modern modelling principles and utilizes an advanced architecture providing flexibility that most other modelling systems lack. AMPL has been used in many demanding mathematical programming modelling applications around the world.

AMPL allows modellers to create models with maximum productivity. By using AMPL’s natural algebraic notation, even a very large, complex model can often be stated in a concise, and understandable form. Since AMPL models are easy to understand, debug and modify, AMPL also makes maintaining models easy.

Key Features

Environment features

Ampl has interfaces to a large variety of solvers including CONOPT, CPLEX, FortMP, MOPS, KNITRO, LGO, LANCELOT, LOQO, LSGRG, MINOS, OSL, SNOPT, and XA.

AMPL can import both indexes and data directly from a database. After the model has been solved AMPL can also export the solution back to the database. The databases which are supported include Access, ODBC, Paradox, FoxPro, and Dbase for the Windows version and Oracle for the Motif version.

Direct Database Import and Export: Importing data from a variety of corporate database systems into optimization models is frequently an essential requirement for optimization projects. One of the advanced features of AMPL is the database connection option that directly links AMPL with relational databases and other data sources. This option enables the model developer to gather both indexes and data values from various data sources and import them directly into the model. After the model has been optimised, the solution output can be exported back into the database.

AMPL scripting language can be used to control the flow of execution and solution of the models, and to modify existing model instances. This powerful feature includes looping and conditional statements, commands to modify the model instances – i.e. dropping constraints or switching objective functions and has the ability to import and consume user defined function imported from external libraries. It is useful for quick implementation of sensitivity analysis, prototyping decomposition methods, heuristics or other iterative schemes.

Separation of model and data allows the AMPL models to remain concise as sets and data tables grow. Models may make use of diagnostic features of AMPL and include checks for validity of the data.

Modelling Features

Broad support for sets and set operators AMPL models can use sets of pairs, triples, and longer tuples; collections of sets indexed over sets; unordered, ordered, and circular sets of objects; and sets of numbers.

General and natural syntax for arithmetic, logical, and conditional expressions; familiar conventions for summations and other iterated operators.

Nonlinear programming features such as user-defined functions, fast automatic differentiation.

Convenient alternative notations including node and arc declarations for network problems, a special syntax for piecewise-linear functions, and column wise specification of linear coefficients.


Supporting platforms

  • All Windows versions
  • Most variants of UNIX and Linux

Since we are constantly working on new releases of AMPL, please contact OptiRisk Systems for updated information.

Example of Use

To see the AMPL Shell Example of Use please click here.