引理: EK算法每次增广使$s$到所有顶点$vin V-{s,t}$的最短距离$d[v]$增大.
采用反证法, 假设存在一个点$vin V-{s,t}$, 使得$d'[v]< d[v]$.
取$v$为第一个使最短距离减小的点, 设增广后的图$G'$中路径$sleadsto u ightarrow v$为$s$到$v$的最短路
因此可以得到
$$d[u]=d[v]-1, d'[u]ge d[u]$$
那么显然边$(u,v) otin E$, 因为若$(u,v) in E$, 则有
$$d[v]le d[u]+1 le d'[u]+1 = d'[v]$$
与假设矛盾.
故EK算法一定是增加了流$f(v,u)$, 即边$(v,u)$在$G$的最短路上, 固有
$$d[v]=d[u]-1le d'[u]-1=d'[v]-2$$
与假设矛盾, 故引理成立.
定理: EK算法最多增广次数为$O(VE)$.
若增广路$p$的残留容量等于边$(u,v)$的残留容量, 则称边$(u,v)$是增广路$p$的关键边, 下面用引理证明每条边最多做关键边$frac{|V|}{2}-1$次.
对于关键边$(u,v)$, 由于$(u,v)$在最短路上, 有
$$d[v]=d[u]+1$$
而增广后, $(u,v)$将从$G$中消失, 重新出现的条件是$(v,u)$出现在增广路上.
则有
$$d'[u]=d'[v]+1$$
由引理知道
$$d'[v]ge d[v]$$
故有
$$d'[u]ge d[v]+1=d[u]+2$$
所以每次出现至少会使最短距离$+2$, 而其距离最大为$|V|-2$, 所以每条边最多做关键边$frac{|V|}{2}-1$次, 总的增广次数就为$O(VE)$.
所以采用BFS进行增广的话, EK算法将达到复杂度$O(VE^2)$