I am studying for an algorithm design course, and can't understand this demonstration about how Dinitz’ algorithm computes a maximum flow in $O(m \sqrt{n})$ time.
This is what is written on the slides I am reading:
Theorem. [Even–Tarjan 1975] In simple unit-capacity networks, Dinitz’ algorithm computes a maximum flow in $O(m \sqrt{n})$ time.
Pf.
・Lemma 1. Each phase of normal augmentations takes $O(m)$ time.
・Lemma 2. After $\sqrt{n}$ phases, $val( f ) ≥ val( f *) – \sqrt{n}$.
・Lemma 3. After $≤ \sqrt{n}$ additional augmentations, flow is optimal.
I think I get the first lemma: normal augmentation phase takes up to $O(m)$ because this is the cost of generating a level graph $L_G$. However, I have not understood what exactly happens after the "normal" augmentation (in what does the "special" augmentation phase consist? How many "phases" are needed?)
I have no clue about how the values in the other two lemmas are brought up. Could someone help me understand it?
Here are the slides I am referring to, in particular the ones between 92-96
Thanks a lot