Arc Declaration and Attributes

Arc attributes

Arcs are used to represent the possible flows between nodes in a network. From these flows, balancing constraints can be generated by AIMMS for every node in the network. The possible attributes of an arc are given in this table.

Attribute

Value-type

See also page

IndexDomain

index-domain

The IndexDomain attribute

Range

range

The Range attribute

Default

constant-expression

The Default attribute, The Default attribute

From

node-reference

FromMultiplier

expression

To

node-reference

ToMultiplier

expression

Cost

expression

Unit

unit-valued expression

The Unit attribute

Priority

expression

The Priority attribute

NonvarStatus

expression

The NonvarStatus attribute

RelaxStatus

expression

The RelaxStatus attribute

Property

NoSave, numeric-storage-property,

The Property attribute, The Property attribute, Properties of variables

Inline, SemiContinuous, ReducedCost,

ValueRange, CoefficientRange

Text

string

The Text and Comment attributes, The Text attribute

Comment

comment string

The Text and Comment attributes

Arcs are like variables

Arcs play the role of variables in a network problem, but have some extra attributes compared to ordinary variables, namely the From, To, FromMultiplier, ToMultiplier, and Cost attributes. Arcs do not have a Definition attribute because they are implicitly defined by the From and To attributes.

The From and To attributes

For each arc, the From attribute is used to specify the starting node, and the To attribute to specify the end node. The value of both attributes must be a reference to a declared node.

The Multiplier attributes

With the FromMultiplier and ToMultiplier attributes you can specify whether the flow along an arc has a gain or loss factor. Their value must be an expression defined over some or all of the indices of the index domain of the arc. The result of the expression must be positive. If you do not specify a Multiplier attribute, AIMMS assumes a default of one. Network problems with non unit-valued Multipliers are called generalized networks.

FromMultiplier and ToMultiplier

The FromMultiplier is the conversion factor of the flow at the source node, while the ToMultiplier is the conversion factor at the destination node. Having both multipliers offers you the freedom to specify the network in its most natural way.

The Cost attribute

You can use the Cost attribute to specify the cost associated with the transport of one unit of flow across the arc. Its value is used in the computation of the special variable FlowCost, which is the accumulated cost over all arcs. In the computation of the FlowCost variable the component of an arc is computed as the product of the unit cost and the level value of the flow.

Graphically illustrated

In the presence of FromMultiplier and ToMultipliers, the drawing in Fig. 11 illustrates

  • the level value of the flow,

  • its associated cost component in the predefined FlowCost variable, and

  • the flows as they enter into the flow balances at the source and destination nodes (denoted by SBF and DBF, respectively).

../../_images/arc-declaration-and-attributes-pspic1.svg

Fig. 11 Flow levels and cost from node \(i\) to node \(j\)

Semi-continuous arcs

You can only use the SemiContinuous property for arcs if you use an LP solver to find the solution. If you use the pure network solver integrated in AIMMS, AIMMS will issue an error message.

Example

Using the declaration of nodes from the previous section, an example of a valid arc declaration is given by

Arc Transport {
    IndexDomain  :  (i,j,p) | Distance(i,j);
    Range        :  nonnegative;
    From         :  DepotStockSupplyNode(i,p);
    To           :  CustomerDemandNode(j,p);
    Cost         :  UnitTransportCost(i,j);
}

Note that this arc declaration declares flows between nodes i and j for multiple products p.