java.lang.Object
org.jgrapht.alg.StoerWagnerMinimumCut<V,E> 
- Type Parameters:
 V- the graph vertex typeE- the graph edge type
Implements the Stoer and Wagner minimum cut
 algorithm. Deterministically computes the minimum cut in $O(|V||E| + |V| \log |V|)$ time.
 This implementation uses Java's PriorityQueue and requires $O(|V||E| \log |E|)$ time. M. Stoer
 and F. Wagner, "A Simple Min-Cut Algorithm", Journal of the ACM, volume 44, number 4. pp 585-591,
 1997.
- Author:
 - Robby McKilliam, Ernst de Ridder
 
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classClass for weighted vertices - 
Field Summary
Fields - 
Constructor Summary
ConstructorsConstructorDescriptionStoerWagnerMinimumCut(Graph<V, E> graph) Will compute the minimum cut in graph. - 
Method Summary
Modifier and TypeMethodDescriptionprotected StoerWagnerMinimumCut<V,E>.VertexAndWeight mergeVertices(Set<V> s, Set<V> t) Merges vertex $t$ into vertex $s$, summing the weights as required.minCut()Return a set of vertices on one side of the cutdoubleReturn the weight of the minimum cutprotected voidminimumCutPhase(Set<V> a) Implements the MinimumCutPhase function of Stoer and Wagner.doublevertexWeight(Set<V> v) Compute the sum of the weights entering a vertex 
- 
Field Details
- 
bestCutWeight
protected double bestCutWeight - 
bestCut
 
 - 
 - 
Constructor Details
- 
StoerWagnerMinimumCut
Will compute the minimum cut in graph.- Parameters:
 graph- graph over which to run algorithm- Throws:
 IllegalArgumentException- if a negative weight edge is foundIllegalArgumentException- if graph has less than 2 vertices
 
 - 
 - 
Method Details
- 
minimumCutPhase
Implements the MinimumCutPhase function of Stoer and Wagner.- Parameters:
 a- the vertex
 - 
minCutWeight
public double minCutWeight()Return the weight of the minimum cut- Returns:
 - the weight of the minimum cut
 
 - 
minCut
Return a set of vertices on one side of the cut- Returns:
 - a set of vertices on one side of the cut
 
 - 
mergeVertices
Merges vertex $t$ into vertex $s$, summing the weights as required. Returns the merged vertex and the sum of its weights- Parameters:
 s- the first vertext- the second vertex- Returns:
 - the merged vertex and its weight
 
 - 
vertexWeight
Compute the sum of the weights entering a vertex- Parameters:
 v- the vertex- Returns:
 - the sum of the weights entering a vertex
 
 
 -