Gomory-Hu Tree for representation of minimum cuts Elad Avni
Transcript
Slide 1
Gomory-Hu Tree for representation of minimum cuts Elad
Avni
Slide 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.
Slide 3
Flow Definition A set of nonnegative integers f is called a
flow in the network if they satisfy the following constrains:
Slide 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
Slide 5
Maximum Flow and Minimum Cut The maximum flow between s and t
equals to the minimum cut that separates between them.
Slide 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.
Slide 7
Definitions Crossing cuts Condensing a subset of nodes into a
single node Flow equivalent networks in respect to a set of
nodes
Slide 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.
Slide 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.
Slide 10
Example :
Slide 11
Slide 12
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
Slide 13
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.
Slide 14
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.
Slide 15
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.
Slide 16
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.
Slide 17
Example:
Slide 18
Slide 19
Slide 20
Slide 21
Slide 22
Slide 23
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.
Slide 24
Proof Assume there is a minimum cut (Y,~Y) separating e and k
which does cross (X,~X).
Slide 25
Case 1:
Slide 26
Proof case 1 Since (X,~X) is a minimum cut, we have c(Q,P) +
c(S,P) + c(Q,R) + c(S,R)
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.
Slide 35
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).
Slide 36
Slide 37
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).
Slide 38
Proof case 2 Now, because (Y,~Y) is the minimum cut separating
between u and v, we can also say that c(Y,~Y)
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)]