4.1.10.2. flow/LinExp

4.1.10.2.1. Linear Expressions and Constraints

Linear expressions (FlowLinExp) and constraints (FlowLinConstraint) can be implicitly created from variable specifiers and operators, meaning one rarely need to instantiate them explicitly. However creating the zero-expression might sometimes be useful (e.g., in a sum expression) and can be done simply with the expression FlowLinExp().

A variable specifier is a representation of either a single ILP variable or a sum of ILP variables. The addition, multiplication and division operators are overloaded for variable specifiers and linear expressions such that expressions can be written in the natural manner.

The operators <=, == and >= are overloaded on linear expressions to make the creation of linear constraints easier. However, one argument to the operator must be a linear expression while the other argument must be a number.

All variable specifiers are defined in module scope. See Hyperflow Model for an overview of the specifiers.

class mod.FlowVarSumVertex

Represents the sum of all variables indicated by the given id. Can be indexed to retrieve a specifier for a single variable in the set.

__init__(id)

Construct a variable specifier for a sum of variables associated with vertices in the underlying derivation graph.

Parameters

id (str) – The ID for the variable set to represent.

__str__()
__getitem__(x)

Select the variable associated with the derivation graph vertex which represents the given object. When the resulting specifier is given to a flow model, if the given object is a vertex, then it must belong to the same derivation graph as the one underlying the model. If the given object is a graph, a vertex in the underlying derivation graph must exist which has the graph associated.

Parameters

x (DGVertex or Graph) – a graph or vertex used to select a vertex in the underlying derivation graph.

Returns

a variable specifier for a single variable in the set represented by this object.

Return type

FlowVarVertex or FlowVarVertexGraph

id

The ID for this specifier.

Type

str

class mod.FlowVarVertex

Represents a variable associated with a single vertex in a derivation graph. .. method:: __init__(id, v)

param str id

The ID for the variable set to select variables from.

param DGVertex v

The vertex used to select a variable from the variable set.

__str__()
id

The ID for the underlying set specifier.

Type

str

vertex

The graph used to index into the variable set.

Type

DGVertex

class mod.FlowVarVertexGraph

Represents a variable associated with a single vertex in a derivation graph. This is done implicitly by a graph, and when this specifier is later given to a flow model a vertex with the graph associated must exist in the underlying derivation graph. .. method:: __init__(id, g)

param str id

The ID for the variable set to select variables from.

param Graph g

The graph used to select a variable from the variable set.

__str__()
id

The ID for the underlying set specifier.

Type

str

graph

The graph used to index into the variable set.

Type

Graph

class mod.FlowVarSumEdge

Represents the sum of all variables indicated by the given id. Can be indexed to retrieve a specifier for a single variable in the set.

__init__(id)

Construct a variable specifier for a sum of variables associated with edges in the underlying derivation graph.

Parameters

id (str) – The ID for the variable set to represent.

__str__()
__getitem__(e)

Select the variable associated with the derivation graph edge which represents the given object. When the resulting specifier is given to a flow model, the given edge must be long to the same derivation graph as the one underlying the model.

Parameters

e (DGHyperEdge) – an edge used to select a variable.

Returns

a variable specifier for a single variable in the set represented by this object.

Return type

FlowVarEdge

id

The ID for this specifier.

Type

str

class mod.FlowVarEdge

Represents a variable associated with an edge in a derivation graph. .. method:: __init__(id, e)

param str id

The ID for the variable set to select variables from.

param DGHyperEdge e

The edge used to select a variable from the variable set.

__str__()
id

The ID for the underlying set specifier.

Type

str

edge

The edge used to index into the variable set.

Type

DGHyperEdge

class mod.FlowVarSumCustom

Represents the sum of all variables indicated by the given id. Can be indexed to retrieve a specifier for a single variable in the set.

__init__(id)

Construct a variable specifier for a sum of custom variables.

Parameters

id (str) – The ID for the variable set to represent.

__str__()
__getitem__(id)

Select the variable associated with the given name. When the resulting specifier is given to a flow model that variable must have been created in the specification in some way.

Parameters

e (str) – a name used to select a variable.

Returns

a variable specifier for a single variable in the set represented by this object.

Return type

FlowVarCustom

id

The ID for this specifier.

Type

str

class mod.FlowVarCustom

Represents a custom variable. .. method:: __init__(id, name)

param str id

The ID for the variable set to select variables from.

param str name

The name used to select a variable from the variable set.

__str__()
id

The ID for the underlying set specifier.

Type

str

name

The name used to index into the variable set.

Type

str

class mod.FlowVar

Represents any variable specifier. They are all implicitly convertible to this type.

class mod.FlowLinExp

Represents a linear expresion over variable specifiers.

The usual arithmetic operators are overloaded on variable specifiers and this class to automatically create expressions.

class mod.FlowLinConstraint

Represents a linear constraint with a FlowLinExp on one side, and a constant on the other side. The operators <=, ==, and >= are overloaded on linear expressions to automatically create constraints.