Algebraic modeling language
From Wikipedia, the free encyclopedia
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] Gekko, MathProg, Mosel,[1][3] and OPL 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:
- linear problems
- integer problems
- (mixed integer) quadratic problems
- mixed complementarity problems
- mathematical programs with equilibrium constraints
- constrained nonlinear systems
- general nonlinear problems
- non-linear programs with discontinuous derivatives
- nonlinear integer problems
- global optimization problems
- stochastic optimization problems
The core elements of an AML are:
- a modeling language interpreter (the AML itself)
- solver links
- user interfaces (UI)
- data exchange facilities
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
Data driven model generation
Most modeling languages exploit the similarities between structured models and relational databases [4] by providing a database access layer, which enables the modelling system to directly access data from external data sources (e.g. these[5] table handlers for AMPL). With the refinement of analytic technologies applied to business processes, optimization models are becoming an integral part of decision support systems; optimization models can be structured and layered to represent and support complex business processes. In such applications, the multi-dimensional data structure typical of OLAP systems can be directly mapped to the optimization models and typical MDDB operations can be translated into aggregation and disaggregation operations on the underlying model [6]