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
after $\sqrt{n}$ iterations, the length of the shortest augmenting path is at least $\sqrt{n}$
. I understand that there will be a level h with up to $\sqrt{n}$ verticies, and a level h+1 with more than $\sqrt{n}$ verticies. But I don't get why the number of iterations has to be $\sqrt{n}$. $\endgroup$