Gomory–Hu tree
In combinatorial optimization, the Gomory–Hu tree[1] 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 Template:Math 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.
- Denote the minimum capacity of an Template:Mvar-Template:Mvar cut by for each .
- Let be a tree, and denote the set of edges in an Template:Mvar-Template:Mvar path by for each .
Then Template:Mvar is said to be a Gomory–Hu tree of Template:Mvar, if for each
where
- are the two connected components of , and thus forms an Template:Mvar-Template:Mvar cut in Template:Mvar.
- is the capacity of the cut in Template:Mvar.
Algorithm
Gomory–Hu Algorithm
- Input: A weighted undirected graph
- Output: A Gomory–Hu Tree
- Set
- Choose some with Template:Math if such Template:Mvar 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 Template:Math and find a minimum Template:Math cut Template:Math in Template:Mvar.
- Set
- Set
- For each do:
- Set if otherwise set
- Set
- Set
- Set
- Set
- Go to step 2.
- For each do:
- Replace each by Template:Mvar and each by Template:Math. Output Template:Mvar.
Analysis
Using the submodular property of the capacity function Template:Mvar, one has Then it can be shown that the minimum Template:Math cut in Template:Mvar is also a minimum Template:Math cut in Template:Mvar for any Template:Math.
To show that for all for some Template:Math, Template:Math throughout the algorithm, one makes use of the following lemma,
- For any Template:Mvar in Template:Mvar,
The lemma can be used again repeatedly to show that the output Template:Mvar 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
Gusfield's algorithm can be used to find a Gomory–Hu tree without any vertex contraction in the same running time-complexity, which simplifies the implementation of constructing a Gomory–Hu Tree.[2]
Andrew V. Goldberg and K. Tsioutsiouliklis implemented the Gomory-Hu algorithm and Gusfield algorithm, and performed an experimental evaluation and comparison.[3]
Cohen et al. report results on two parallel implementations of Gusfield's algorithm using OpenMP and MPI, respectively.[4]
Related concepts
In planar graphs, the Gomory–Hu tree is dual to the minimum weight cycle basis, in the sense that the cuts of the Gomory–Hu tree are dual to a collection of cycles in the dual graph that form a minimum-weight cycle basis.[5]