Parameter Declaration
Terminology
The word parameter does not have a uniform meaning in the scientific community. When you are a statistician, you are likely to view a parameter as an unknown quantity to be estimated from observed data. In AIMMS the word parameter denotes a known quantity that holds either numeric or string-valued data. In programming languages the term variable is used for this purpose. However, this is not the convention adopted in AIMMS, where, in the context of a mathematical program, the word variable is reserved for an unknown quantity. Outside this context, a variable behaves as if it were a parameter. The terminology in AIMMS is consistent with the standard operations research terminology that distinguishes between parameters and variables.
Why use parameters
Rather than putting the explicit data values directly into your expressions, it is a much better practice to group these values together in parameters and to write all your expressions using these symbolic parameters. Maintaining a model that contains explicit data is a painstaking task and error prone, because the meaning of each separate number is not clear. Maintaining a model in symbolic form, however, is much easier and frequently boils down to simply adjusting the data of a few clearly named parameters at a single point.
Example
Consider the set Cities
introduced in the previous chapter and a
parameter FixedTransport(i,j)
. Suppose that the cost of each unit of
transport between cities i
and j
is stored in the parameter
UnitTransportCost(i,j)
. Then the definition of
TotalTransportCost
can be expressed as
TotalTransportCost := sum[(i,j), UnitTransportCost(i,j)*FixedTransport(i,j)];
Not only is this expression easy to understand, it also makes your model
extendible. For instance, an extra city can be added to your model by
simply adding an extra element to the set Cities
as well as updating
the tables containing the data for the parameters UnitTransportCost
and FixedTransport
. After these changes the above statement will
automatically compute TotalTransportCost
based on the new settings
without any explicit change to the symbolic model formulation.