先看这幅图。我们要求最小流
看上面建的图不要看残余网络。。。此时流是从ss 到tt流量200,这个是可行流
ss->2->t->s->1-> tt的顺序
建图的要点是若由于可行流的原因1点需要多流出200流到3所以1到tt建边200流,这样导致原图会有多的200流到1所以和1刚才多流出的流达到了流量平衡
2同理
这样T到S的最大流是100 这样保证有下限的最小流是(200-100)这个流已经是最小的了因为他最多退100流啊!!!
理解的关键是流量平衡,而反向边就是流量平衡的关键,正是因为有反向边所以你才能在保证流量平衡的时候扩流和推流....
至于残余网络中我为什么省略一些边是因为
1.1点到3点 3点到2点由于下限的原因已经满流无用了。。。
2.与ss tt相连的边本来就不属于原图,上限为无穷的边也是,这些边只是一个推动作用第二个图实际上的样子是s->1->3->t流量200
为什么退流是正确的?
1.在第二个图中我们建图的时候已将原图改变,因为要满足最小流量限制。然后加一些边搞流,这样我们可以不看加的那些边里的流只用看原图边上的流。
总之就是你把添加的边去掉把建图时省略的下限流补上再看看(我操。。。讲不清楚。。。。)这个流才是真正原图上的可行流。
2.然后我退流的时候建的图是把下限减掉了,(在真正的原图基础上),这样在反向边的帮助下退流有流量平衡且保持了下界。实在还不明白看第二个大佬写的吧!!!!!
嗯,我只是总结一下感觉就这么多。(其实很简单啦。。。以前被第一个大佬搞得稀里糊涂(但第一个大佬是基础),看到第二个大佬写的才总算明白了..)
以下这两个大佬写的有点多,让人看着晕,不过很详细.
http://www.cnblogs.com/kane0526/archive/2013/04/05/3001108.html 大佬图画错了。。。。但是瑕不掩瑜
http://www.cnblogs.com/liu-runda/p/6262832.html 大佬关于最小流的分析写的蛮好。。