网络流

来源:互联网 发布:dev编程软件 编辑:程序博客网 时间:2024/06/07 02:39

这里写图片描述

这里写图片描述

这里写图片描述

第一步,计算可增加流量
设某一增广路径上的节点为(a1,a2,a3,a4,….,an)
如果(u,v)是正向边,则增加流量d = min{ c(ai,aj) - f(ai,aj) | j = i +1, i =1,2,3…,n-1}
如果是逆向边,则增加流量d = min{ f(ai, aj) | j = i +1, i =1,2,3…,n-1}
第二步,更新流量
如果(u,v)是正向边,则 f(u,v) = f(u,v) + d
是逆向边,则f(u,v) = f(u,v) - d
注意,如果是逆向边,就是减法,当前管道从中减去部分流量,而且,伴随着这部分减去的流量,必有另一部分管道的流量会增加。。而且,最后的总流量增加了d
结合上述算法,可以详细参阅下下列图示
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

0 0