Finds the solution to the network circulation problem via the push-relabel circulation algorithm.
Usage
NetworkCirculation(
arcSources,
arcTargets,
arcLowerBound,
arcUpperBound,
nodeSupplies,
numNodes,
algorithm = "Circulation"
)
Arguments
- arcSources
Vector corresponding to the source nodes of a graph's edges
- arcTargets
Vector corresponding to the destination nodes of a graph's edges
- arcLowerBound
Vector corresponding to the lower-bound capacities of nodes of a graph's edges
- arcUpperBound
Vector corresponding to the upper-bound capacities of nodes of a graph's edges
- nodeSupplies
Vector corresponding to the supplies of each node of the graph.
- numNodes
The number of nodes in the graph
- algorithm
Choices of algorithminclude "Circulation". "Circulation" is the default.
Value
A named list containing two entries: 1) "flows": a vector corresponding to the flows of arcs in the graph, and 2) "barriers": a vector of the graph's barrier nodes.
Details
For details on LEMON's implementation, including differences between the algorithms, see https://lemon.cs.elte.hu/pub/doc/1.3.1/a00078.html.