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

all_min_cuts(+Graph, +CapacityArg, +SourceNode, +SinkNode, +Limit, -MaxFlowValue, -MaxFlowEdges, -MinCuts, -MinCutEdges)

Curet et al, algorithm for generating all minimum-cost cuts, with limit for max number of allowed cuts
a graph structure, no parallel edges, e(Src,Dest,EdgeData)
which argument of EdgeData to use as edge capacity (integer), (0 if EdgeData is a single number and -1 if every edge capacity is 1)
source node number (integer)
sink node number (integer)
max number of min cuts to output (integer), if 0 then output all possible mincuts
value of the maximum flow
list denoting edges with non-zero flow (form: Flow-Edge)
list of max Limit minimum cost cutsets (each cutset is represented by a list of nodes belonging to the source-side of the cut)
list of all minimum cost cutsets (each cutset is represented by a list of edges that separate the source-side and the sink-side of the cut)


This predicate uses the saem interface, and provides the same information as all_min_cuts/8, but adds an argument to limit the number of cuts that are generated. This can be helpful in graphs with a structure that creates very large numbers of minimal cost cutsets, the Limit argument is used to restrict the number of solutions returned.

See Also

max_flow : max_flow / 5, max_flow : max_flow / 7, max_flow_eplex : max_flow_eplex / 5, max_flow_eplex : max_flow_eplex_dual / 5, max_flow_eplex : max_flow_eplex_dual / 7, all_min_cuts / 8, all_min_cuts / 9, all_min_cuts_list / 5, all_min_cuts_eplex : all_min_cuts_eplex / 7, all_min_cuts_eplex : all_min_cuts_eplex / 8