Finds the solution to the network circulation problem via the push-relabel circulation algorithm.
NetworkCirculation(
arcSources,
arcTargets,
arcLowerBound,
arcUpperBound,
nodeSupplies,
numNodes,
algorithm = "Circulation"
)
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.
Vector corresponding to the source nodes of a graph's edges
Vector corresponding to the destination nodes of a graph's edges
Vector corresponding to the lower-bound capacities of nodes of a graph's edges
Vector corresponding to the upper-bound capacities of nodes of a graph's edges
Vector corresponding to the supplies of each node of the graph.
The number of nodes in the graph
Choices of algorithminclude "Circulation". "Circulation" is the default.
For details on LEMON's implementation, including differences between the algorithms, see https://lemon.cs.elte.hu/pub/doc/1.3.1/a00078.html.