Overview of Arom Algebraic Modeling Language
What is an Algebraic Modeling Language ?
Algebraic modeling languages (AMLs) are languages based on algebraic notations
used in scientific textbooks and publications for describing mathematical models
consisting of equations and/or constraints. Allowing indexed expressions, sets,
variables and iterated operators like
and
, they
provide a convenient way to form expressions such as:
AMLs have become very popular in the operations research community through languages like AMPL and GAMS.
The popularity of AMLs for numerical modeling comes from different factors. First, it is not necessary to be a computer scientist in order to use these languages: the effort to implement a model using an AML is small once the mathematical equations and/or constraints are available. Second, AMLs are declarative: each mathematical equation or constraint in a model forms an independent corpus of knowledge, and the order in which the equations and/or constraints are written is unimportant. These features make AMLs very suitable for building numerical models.
Why using an AML in Arom ?
While AMLs are very powerful for writing numerical models, several systems in the field of knowledge-based simulation and constraint programming have shown that AMLs are equally powerful for manipulating symbolic expressions. This ability of manipulating both numerical and symbolic information makes AMLs very attractive in the context of a system like Arom.
Arom AML has three purposes:
In the present version of Arom, only the first of these possibilities is implemented. In the near future, the next two are expected to be implemented.
Equations in Arom
An Arom equation is the definition of a variable belonging to a class or to an association. An exemple is given below.
class: square
variable: length
type: float
surface:
type: float
definition: surface = length * length