Algebraic modeling language

Algebraic Modeling Languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation (i.e. large scale optimization type problems).[1] One particular advantage of some algebraic modeling languages like AIMMS,[1]AMPL,[2]GAMS[1] or Xpress-Mosel[1][3] is the similarity of their syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization, which is supported by certain language elements like sets, indices, algebraic expressions, powerful sparse index and data handling variables, constraints with arbitrary names. The algebraic formulation of a model does not contain any hints how to process it.

An AML does not solve those problems directly; instead, it calls appropriate external algorithms to obtain a solution. These algorithms are called solvers and can handle certain kind of mathematical problems like:

Core Elements

The core elements of an AML are:

  • a modeling language interpreter (the AML itself)
  • solver links
  • user interfaces (UI)
  • data exchange facilities
↑Jump back a section

Design Principles

Most AML follow certain design principles:

  • a balanced mix of declarative and procedural elements
  • open architecture and interfaces to other systems
  • different layers with separation of:
    • model and data
    • model and solution methods
    • model and operating system
    • model and interface
↑Jump back a section

References

  1. ^ a b c d Kallrath, Joseph (2004). Modeling Languages in Mathematical Optimization. Kluwer Academic Publishing. ISBN 978-1-4020-7547-6. 
  2. ^ "A Modeling Language for Mathematical Programming". Management Science 36: 519–554–83. 1990. 
  3. ^ Gueret, Christelle; Prins, Christian; Sevaux, Marc (2002). Applications of Optimization with Xpress-MP. Dash Optimization Limited. ISBN 0-9543503-0-8. 
↑Jump back a section

See also

↑Jump back a section

Read in another language

This page is available in 1 language

Last modified on 16 March 2013, at 17:06