Graph Theory MATH20150
Graph Theory MATH20150
Graph Theory MATH20150
MATH20150
2
Contents
1 Basic notions 5
3 Eulerian graphs 23
4 Trees 27
5 Hamiltonian graphs 35
6 Graph isomorphisms 43
7 Bipartite graphs 45
8 Planar graphs 49
9 Networks 55
3
4 CONTENTS
Chapter 1
Basic notions
• V is non-empty;
From the definition, an edge cannot join a vertex to itself (because it would
then be of the form {p, p} = {p} which is a set with only one element).
Remark 1.3. What we call a graph is sometimes called a simple graph in texts
(so: check the terminology when you look at a book).
Example 1.4. 1. G = (V, E) with V = {1, 2, 3, 4, 5}, E = {{1, 2}, {1, 3}, {4, 5}}.
2. G = ({a}, ∅).
5
6 CHAPTER 1. BASIC NOTIONS
3.
The fact that the edges {1, 3} and {2, 4} intersect in the first picture has
no meaning. It is not always possible to avoid such intersections, see the
section on planar graphs.
Notation 1.5. We will usually simply denote the edge {p, q} by pq.
The following types of edges are excluded by definition:
1. A self-loop: An edge from a vertex to itself.
2. Parallel edges:
Vy
7
({1, 2, 3, 4}, {(1, 4), (1, 2), (3, 2), (3, 4), (4, 2)})
K1 : K2 : K3 :
K4 : K5 :
n(n−1)
Proposition 1.16. The size of Kn is 2 .
Proof. An edge in Kn is given by any 2 different
vertices. The number of ways
n
of picking 2 different vertices among n is = n(n−1)
2 .
2
W = v0 , e1 , v1 , e2 , . . . , v`−1 , e` , v`
1 2 3 4 3 5 6 is a walk in G.
Definition 1.28. 1. A trail is a walk in which no edge is repeated (but a
vertex could be repeated).
2. A path is a walk with no repeated vertices. A path is always a trail since
to repeat an edge you must repeat at least one vertex.
3. A circuit is a trail v0 v1 . . . v` where v0 = v` (and ` ≥ 3 because it is a
trail).
4. A cycle is a walk v0 v1 . . . v` with l ≥ 3, v0 = v` and v0 , . . . , v`−1 are all
different (so that no edge and no vertex is repeated; a cycle is a path that
is also a circuit).
Example 1.29. In the graph
is not connected.
Proposition 1.33. Let x, y be distinct vertices in a graph G. If there exists a
walk in G from x to y, then there exists a path in G from x to y.
Proof. Take W a walk from x to y of minimal length (i.e., with minimal number
of edges): W = (x = v0 )v1 v2 · · · vn (y = vn+1 ).
We check that W is a path: If not then we have vr = vs for some 0 ≤ r < s ≤
n + 1. If we remove the section vs vs+1 · · · vr−1 from W we get v0 · · · vs−1 (vr =
vs )vr+1 · · · vn+1 , which is also a walk from x to y, but is shorter than W , a
contradiction.
Proposition 1.34. Let G = (V, E) be a graph. There exist k ∈ N and subgraphs
G1 , . . . , Gk of G such that
1. G is the union of G1 , . . . , Gk , i.e., if Gi = (Vi , Ei ) then V = V1 ∪ · · · ∪ Vk
and E = E1 ∪ · · · ∪ Ek .
2. Each Gi is connected.
3. For every i 6= j, Gi and Gj have no vertex in common.
Example 1.35.
11
• If n > 1 (we assume that the result has been checked for graphs of order
< n).
Let v be a vertex of G and let
So each graph is the disjoint union of its components (see the previous ex-
ample).
G1 ∪ G2 = (V1 ∪ V2 , E1 ∪ E2 ).
For instance:
G1 ∪ E2 = (V1 , E1 ∪ E2 ).
12 CHAPTER 1. BASIC NOTIONS
For instance, if G1 is
G \ H = (V 0 , E 0 ), where
then G[V 0 ] is
13
then G \ {e1 , e2 } is
Graphic sequences,
adjacency matrix
3. (2, 3, 3, 4, 5, 6, 7) is not graphic (the graph would have 7 vertices and one
of them would have degree 7, which is impossible).
d0 = ( d1 , d2 , . . . , dn−dn − 1, . . . , dn−1 − 1)
| {z } | {z }
n − dn − 1 elements dn elements
can be empty
(if dn = n − 1)
15
16 CHAPTER 2. GRAPHIC SEQUENCES, ADJACENCY MATRIX
Example 2.4. 1.
apply Thm .2.3 make it non-decreasing
(0, 1, 1, 1, 2) −→ (0, 1, 0, 0) −→ (0, 0, 0, 1)
apply Thm. 2.3
−→ (0, 0, −1) not graphic
2.
apply Thm. 2.3 make it non-decreasing
(1, 1, 2, 2, 2, 4) −→ (1, 0, 1, 1, 1) −→ (0, 1, 1, 1, 1)
apply Thm. 2.3 make it non-decreasing
−→ (0, 1, 1, 0) −→ (0, 0, 1, 1) −→ (0, 0, 0) graphic:
If d(vj ) = d(vi ), we simply relabel the vertices and swap vi and vj (the
degree sequence is unchanged).
If d(vj ) < d(vi ): There is a vertex vk adjacent to vi but not to vj (and
vk 6= vn because vn is adjacent to vj ):
In this case we remove the edges vj vn and vi vk , then add the edges vj vk
and vi vn :
Doing this preserves the degree of all vertices, so the degree sequence
is unchanged, but now vn has one more neighbour in vn−dn , . . . , vn−1
(namely vi ).
Using the part “d0 graphic ⇒ d graphic” of the proof of theorem 2.3 (the
easy part), and starting from the graph
Example 2.6. 1.
(1,1,2,2,2,4)
↓ ↑ n = 6, dn = 4
(1,0,1,1,1)
↓ ↑
(0,1,1,1,1)
↓ ↑ n = 5, dn = 1
(0,1,1,0)
↓ ↑
(0,0,1,1)
↓ ↑ n = 4, dn = 1
(0,0,0) −→
2. Ursa major:
(1,2,2,2,2,2,3)
↓ ↑ n = 7, dn = 3
(1,2,2,1,1,1)
↓ ↑
(1,1,1,1,2,2)
↓ ↑ n = 6, dn = 2
(1,1,1,0,1)
↓ ↑
(0,1,1,1,1)
↓ ↑ n = 5, dn = 1
(0,1,1,0)
↓ ↑
(0,0,1,1)
↓ ↑ n = 4, dn = 1
(0,0,0) −→
The result we obtained here does not look like Ursa Major. Conclusion:
There can be different graphs with the same degree sequence.
A = (aij )i,j=1,...,n ,
where
Example 2.8. 1.
0 1 1 0
1 0 1 0
A=
.
1 1 0 1
0 0 1 0
20 CHAPTER 2. GRAPHIC SEQUENCES, ADJACENCY MATRIX
2.
1 2 0
A = 1 1 .
0
0 0 0
(k)
aij = the number of walks of length k from vi to vj .
Example 2.10. 1.
2 1 1 1
1 2 1 1
A2 =
.
1 1 3 0
1 1 0 1
There are 2 walks of length 2 from v1 to v1 , and one walk of length 2 from
v2 to v3 .
2.
3 2 2
A2 = 1 0 .
2
0 0 0
There are 3 walks of length 2 from v1 to v1 , there are 2 walks of length 2
from v1 to v3 .
21
(1) (k)
The number air arj is the number of walks of length k + 1 from vi to vj
(1)
that have vi vr as first step (indeed: air is the number of different edges
(k)
from vi to vr , and arj is the number of different walks of length k from
vr to vj ).
Pn (1) (k)
Therefore r=1 air arj is the number of all possible walks of length k + 1
from vi to vj .
22 CHAPTER 2. GRAPHIC SEQUENCES, ADJACENCY MATRIX
Chapter 3
Eulerian graphs
Has an Euler trail (exercise). It has even more than just one.
Theorem 3.3 (Euler 1736). A connected multigraph is Eulerian if and only if
every vertex has even degree.
Proof. Let G be the graph.
“⇒” We assume that G is Eulerian. Let C be an Euler circuit in G. In
traversing C, every time we “enter” a vertex by an edge, we “leave” it by
another edge, so this contributes 2 to the degree of the vertex (it is alos true for
the first and last edges: they contribute 2 to the degree of the starting vertex)
Since all the edges are in C and G is connected, every vertex appears in C,
and every edge. So each vertex has even degree.
“⇐” We assume that every vertex has even degree. Let W = v0 e0 v1 . . . ek−1 vk
be a longest walk in G with no repeated edge (but vertices can be repeated).
We will show that W is an Euler circuit. We first consider vk more closely:
1. Every edge adjacent to vk appears in W : Because otherwise we could use
an edge vk vk+1 not in W to a walk longer than W , a contradiction.
2. vk = v0 (so W is a closed walk):
v0 e0 v1 e1 v2 . . . vk−1 ek−1 vk
| {z }
we look at this part of W
23
24 CHAPTER 3. EULERIAN GRAPHS
C = vk f1 z1 f2 z2 . . . z` f`+1 w1 .
Trees
A forest:
27
28 CHAPTER 4. TREES
In any path, going from u to v via e = uv can be replaced by going around the
“other side” of the cycle.
Theorem 4.4. Let G be a graph of order n. Then the following are equivalent.
1. G is a tree.
2. G is connected and, whenever e is an edge in G, G \ {e} is not connected.
3. G contains no cycle and, whenever x and y are non-adjacent vertices of
G, G ∪ {xy} contains exactly one cycle.
4. G is connected and has n − 1 edges.
5. G contains no cycle and has n − 1 edges.
6. Whenever x and y are vertices in G, there is exactly one path from x to
y in G.
Proof. 1. ⇒ 2. Let e = xy be an edge of G wiht x, y vertices. Suppose that
G \ {e} is connected, and let xv1 . . . vk y be a path in G from x to y. Then
xv1 . . . vk yx is a cycle in G, contradiction.
2. ⇒ 1. We have to show that G contains no cycle. Suppose that v1 v2 . . . vk v1
is a cycle in G.
then
Definition 4.7. A weighted graph is a graph such that every edge has a positive
number, its weight, attached to it.
The weight of a graph is the sum of the weights of all its edges.
In the case of the problem above, the weight of the edge betwwe 2 villages
is the length of pipeline necessary to connec them. The problem then amounts
to finding a connected subgraph of miminum weight.
31
It has weight 17 and it is also a tree. There is in general more than one minimum
spanning graph (here for instance, you can try to find others).
To find a least weight spanning tree in a connected weighted graph, the use
the following:
Kruskal’s algorithm (1956)
Let G = (V, E) be a weighted connected graph of order n. The algorithm
proceeds as follows.
(i) {e1 , . . . , ek , ek+1 } does not contain a cycle (i.e., ek+1 does not form
a cycle withe other edges from {e1 , . . . , ek }.
(ii) w(ek+1 ) is as small as possible subject to (i).
Step 1: ac, Step 2: ac, cd, Step 2: ac, cd, ab, we stop. The result
is
Step 1: ab, Step 2: ab, de, Step 2: ab, de, ef , Step 2: ab, de, ef ,
cb, Step 2: ab, de, ef ,, cb, cd we stop. The result is
Hamiltonian graphs
2. A Hamiltonian cycle:
3. On a chessboard, can a knight visit every square exactly once and finish at
its starting point?
35
36 CHAPTER 5. HAMILTONIAN GRAPHS
In terms of graph theory: Let G = (V, E) where V is the set of all sqaures
of the chessboard, and there is an edge between two vertices if we can go
from one to the other by a knight move.
A solution to this problam is a Hamiltonian cycle. Observe that there are
several different solutions to this problem.
5.
ω(G \ S) ≤ |S|.
Theorem 5.6 (Bondy, Chvátal, 1972). Let G be a graph of order n and let
u, v be any non-adjacent vertices of G such that d(u) + d(v) ≥ n. Then G is
Hamiltonian if and only if G ∪ {uv} is Hamiltonian.
Proof. “⇒” Let C be a Hamilton cycle in G. Then C is also a Hamilton cycle
in G ∪ {uv}.
“⇐” Suppose that G is not Hamiltonian. Then any Hamilton cycle in G ∪
{uv} must include the edge uv (otherwise it would be a Hamilton cycle in G).
38 CHAPTER 5. HAMILTONIAN GRAPHS
Removing the edge uv, we get a path from u to v in G that contains every
vertex exactly once (a Hamiltonian path). Let
v1 v2 . . . vn−1 vn
|{z} |{z}
=u =v
be this path.
If v1 is adjacent to vi , then vn cannot be adjacent to vi−1 , because otherwise
2.
We must show that c(G) does not depend on the order in which the edges
are added to G (otherwise we could have several possible c(G) for a given graph
G).
Lemma 5.9. c(G) does not depend on the order in which we add the vertices.
39
Then G is Hamiltonian.
otherwise u and v would be connected in c(G). Thus 2d0 (u) ≤ d0 (u) + d0 (v) < n
and d0 (u) < n/2.
40 CHAPTER 5. HAMILTONIAN GRAPHS
We show that k does not satify conditions (i) and (ii), thus reaching a contra-
diction:
For any vertex x, let N (x) be the set of vertices different from x that are
not adjacent to x in c(G). Then
Let w ∈ N (v). Then d0 (w) led0 (u) (otherwise d0 (w) + d0 (v) > d0 (u) + d0 (v),
contradicting (5.1)). Similarly, if x ∈ N (u) we have d0 (x) ≤ d0 (v), so for every
x ∈ N (u) ∪ {u} we have
d0 (x) ≤ d0 (v) (5.5)
(recall that d0 (u) ≤ d0 (v)).
By (5.2) we have d0 (u) < n − d0 (v), so d0 (u) ≤ n − d0 (v) − 1 = |N (v)| i.e.,
k ≤ |N (v)|, we have at least k vertices in N (v).
Consider now a vertex w ∈ N (v). We know that d0 (w) ≤ d0 (u) = k, so we
have at least k vertices in c(G) with degree at most k, and thus in the degree
sequence of c(G) at least d01 , . . . , d0k are at most k. In particular
dk ≤ d0k ≤ k. (5.6)
Using (5.3) with (5.6) we get dk < n/2, so condition (i) is not true.
With (5.2) we obtain d0 (v) < n − d0 (u) = n − k, and by (5.5) d0 (x) < n − k
for every x ∈ N (u) ∪ {u}.
Graph isomorphisms
43
44 CHAPTER 6. GRAPH ISOMORPHISMS
2. In fact, if G1 ∼
= G2 , every graph-theoretic property of G1 can be “trans-
lated” into the corresponding property of G2 , using f .
3. If f is an isomorphism from G1 to G2 , then f −1 is an isomorphism from
G2 to G1 .
Example 6.4. 1.
Here G1 ∼
= G2 . A possible isomorphim is
2. The graphs
are not isomorphic: Suppose for the sake of contradiction that they are,
and let f be the isomorphism. Since d(u) = d(f (u)) we must have d(f (1)) =
d(1) = 3, d(f (2)) = d(2) = 2, d(f (3)) = 2, d(f (4)) = 3, d(f (5)) = 3,
d(f (6)) = 2, d(f (7)) = 1. Since 7 is the only vertex of degree 1 in G2 , we
must have f (7) = 7. 47 is an edge in G1 , so f (4)f (7) = f (4)7 is an edge
in G2 . So f (4) = 4.
5 is adjacent to 4, so f (5) is adjacent to f (4) = 4, so f (5) = 5 or f (5) = 3.
But dG1 (5) = 3 and dG2 (5) = 2, dG2 (3) = 2, so we cannot have f (5) = 5
or f (5) = 3. So G1 and G2 are not isomorphic.
Bipartite graphs
45
46 CHAPTER 7. BIPARTITE GRAPHS
The edges in xT y are all in T so, by case 1, the vertices in xT y alternate between
X and Y . Since xT y∪{e} is even by hypothesis, we get that xT y has odd length,
and thus that x and y cannot be both in X or both in Y .
48 CHAPTER 7. BIPARTITE GRAPHS
Chapter 8
Planar graphs
Definition 8.1. A graph is called planar if it can be drawn in the plane so that
edges intersect only at vertices to which they are incident.
Example 8.2. Different representations of K4 :
49
50 CHAPTER 8. PLANAR GRAPHS
Proposition 8.8. A connected graph is a tree if and only if every edge is a cut
edge.
Definition 8.10. The degree d(f ) of a face f is the number of edges incident
with f , where each edge entirely inside f (called a pendant edge) is counted
twice.
Why counted twice? Because we count the sides of the edge that are in contact
with f (see the proof of Proposition 8.12), in case of a pendant edge, both sides
of the edge in contact with f .
51
Example 8.11.
Proposition 8.12. Let F be the set of faces of a planar graph G = (V, E).
Then X
d(f ) = 2|E|.
f ∈F
Observe that we can have different planar representations of the same graph,
with different degree sequences of the face:
|V | − |E| + |F | = 2.
52 CHAPTER 8. PLANAR GRAPHS
Example 8.14.
|V | − |E| + |F | = 4 − 6 + 4 = 2.
Proof of Theorem 8.13. By induction on |E|.
• If |E| = 0, then G is
and |V | − |E| + |F | = 1 + 1 = 2.
• If |E| = 1, then G is
and |V | − |E| + |F | = 2 − 1 + 1 = 2.
• If |E| > 1. We consider two cases.
Case 1: If G is a tree. Then |E| = |V | − 1 and |F | = 1 since a tree has only
one face (we admit this: a tree has only the exterior face since to have an
interior face it would need to have a cycle). So |V | − |E| + |F | = 2.
Case 2: If G is not a tree. Then (since G is connected) G contains a cycle
C. Let e be an edge in C. Since e is not a cut edge, G \ {e} is connected,
and has of course |E| − 1 edges.
Since e is on a cycle, it separates 2 faces (we admit this), so removing e
merges these two faces, and thus G \ {e} has |F | − 1 faces.
By induction on |E|, the result is true for the graph G \ {e} i.e., |V | −
(|E| − 1) + (|F | + 1) = 2 i.e., |V | − |E| + |F | = 2.
contradicting
P that |E| ≥ 3). P
So f ∈F d(f ) ≥ 3 · |F |. But we know that f ∈F = 2|E|, so 2|E| ≥ 3|F |
i.e., |F | ≤ 23 |E|. Using now Euler’s formula, we obtain
2 1
2 = |V | − |E| + |F | ≤ |V | − |E| + |E| = |V | − |E|.
3 3
53
Corollary 8.16. Let G = (V, E) be a planar graph. Then some vertex of G has
degree at most 5.
12
i.e., nd ≤ 6n − 12 so d ≤ 6 − n and thus d ≤ 5.
Recall that K5 is
H is a subdivision of K4 .
The next two lemmas are obvious.
Lemma 8.22. Let G be a graph. G is planar if and only if every subdivision
of G is planar if and only if one of the subdivisions of G is planar.
Lemma 8.23. Let G be a graph. G is planar if and only if every subgraph of
G is planar.
(Recall that G is a subgraph of G.)
Theorem 8.25 (Kuratowski, 1930). A graph is planar if and only if it does not
contain a K-subgraph.
No proof (too long).
Chapter 9
Networks
Stuttgart 1968: A new road is built. Consequence: The traffic gets worse until
the road is closed.
New York 1990: 42nd street is closed. Consequence: The traffic improves.
(Braess paradox)
We are not quite going to look into this, because it is also caused by drivers
trying to maximise apparent immediate gain rather than thinking about longer-
term consequences, but it illustrates why looking at how “things” can move in
a network is interesting.
Example 9.2.
55
56 CHAPTER 9. NETWORKS
Intuitively, the capacity represents how much can travel along an arc.
Definition 9.12. Let N = (V, E, ψ, S, T ) be a network and let c be a capacity
on N . A flow on N is a function f : E → R+ ∪ {0} such that
1. 0 ≤ f (e) ≤ c(e) for every e ∈ E.
2. For every intermediate vertex v, the in-flow:
def X
f+ (v) = f (e)
e∈E,ψ(e)=(u,v)
We often write
to indicate both the capacity and the flow at the same time on the drawing. (So,
for instance, 2/5 is not a fraction. It just means that the arc has capacity 5 and
that the flow on it is 2.)
58 CHAPTER 9. NETWORKS
Question: For a given network and capacity, what is the “largest” possible
flow, and how to find it?
Examples of applications: Electric circuits, pipelines, transportation sys-
tems, etc.
Proof. We have
X X X X
(f+ (w) − f− (w)) = (f+ (w) − f− (w)) + f+ (t) − f− (s).
w∈V w∈I t∈T s∈S
| {z }
=0 by def of flow
P
So the result is true if we show that w∈V (f+ (w) − f− (w)) = 0.
Consider an arc e ∈ E:
P
In the sum w∈V (f+ (w) − f− (w)) the number f (e) appearsP twice: Once as
f (e) in f+ (v)−f− (v), once as −f (e) in f+ (u)−f− (u). Therefore w∈V (f+ (w)−
f− (w)) = 0.
Proof. Exercise.
P P
Remark 9.17. In general, v∈A f− (v) 6= f− (A) and v∈A f+ (v) 6= f+ (A).
Try it for instance on
v(f ) = f− (S) = f+ (T ).
1. V = VS ∪ VT .
2. VS ∩ VT = ∅ (so VS = V \ VT and VT = V \ VS ).
3. S ⊆ VS .
4. T ⊆ VT .
Example 9.20.
The green (VS , VT ) and the red (VS , VT ) are both cuts.
60 CHAPTER 9. NETWORKS
It is called a cut because it cuts N into two parts: one that contains S and
the other that contains T .
Example 9.22.
Here c(VS , VT ) = 2 + 2 + 3 = 7.
• f -zero if f (e) = 0;
1. v(f ) ≤ c(VS , VT );
= c(VS , VT ).
Since f+ (VS ) ≥ 0 we obtain v(f ) ≤ c(VS , VT ).
2. To have v(f ) = c(VS , VT ) we must have
• f− (VS ) = c(VS , VT ), so every arc from VS to VT must be f -saturated.
• f+ (VS ) = 0, so every arc from VT to VS must be f -zero.
Intuitively, the idea is that, in case i(P ) > 0, we might be able to add i(P ) to
f on the arcs in P , and thus get a new flow with higher value (cf. Theorem ii.).
We say that P is f -saturated if i(P ) = 0 and f -unsaturated if i(P ) > 0. An
f -incrementing path is an f -unsaturated path from some x ∈ S to some y ∈ T
that only contains x and y as elements of S ∪ T .
62 CHAPTER 9. NETWORKS
Then f˜ is a flow and v(f˜) = v(f ) + i(P ). The flow f˜ is called the revised flow
based on P .
Proof. (1) The condition 0 ≤ f˜(a) ≤ c(a) follows from the definition of i.
(2) The condition a∈E, ψ(a)=(u,v) f˜(a) = a∈E, ψ(a)=(v,u) f˜(a) (for v ∈ I):
P P
Then a adds i(P ) to the left hand side and b adds i(P ) to the right hand
side. The equality is preseved.
Then a adds i(P ) to the left hand side and b adds −i(P ) to the left hand
side. The equality is preserved.
and
VT = V \ VS .
Since N has no f -incrementing path, no element of T is in VS , so T ⊆ VT and
(VS , VT ) is a cut in N .
Fact: (i) Each arc from VS to VT is f -saturated.
(ii) Each arc from VT to VS is f -zero.
Proof of (i): Let a be an arc from u ∈ VS to v ∈ VT . Since u ∈ VS there is an
f -unsaturated path from some x ∈ S to u. If a is f -unsaturated, then this path
can be extended by a and would give an f -unsaturated path from x to v. So
we would have v ∈ VS , contradiction.
Proof of (ii): Similar, left as an exercise.
Using the Fact and Theorem 9.25, we obtain v(f ) = c(VS , VT ), and by
Corollary 9.27 f is a maximum flow (and (VS , VT ) is a minimum cut).
Remark 9.30. (VS , V \ VS ) with VS as in the proof is a minimal cut.
This proof gives us the following: If we start with a maximum flow f , we
get a minimal cut (VS , VT ) such that v(f ) = c(VS , VT ). Therefore
Theorem 9.31 (Max-flow, min-cut, Ford-Fulkerson 1956). In any network, the
value of a maximum flow is equal to the capacity of a minimum cut.
The Ford-Fulkerson algorithm.
It is easier to state using the following definition.
Definition 9.32. Let N be a network and let f be a flow in N . The residual
network of f is the network with:
• Same vertices, source and sink as N ;
• Every arc e ∈ E is given the new capacity
The algorithm:
3. The final flow you obtained (before the residual network in which you
could not find a path) is a maximum flow.
4. If at the end you wish to find a minimum cut, proceed as follows (cf.
Remark 9.30): Working in the final residual network (the one where you
could not find a path), put in the set VS all the vertices of the source,
and all the vertices that you can reach from a path starting in the source.
Take the set of all remaining vertices for VT (since you could not find a
path from the source to the sink, VT contains at least the sink).
Then (VS , VT ) is a minimum cut (again, see Remark 9.30).
(2)(a)
(2)(b) Take P = sat (I do not give a name to the edges in P since there are
no parallel edges, so no choice).
(2)(c) d = 3.
(2)(d)
(new f )
(2)(a)
(new f )
66 CHAPTER 9. NETWORKS
(2)(a) Nf :