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.
- 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__()¶
- 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__()¶
- 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
- 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__()¶
- edge¶
The edge used to index into the variable set.
- Type
- 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
- 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__()¶
- 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.