manpagez: man pages & more
info gmpl
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Model objects

In MathProg the model is described in terms of sets, parameters, variables, constraints, and objectives, which are called model objects.

The user introduces particular model objects using the language statements. Each model object is provided with a symbolic name that uniquely identifies the object and is intended for referencing purposes.

Model objects, including sets, can be multidimensional arrays built over indexing sets. Formally, n-dimensional array A is the mapping:

A : D -> X,

where D within S1 x S2 x … x Sn is a subset of the Cartesian product of indexing sets, X is a set of the array members. In MathProg the set D is called subscript domain. Its members are n-tuples (i1, i2, …, in), where i1 in S1, i2 in S2, …, in in Sn.

If n = 0, the Cartesian product above has exactly one element (namely, 0-tuple), so it is convenient to think scalar objects as 0-dimensional arrays which have one member.

The type of array members is determined by the type of corresponding model object as follows:

Model object

Array member


Elemental plain set


Number or symbol


Elemental variable


Elemental constraint


Elemental objective

In order to refer to a particular object member the object should be provided with subscripts. For example, if a is 2-dimensional parameter built over I x J, a reference to its particular member can be written as a[ij], where i in I and j in J. It is understood that scalar objects being 0-dimensional need no subscripts.

© 2000-2019
Individual documents may contain additional copyright information.