[ library(max_flow) | Reference Manual | Alphabetic Index ]

feas_flow_with_lb(+Graph, +LowerBoundArg, +CapacityArg, +SourceNode, +SinkNode, -FlowValue, -FlowEdges, -FlowEdgesGraph)

Finds a feasible flow for a network with non-negative lower-bounds imposed on the edge flows,using an adapted Ford-Fulkerson maximum flow algorithm
a graph structure, no parallel edges, e(Src,Dest,EdgeData), EdgeData must be a structure with at least two arguments (for the lower and upper bounds of the edge capacity
which argument of EdgeData to use as the minimum flow (lower bound) for edge (integer)
which argument of EdgeData to use as (uppoer bound) edge capacity (integer),
source node number (integer)
sink node number (integer)
value of the flow
list denoting edges with non-zero flow (form: Flow-Edge)
a graph structure, original nodes (as in Graph) but only the edges that are in max flow


This predicate returns a feasible flow for a network whose edges can have a (non-negative) lower bound imposed on the edge flows. This is done by transforming the network to one with zero lower-bounds and solving for feasibility. Normally this will serve as the starting point for obtaining the maximal flow for the original network, but this predicate is provided for cases where a feasible solution is sufficient. If there is a feasible solution, it returns the total flow value for this solution, a list of all edges with flow, and a graph of the edges with non-zero flow. It fails if there are no feasible flow.

Fail Conditions

There is no feasible flow from Source to Sink

See Also

max_flow_with_lb / 8, max_flow / 5, max_flow / 7