1 / 39

Gomory-Hu Tree for representation of minimum cuts

Gomory-Hu Tree for representation of minimum cuts. Elad Avni. Flow Definition. Assume N to be a directional graph. Let every arc have an associated positive integer c called the capacity of the arc.

andren
Download Presentation

Gomory-Hu Tree for representation of minimum cuts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gomory-Hu Tree for representation of minimum cuts Elad Avni

  2. Flow Definition Assume N to be a directional graph. Let every arc have an associated positive integer c called the capacity of the arc. There are two special nodes in the network. One is called the source, and one is called the sink.

  3. Flow Definition A set of nonnegative integers f is called a flow in the network if they satisfy the following constrains:

  4. Cut Definition (X,~X) is a cut if: • X or ~X equals N • X and ~X equals to an empty group. The capacity of a cut is defined to be the sum of the capacity of the edges that cross it A cut separates between v and u if v belongs to X and u belongs to ~X

  5. Maximum Flow and Minimum Cut The maximum flow between s and t equals to the minimum cut that separates between them.

  6. Multiterminal Maximal Flows We are interested in finding maximal flow/minimal cut values between all pairs of nodes in a network. Any pair of nodes can serve as the source and the sink. We shall consider only unidirectional networks. Only in this case are there simple and elegant answers.

  7. Definitions • Crossing cuts • Condensing a subset of nodes into a single node • Flow equivalent networks in respect to a set of nodes

  8. Crossing Cuts Two cuts (X,~X) and (Y,~Y) are said to cross each other if each of the four sets (X ∩ Y, X ∩ ~Y, ~X ∩ Y, ~X ∩ ~Y) contains at lest one node.

  9. Condensing a subset of nodes into a single node Between every pair of two nodes of the subset an arc of infinite capacity is added. The arcs directly connecting a node not in the subset to any node in the subset are replaced by a single arc having capacity equal to the sum of capacities of the connecting arcs.

  10. Example:

  11. Flow Equivalent Networks Suppose there is network N. Suppose there is another network N’ which consist of p nodes, and the maximal flow values between some p nodes of N are the same as the maximal flow values of the network N’. Those two networks are said to be flow equivalent to each other with respect to that p nodes

  12. Flow Equivalent Networks It turns out that there always exist an N’ which is a tree (Gomory Hu Tree). We will describe an algorithm to construct the tree N’ from a network N.

  13. The Algorithm Step 1: Do a maximal flow computation for two nodes on a network which is usually smaller than the original network, since subsets are condensed into a single node. Based on the flow we get a minimum cut, which does not cross any of the previous cuts. Go to step 2.

  14. The Algorithm Step 2: Use the minimum cut just obtained in step 1 and construct a link of the tree network N’. Select a pair of nodes in the same side of the previous cut, which will serve as the source and sink in step 1, and condense certain subsets of the original network into a single nodes. This is the network that will be used to the maximal flow computation in step 1. Go to step 1.

  15. The Algorithm The algorithm ends when n-1 links are constructed. The tree N’ that we constructed using the algorithm and the network N are flow equivalent with respect to all of the nodes.

  16. Example:

  17. Lemma Let (X,~X) be a minimum cut separating nude i that belongs to X and some other node belong to ~X. Let e and k be any two nodes contained in ~X. Then there exists a minimum cut (Z,~Z) separating e and k, such as (Z,~Z) and (X,~X) do not cross each other.

  18. Proof Assume there is a minimum cut (Y,~Y) separating e and k which does cross (X,~X).

  19. Case 1:

  20. Proof – case 1 Since (X,~X) is a minimum cut, we have c(Q,P) + c(S,P) + c(Q,R) + c(S,R) <= c(Q,P) + c(Q,R) + c(Q,S) Or c(S,P) + c(S,R) <= c(Q,S) Or c(S,R) <= c(Q,S)

  21. Proof – case 1 Now we can also say that: c(P,R) + c(Q,R) + c(S,R) <= c(P,R) + c(Q,R) + c(Q,S) + c(P,S) But now we have on left side a cut which is separating e and k that does not cross (X,~X). On the right side we got the minimum cut (Y,~Y).

  22. Case 2:

  23. Proof – case 2 This is very similar to case 1, so we will not prove it.

  24. Algorithm Proof(neighboring nodes) Consider a link connecting two circles with one circle containing node v and one circle containing node u. Let us call the set of nodes on the same side as v the set X and the set of nodes on the same side as u the set ~X.

  25. Proof Then the value associated with this link is c(X,~X), which is minimum cut separating between w of set X and z of set ~X. The minimum cut separating between v and u is c(Y,~Y) in the original network, where v is in Y and u is in ~Y.

  26. Proof There exist a (Y,~Y) which does not cross (X,~X). Let us assume that X is included in Y and ~Y is included in ~X.

  27. Proof – case 1 Case 1: Let w belong to Y. Then (Y,~Y) separates between w and z. If so, c(Y,~Y) >= c(X,~X) because (X,~X) is the minimum cut between w and z. Also, c(X,~X) >= c(Y,~Y) because (Y,~Y) is the minimum cut between u and v.

  28. Proof – case 2 Case 2: Let w belong to ~Y and ~X. There is a cut (T,~T) which does not cross (X,~X) or (Y,~Y).

  29. Proof – case 2 Furthermore: u, v and z all belong to T. So, c(T,~T) >= c(X,~X) because (X,~X) is the minimum cut separates between w and z. Also, as (Y,~Y) is a cut separating between w and u. So, c(Y,~Y) >= c(T,~T). Now, we can surely say that c(Y,~Y) >= c(X,~X).

  30. Proof – case 2 Now, because (Y,~Y) is the minimum cut separating between u and v, we can also say that c(Y,~Y) <= c(X,~X). Hence, they are equals. c(Y,~Y) = c(X,~X).

  31. Algorithm Proof(not neighboring nodes) Let us define f(s,t) as the maximum flow between nodes s and t. Then, f(s,t) >= min[f(s,k),f(k,t)] By induction, we get: f(s,t) >= min[f(s,a),f(a,b),…,f(j,k),f(k,t)]

More Related