[ 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
- Graph
- a graph structure, no parallel edges, e(Src,Dest,EdgeData)
- CapacityArg
- 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)
- SourceNode
- source node number (integer)
- SinkNode
- sink node number (integer)
- Limit
- max number of min cuts to output (integer), if 0 then output all possible mincuts
- MaxFlowValue
- value of the maximum flow
- MaxFlowEdges
- list denoting edges with non-zero flow (form: Flow-Edge)
- MinCuts
- list of max Limit minimum cost cutsets (each cutset is represented by a list of nodes belonging to the source-side of the cut)
- MinCutEdges
- 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)
Description
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