Chapter 4
Chapter 4
A separating set or a vertex cut of a graph G = (V, E) is a set S V such that G – S has more
than one component.
The connectivity of G, (G), is the minimum size of a vertex cut S or G – S has one vertex.
(G1) = 2
G1 is 2-connected and 1-connected.
d c
G1
Vertex cuts of G2 : {a, c, d}, {a, b, d}, {c, b, d}, {b, e, f}, {b,
d, e}, {b, d, f}, {a, b}, {b, c}, {d, e}, {d, f},
e
a {b, d}, {b}, {d}
b d
(G2) = 1
f G2 is 1-connected.
c
G2 G2 has cut-vertices {b} and {d}.
No matter how many vertices we remove from the complete graph, we never disconnect it, until
one vertex left, thus (Kn) = n − 1.
Connectivity 0 1 2 3 n–1 2 2
1-connected ✓ ✓ ✓ ✓ ✓ ✓
2-connected ✓ ✓ ✓ ✓ ✓
3-connected ✓ ✓
Edge cut and edge-connectivity
A disconnecting set of edges of a graph G = (V, E) is a set F E such that G – F has more than
one component.
Given disjoint (nonempty) sets S, T V for a graph G, denote [S, T] for the set of edges having
one endpoint in S and the other in T.
An edge cut of a graph G = (V, E) is an edge set of the form [S, S ] where S is a nonempty
proper subset of V and S = V – S. In other words, an edge cut is a minimal disconnecting set,
that is an edge cut does not contain any other edge cut as its proper subset.
a d a d f
f
c → c
b e b e
Some other edge cuts in this graph are {ad, ac, bc, be}, {ad, ac, bc}, {de, ce, be}, {df}.
The set {ad, cd, ce, de} is a disconnecting set but not an edge cut because its proper
subset {ad, cd, de} is an edge cut.
The graph has a cut-edge, namely {df} and its edge-connectivity is 1.
Example
Original graph
S
a
S
Theorem (Whitney’s)
Edge cut
Graph H :
Graph K5 :
Example
Graph G1 : a d
c f
b e
a d
Graph G2 :
Graph G3 : B1
B2 B4
Properties of blocks :
1. An edge of a cycle cannot itself be a block since it is in a larger subgraph with no cut-
vertex. Hence an edge is a block if and only if it is a cut-edge. The blocks of a tree are its
edges.
2. If a block has more than two vertices, then it is 2-connected. The blocks of a loopless
graph are its isolated vertices, its cut-edges and its maximal 2-connected subgraphs.
Proposition
Two blocks in a graph share at most one vertex.
Example
Graph G4 :
B2
B1
G4 consists of 6 blocks, 3 copies of K2 (B2, B3, B4),
one of K3 (B1), one subgraph which is neither a
cycle nor a complete graph (B5) and an vertex (B6) .
B3
B1 and B3 share a vertex, and so do B5 and B3. B2,
B5 B4 and B6 do not share any vertex with other
B6
• B4 blocks.
If G is a graph with at least one cut-vertex, at least two of the blocks of G contain exactly one
cut-vertex. These are called end-blocks.
Example
B1 and B5 are end-blocks of G4.
Graph G5 : a d
f
g
h
b c e
Blocks of G5 :
a d f
g
g
c e
i
b c e g h
End-blocks
Network Flow Problems
Consider a capacitated directed network or a capacitated digraph. Each arc/ edge has an arrow
indicating the permitted direction of flow and a weight which represents the capacity of that arc.
The capacity is the maximum amount of flow that can pass along that arc. A node/ vertex, S, is
called a source if all arcs containing S are directed away from S. A node, T, is called a sink if all
arcs containing T are directed towards T.
In a network flow problem, we are to find a flow with maximum value from source, S to sink, T.
Cut
A cut, in a network with source S and sink T, is a set of arcs whose removal separates the
network into two parts X and Y, where X contains at least S and Y contains at least T.
The capacity of a cut is the sum of the capacities of those arcs in the cut which are directed
from X to Y. When evaluating the capacity of a cut, only include the capacities of the arcs
flowing into the cut. Arcs which are cut, but whose direction flows out of the cut, contribute zero
to the capacity of the cut.
Example C2
C1 C3 D
A 8
C4 14 11 C5
4 6
3 C T
S
5
C5 15 7 16
9 E
B C2
C1 C3 C4
Cut Capacity
C1 : {SA, SB} 14 + 15 = 29
In cut C4, AB does not flow into the cut, so AB contributes nothing to the capacity of the cut.
Similarly, CD flows out of the cut C5 and hence contributes zero to the cut.
Example :
A 11 C
20 19
10 T
S 7 8
20
15
B 4
D
The diagram shows a capacitated directed network. The number on each arc represents the
capacity of that arc. Find all ST-cuts and the capacity of each of the cuts.
1 {SA, SB} 20 + 15 = 35
Note : The arcs in bold contribute zero to the cut since the arcs flow out of the cuts.
Flow
To show a flow through a network, assign a number, f(e) 0, to each arc so that it satisfies two
conditions.
1. The feasibility condition : the flow along each arc must not exceed the capacity of
that arc, i.e. 0 f(e) < c(e).
2. The conservation condition : on all nodes except source and sink nodes,
The total flow into a node = The total flow out of the node
If the arc contains a flow equal to its capacity we say that arc is saturated.
Often the directed network is drawn together with a feasible flow. Usually the flow is indicated by
circled numbers.
Example :
The zero flow – assigns flow 0 to each edge. It is a feasible flow with total flow = 0.
u 1 0 v
2 0
2 0
s 1 0 t
2 0 2 0
y
x 1 0
Example :
u 1 1 v
2 1
2 0
s 1 1 t
2 0 2 1
y
x 1 1
Feasible flow with total flow = 1. Arcs uv, vx and xy are saturated.
Example :
12 10 c
a
32 26 20 10
13 x
11 9 d 21 z
s t
18 y
31 10 5 4
8 8
b 14 12 e
The diagram shows a capacitated directed network. The number on each arc represents the
capacity of that arc. The numbers in circles represent an initial flow pattern.
a. State a saturated arc.
b. Find the values of x, y and z, explaining your reasoning.
c. State the value of the initial flow.
d. Write down the capacity of arc be and the current flow along the arc be.
e. Find the current flow along s-a-b-e-t.
Solution :
a. Arc et is a saturated arc, because the flow it contains is equal to its capacity.
e. Flow along sa = 26, flow along ab = 9, flow along be = 14, flow along et = 8
Flow along s-a-b-e-t = 8 (the minimum of the above flows)
Ford-Fulkerson Labelling Algorithm
Consider the zero flow as the initial feasible flow,
1. Draw two arrows on each arc :
• The ‘forward” arrow (the arrow in the same direction as the arc) is used to identify
the amount by which the flow along that arc can be increased. This is the spare
capacity.
• The ‘backward’ arrow is used to identify the amount by which the flow in the arc
could be reduced. It shows the value of the current flow in that arc but not the
direction.
2. Find a flow-augmenting path which starts at S and finishes at T. Use both forward and
backward arrows, as long as there is not a zero in the direction of the path.
3. Determine the smallest ‘forward’ number along the flow-augmenting path, f. Subtract f
from the number on each forward arrow and add f to the number on each backward
arrow in the path.
4. Repeat step 2 until there are no more flow-augmenting path.
Example :
A 11 C
20 19
10 T
S 7 8
20
15
B 4
D
A 11 C
20 0
0 19
0 0 T
10 0
S 7 8
0 0 20
15 0 0
B 4
D
A 0 C
9 11
11 8
0 0 T
10 11
S 7 8
0 0 20
15 0 0
B 4
D
Flow-augmenting path : S-A-D-T with minimum ‘forward’ number 9. Subtract 9 from the ‘forward’
arrows and add 9 to ‘backward’ arrows along the path. The updated flow pattern is as follows.
A 0 C
0 11
20 8
9 0 T
1 11
S 7 8
0 9 11
15 0 0
B 4
D
Now, SA is saturated. The next flow-augmenting path is S-B-A-D-T with minimum ‘forward’
number 1. Subtract 1 from the ‘forward’ arrows and add 1 to ‘backward’ arrows along the path.
The new flow pattern is as follows.
A 0 C
0 11
20 8
10 0 T
0 11
S 6 8
1 10 10
14 1 0
B 4
D
Flow-augmenting path : S-B-D-T with minimum ‘forward’ number 4. Subtract 4 from the ‘forward’
arrows and add 4 to ‘backward’ arrows along the path. The new flow pattern is as follows.
A 0 C
0 11
20 8
10 0 T
0 11
S 6 8
5 14 6
10 1 4
B 0
D
There is no further flow-augmenting path to find. Thus, the flow through the network has been
increased to its maximum. The final flow pattern is found by taking all the ‘backward’ numbers
on each arc.
A 11 C
20 11
10 T
S 1 0
14
5
B 4
D
The maximum flow value is 20 + 5 = 25 or 11 + 14 = 25.
Note : There are different flow-augmenting paths that can be taken in each iteration. For
example, we can start by taking S-B-D-T as the first flow-augmenting path. The final flow pattern
may be different, but the maximum flow value will be the same.
Example :
A 12 C
8 13
4 3 T
S
6
11
B 10
D
A 12 C
8 0
0 13
0 3 0 T
0 4
S
0 0 6
11 0
B 10
D
Flow-augmenting path : S-A-D-T with minimum ‘forward’ number 4. Subtract 4 from the ‘forward’
arrows and add 4 to ‘backward’ arrows along the path. The new flow pattern is as follows.
A 12 C
4 0
0 13
4 3 0 T
4 0
S
0 4 2
11 0
B 10
D
The next flow-augmenting path is S-A-C-T with minimum ‘forward’ number 4. Subtract 4 from
the ‘forward’ arrows and add 6 to ‘backward’ arrows along the path. The new flow pattern is as
follows.
A 8 C
0 4
0 9
4 3 4 T
8 0
S
0 4 2
11 0
B 10
D
The next flow-augmenting path is S-B-D-C-T with minimum ‘forward’ number 3. Subtract 3 from
the ‘forward’ arrows and add 3 to ‘backward’ arrows along the path. The updated flow pattern is
as follows.
A 8 C
0 4
3 6
4 0 7 T
8 0
S
3 4 2
8 3
B 7
D
Flow-augmenting path : S-B-D-T with minimum ‘forward’ number 2. Subtract 2 from the ‘forward’
arrows and add 2 to ‘backward’ arrows along the path. The new flow pattern is as follows.
A 8 C
0 4
3 6
4 0 7 T
8 0
S
5 6 0
6 5
B 5
D
For the next flow-augmenting path, we must start with SBD. But, both DC and DT are saturated
since the ‘forward’ numbers are both zero. The only exit is DA with a non-zero ‘forward’ number.
So, we take S-B-D-A-C-T as our flow-augmenting path with minimum ‘forward’ number 4.
Subtract 4 from the ‘forward’ arrows and add 4 to ‘backward’ arrows along the path. The
updated flow pattern is as follows.
Notice that the direction of the flow is from A to D and in this flow-augmenting path we are going
from D to A. This an example of a backflow.
A 4 C
0 8
3 2
0 0 11 T
8 4
S
9 6 0
2 9
B 1
D
There is no further flow-augmenting path to find. Thus, the flow through the network has been
increased to its maximum. The final flow pattern is found by taking all the ‘backward’ numbers
on each arc.
A 8 C
8 11
0 3 T
S
6
9
B 9
D
A 11 C
20 19
10 T
S 7 8
20
15
B 4
D
ST-cuts are
1 {SA, SB} 20 + 15 = 35
2 {SA, BA, BD} 20 + 7 + 4 = 31
with the maximum value of a feasible flow 25. Thus the minimum capacity of ST-cut equals the
maximum value of a feasible flow.