Algebraic modeling languages (AML) are high-level
computer programming languages
A programming language is a system of notation for writing computer program, computer programs. Most programming languages are text-based formal languages, but they may also be visual programming language, graphical. They are a kind of computer ...
for describing and solving high complexity problems for large scale
mathematical
Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented in modern mathematics ...
computation (i.e. large scale
optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
type problems).
One particular advantage of some algebraic modeling languages like
AIMMS,
AMPL,
GAMS,
Gekko,
MathProg,
Mosel,
[
]
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,
constraint
Constraint may refer to:
* Constraint (computer-aided design), a demarcation of geometrical characteristics between two or more entities or solid modeling bodies
* Constraint (mathematics), a condition of an optimization problem that the solution ...
s 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