[ library(all_min_cuts) | Reference Manual | Alphabetic Index ]
# all_min_cuts(+Graph, +CapacityArg, +SourceNode, +SinkNode, -MaxFlowValue, -MaxFlowEdges, -MinCuts, -MinCutEdges)

Curet et al, algorithm for generating all minimum-cost 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)
*MaxFlowValue*
- value of the maximum flow
*MaxFlowEdges*
- list denoting edges with non-zero flow (form: Flow-Edge)
*MinCuts*
- list of all 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 provides all minimal cost cutsets for a max flow problem in a graph between a source and a sink node. It returns the maximal flow value, edges with non-zero flow in the optimal solution, and a list of all minimum cost cutsets corresponding to that flow value. The results are given both as node lists (nodes on the source side of the cut), and as edge lists (edges belonging to the cut), to simplify use of the predicate in situations where either of the output formats is preferred.
## 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