网络流中-反向边的作用

今天看了一下午网络流,其中有一点很困惑我,网络流中的反射弧到底是什么?为什么存在?看了几篇博客,有一点自己的理解,但也有些困惑,先记录下来。

首先,看下面这个例子,广搜最先找到增广路经:1 2 4 6 ,结果为10,如果没有反向边:那么最终结果就是10,而答案明显不是,这显然是算法上的缺陷。我的理解是:一条增广路线的源点和汇点都已经固定,即总体方向是不可变得,所以增广路线中至少有一条边是正方向(定义流向是正方向的),当然最后流向汇点,肯定也是正方向。观察图会发现,一些路径是关键路径,这些路径连接多条分支,而一旦关键路径被占用,导致其他路径会被破坏,这也是算法的缺陷的原因所在,使用DFS深搜,不会出现这种结果,但是时间一定不允许。为解决这个缺陷,就想到使用一个反向边来修改算法的缺陷。比如: 在2节点10权重,在4节点同样的10权重,已经从2到4有增广路线,如果又存在4到2的增广路线,即表示2到4,4到2这个路径是多余的。它们可以交换路径(这个情况是相等,可以交换,不等的时候是分流,思想是一样)。

网络流中-反向边的作用_第1张图片

参考博客 ,还有图片。

你可能感兴趣的:(图论)