MTAT.03.286: Advanced Methods in Algorithms
University of Tartu
Homework 2
Due date: March 29, 2017
It is possible to collect up to 110 points in this homework.
1. Find a maximum flow between s and t in the following network by using Dinitz algorithm:
2
a
c
10
5
2
s
4
t
3
2
d
b
5
Demonstrate the main steps in the algorithm. Show all minimum cuts. How many different
minimum cuts can you find?
2. Let N (G(V, E), s, t, c) be a flow network. Consider two sets of vertices S1 and S2 , where
{s} ⊆ S1 ⊆ V \ {t} and {s} ⊆ S2 ⊆ V \ {t} .
It is known that both (S1 : S 1 ) and (S2 : S 2 ) are minimum cuts in N . Define sets of vertices
T1 = S1 ∪ S2 and T2 = S1 ∩ S2 . Prove that both (T1 : T 1 ) and (T2 : T 2 ) are minimum cuts
too.
3. Let N (G(V, E), s, t, c) be a flow network, where G is a finite directed graph, and c : E → R+
is a capacity function. For any two vertices x, y ∈ V, denote by Fx,y the maximum flow in N
when x is the source and y is the sink. Prove that for all vertices u, v, w ∈ V,
Fu,v ≥ min{Fu,w , Fw,v } .
4. Let N (G(V, E), s, t, c) be a flow network, where s is a source, t is a sink, c : E → Q+ is a
positive rational capacity function.
(a) Propose an efficient algorithm that, given an edge e ∈ E, c(e) > 0, decides whether e
belongs to all minimum cuts between s and t in G.
(b) Propose an eficient algorithm that, given an edge e ∈ E, c(e) > 0, decides whether e
belongs to some minimum cut between s and t in G.
In both parts of the question, prove the correctness of your solution and analyze its complexity.
2
© Copyright 2026 Paperzz