Gomory–Hu tree
In combinatorial optimization, the Gomory–Hu tree of an undirected graph with capacities is a weighted tree that represents the minimum s-''t cuts for all s''-t pairs in the graph. The Gomory–Hu tree can be constructed in maximum flow computations. It is named for Ralph E. Gomory and T. C. Hu.
Definition
Let be an undirected graph with being the capacity of the edge respectively.Then is said to be a Gomory–Hu tree of, if for each
where
- are the two connected components of, and thus forms an - cut in.
- is the capacity of the cut in.
Algorithm
- Set
- Choose some with if such exists. Otherwise, go to step 6.
- For each connected component let
- :Let
- : Contract the components to form where:
- :: is the capacity function, defined as:
- Choose two vertices and find a minimum cut in.
- :Set
- Set
- :For each do:
- :#Set if otherwise set
- :#Set
- :#Set
- :Set
- :Set
- :Go to step 2.
- Replace each by and each by. Output.
Analysis
Then it can be shown that the minimum cut in is also a minimum cut in for any.
To show that for all for some, throughout the algorithm, one makes use of the following lemma,
The lemma can be used again repeatedly to show that the output satisfies the properties of a Gomory–Hu Tree.
Example
The following is a simulation of the Gomory–Hu's algorithm, where- green circles are vertices of T.
- red and blue circles are the vertices in G
' . - grey vertices are the chosen s and t.
- red and blue coloring represents the s-''t cut.
- dashed edges are the s''-t cut-set.
- A is the set of vertices circled in red and B is the set of vertices circled in blue.
Implementations: Sequential and Parallel
Andrew V. Goldberg and K. Tsioutsiouliklis implemented the Gomory-Hu algorithm and Gusfield algorithm, and performed an experimental evaluation and comparison.
Cohen et al. report results on two parallel implementations of Gusfield's algorithm using OpenMP and MPI, respectively.