AIMMS
Encyclopedia
AIMMS is a software system designed for modeling and solving large-scale optimization and scheduling-type problems.
It consists of an algebraic modeling language
Algebraic modeling language
Algebraic Modeling Languages are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation...

, an integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 for both editing models and creating a graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 around these models, and a graphical end-user environment.
AIMMS is linked to multiple solver
Solver
A solver is a generic term indicating a piece of mathematical software, possibly in the form of a stand-alone computer program or as a software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic form and calculate their solution...

s through the AIMMS Open Solver Interface.
Supported solvers include CPLEX
CPLEX
IBM ILOG CPLEX Optimization Studio is an optimization software package. In 2004, the work on CPLEX earned the first ....

, Gurobi
Gurobi
Gurobi is a commercial software package for solving large-scale linear optimization, quadratic optimization, and mixed-integer optimization problems...

, MOSEK
MOSEK
MOSEK is a software package for the solution of linear, mixed-integer linear, quadratic, mixed-integer quadratic, quadratically constraint, conic and convex nonlinear mathematical optimization problems. The emphasize in MOSEK is on solving large scale sparse problems. Particularly the...

, CBC, Conopt, MINOS, IPOPT
IPOPT
IPOPT, short for "Interior Point OPTimizer, pronounced I-P-Opt", is a software library for large scale nonlinear optimization of continuous systems. It is written in Fortran and C and is released under the EPL . IPOPT implements a primal-dual interior point method, and uses line searches based on...

, SNOPT
SNOPT
SNOPT is a software package for solving large-scale optimization problems written by Philip Gill, Walter Murray and Michael Saunders....

 and KNITRO
KNITRO
KNITRO is a software package for solving large scale mathematical optimization problems. KNITRO is specialized for nonlinear optimization, but also solves linear programming problems, quadratic programming problems, and systems of nonlinear equations. The unknowns in these problems must be...

.

Features

AIMMS features a mixture of declarative
Declarative programming
In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages applying this style attempt to minimize or eliminate side effects by describing what the program should accomplish, rather than...

 and imperative
Imperative programming
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state...

 programming styles. Formulation of optimization models takes place through declarative language elements such as sets and indices, as well as scalar and multidimensional parameters, variables and constraints, which are common to all algebraic modeling languages
Algebraic modeling language
Algebraic Modeling Languages are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation...

, and allow for a concise description of most problems in the domain of mathematical optimization. Units of measurement
Units of measurement
A unit of measurement is a definite magnitude of a physical quantity, defined and adopted by convention and/or by law, that is used as a standard for measurement of the same physical quantity. Any other value of the physical quantity can be expressed as a simple multiple of the unit of...

 are natively supported in the language, and compile- and runtime unit analysis may be employed to detect modeling errors.

Procedures and control flow
Control flow
In computer science, control flow refers to the order in which the individual statements, instructions, or function calls of an imperative or a declarative program are executed or evaluated....

 statements are available in AIMMS for
  • the exchange of data with external data sources such as spreadsheets
    Spreadsheet
    A spreadsheet is a computer application that simulates a paper accounting worksheet. It displays multiple cells usually in a two-dimensional matrix or grid consisting of rows and columns. Each cell contains alphanumeric text, numeric values or formulas...

    , databases
    Database
    A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

    , XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     and text files
  • data pre- and post-processing tasks around optimization models
  • user interface event handling
  • the construction of hybrid algorithms for problem types for which no direct efficient solvers are available.

To support the re-use of common modeling components, AIMMS allows modelers to organize their model in user model libraries.

AIMMS supports a wide range of mathematical optimization problem types:
  • Linear programming
    Linear programming
    Linear programming is a mathematical method for determining a way to achieve the best outcome in a given mathematical model for some list of requirements represented as linear relationships...

  • Quadratic programming
    Quadratic programming
    Quadratic programming is a special type of mathematical optimization problem. It is the problem of optimizing a quadratic function of several variables subject to linear constraints on these variables....

  • Nonlinear programming
    Nonlinear programming
    In mathematics, nonlinear programming is the process of solving a system of equalities and inequalities, collectively termed constraints, over a set of unknown real variables, along with an objective function to be maximized or minimized, where some of the constraints or the objective function are...

  • Mixed-integer programming
  • Mixed-integer nonlinear programming
  • Global optimization
    Global optimization
    Global optimization is a branch of applied mathematics and numerical analysis that deals with the optimization of a function or a set of functions to some criteria.- General :The most common form is the minimization of one real-valued function...

  • Complementarity problems
    Complementarity theory
    A complementarity problem is a type of mathematical optimization problem. It is the problem of optimizing a function of two vector variables subject to certain requirements which include: that the inner product of the two variables must equal zero, i.e.  = 0...

     (MPECs)
  • Stochastic programming
    Stochastic programming
    Stochastic programming is a framework for modeling optimization problems that involve uncertainty. Whereas deterministic optimization problems are formulated with known parameters, real world problems almost invariably include some unknown parameters. When the parameters are known only within...

  • Robust optimization
    Robust optimization
    Robust optimization is a field of optimization theory that deals with optimization problems where robustness is sought against uncertainty and/or variability in the value of a parameter of the problem.- History :...


Uncertainty
Uncertainty
Uncertainty is a term used in subtly different ways in a number of fields, including physics, philosophy, statistics, economics, finance, insurance, psychology, sociology, engineering, and information science...

 can be taken into account in deterministic linear and mixed integer optimization models in AIMMS through the specification of additional attributes, such that stochastic
Stochastic programming
Stochastic programming is a framework for modeling optimization problems that involve uncertainty. Whereas deterministic optimization problems are formulated with known parameters, real world problems almost invariably include some unknown parameters. When the parameters are known only within...

 or robust
Robust optimization
Robust optimization is a field of optimization theory that deals with optimization problems where robustness is sought against uncertainty and/or variability in the value of a parameter of the problem.- History :...

 optimization techniques can be applied alongside the existing deterministic solution techniques.

Custom hybrid and decomposition algorithms can be constructed using the GMP system library which makes available at the modeling level many of the basic building blocks used internally by the higher level solution methods present in AIMMS, matrix modification methods, as well as specialized steps for customizing solution algorithms for specific problem types.

Optimization solutions created with AIMMS can be used either as a standalone desktop application or can be embedded as a software component in other applications.

Use in industry

AIMMS is used in a wide range of industries including oil and chemicals, steel production and agribusiness.

Alstom Grid
Alstom
Alstom is a large multinational conglomerate which holds interests in the power generation and transport markets. According to the company website, in the years 2010-2011 Alstom had annual sales of over €20.9 billion, and employed more than 85,000 people in 70 countries. Alstom's headquarters are...

 uses AIMMS as the modeling and optimization engine of its energy market
Energy market
Energy markets are those commodities markets that deal specifically with the trade and supply of energy. Energy market may refer to an electricity market, but can also refer to other sources of energy...

 clearing
Market clearing
In economics, market clearing refers to either# a simplifying assumption made by the new classical school that markets always go to where the quantity supplied equals the quantity demanded; or# the process of getting there via price adjustment....

 software.
Together with Alstom Grid
Alstom
Alstom is a large multinational conglomerate which holds interests in the power generation and transport markets. According to the company website, in the years 2010-2011 Alstom had annual sales of over €20.9 billion, and employed more than 85,000 people in 70 countries. Alstom's headquarters are...

, Paragon Decision Technology (the developer of AIMMS) was part of the analytics team of Midwest ISO that won the Franz Edelman Award for Achievement in Operations Research and the Management Sciences
Franz Edelman Award for Achievement in Operations Research and the Management Sciences
The Franz Edelman Award for Achievement in Operations Research and the Management Sciences recognizes excellence in the execution of operations research on the organizational level...

 of 2011 for successfully applying operations research
Operations research
Operations research is an interdisciplinary mathematical science that focuses on the effective use of technology by organizations...

 in the Midwest ISO energy market.

A sample model

A transportation problem
from George Dantzig
George Dantzig
George Bernard Dantzig was an American mathematical scientist who made important contributions to operations research, computer science, economics, and statistics....

 is used to provide a sample AIMMS model. This problem finds the least cost shipping schedule that meets requirements at markets and supplies at factories. The textual representation of an AIMMS model presents the model as a tree of attributed identifier nodes. It reflects the way in which the model is presented to the modeler in the AIMMS IDE, and is typically generated by the AIMMS IDE.

MAIN MODEL Main_Transport

DECLARATION SECTION

QUANTITY:
identifier : QuantityLength
base unit : mile ;

QUANTITY:
identifier : QuantityCurrency
base unit : $ ;

SET:
identifier : Plants
index : p ;

SET:
identifier : Markets
index : m ;

PARAMETER:
identifier : Capacity
index domain : p ;

PARAMETER:
identifier : Demand
index domain : m ;

PARAMETER:
identifier : Distance
index domain : (p,m)
unit : 1000 * mile ;

PARAMETER:
identifier : Freight
unit : $/(1000 * mile) ;

PARAMETER:
identifier : TransportCost
index domain : (p,m)
unit : 1000 * $
definition : Freight * Distance(p,m) ;

VARIABLE:
identifier : Shipment
index domain : (p,m)
range : nonnegative ;

CONSTRAINT:
identifier : SatisfyCapacity
index domain : p
definition : sum(m, Shipment(p,m)) <= Capacity(p) ;

CONSTRAINT:
identifier : MeetDemand
index domain : m
definition : sum(p, Shipment(p,m)) >= Demand(m) ;

VARIABLE:
identifier : TotalCost
unit : 1000 * $
definition : sum((p,m), TransportCost(p,m)*Shipment(p,m)) ;

MATHEMATICAL PROGRAM:
identifier : TransportModel
objective : TotalCost
direction : minimize
constraints : AllConstraints
variables : AllVariables ;

ENDSECTION ;

PROCEDURE
identifier : MainInitialization
body :
Plants := data { seattle, san-diego };
Markets := data { new-york, chicago, topeka };

Capacity(p) := data { seattle : 350, san-diego : 600 };
Demand(m) := data { new-york : 325, chicago : 300, topeka : 275 };

Distance(p,m) := data
{ ( seattle , new-york ) : 2.5, ( seattle , chicago ) : 1.7, ( seattle , topeka ) : 1.8,
( san-diego, new-york ) : 2.5, ( san-diego, chicago ) : 1.8, ( san-diego, topeka ) : 1.4 };

Freight := 90 [$/(1000*mile)];

ENDPROCEDURE ;

PROCEDURE
identifier : MainExecution
body :
solve TransportModel;

ENDPROCEDURE ;

ENDMODEL Main_Transport ;

See also

  • Algebraic modeling language
    Algebraic modeling language
    Algebraic Modeling Languages are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation...

  • AMPL
    AMPL
    AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and solving high-complexity problems for large-scale mathematical computation AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and...

     - an algebraic modeling language
  • General Algebraic Modeling System
    General Algebraic Modeling System
    The General Algebraic Modeling System is a high-level modeling system for mathematical optimization. GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems. The system is tailored for complex, large-scale modeling applications and allows the user to...

     (GAMS)
  • OptimJ
    OptimJ
    OptimJ is an extension of the Java with language support for writing optimization models and abstractions for bulk data processing. OptimJ aims at providing a clear and concise algebraic notation for optimization modeling, removing compatibility barriers between optimization modeling and...

    - Java based modeling language

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK