网络流算法是我目前为止学习跨度最大的算法。。。。。。
从2019年8月了解到这个算法,中间经历的很长一段时间,近乎咕掉。
最开始时,增广路的概念都因为没有什么通俗的讲解而理解不了。后来又是反向边的问题。
机房大佬早就切掉许多题了我才想起来网络流。。。
我会尽量详细讲解自己遇到的问题的。
网络流:
概念我并不想扯太多,也很好理解:
————百度百科
性质解析:
第一条性质很好理解,就是一条水管最大流量为一个定值,超过这个定值水管就boooom。~
第二条斜对称性质对应的就是我一直理解不了的反向边。(待会讲)
第三条性质就是,除源点s和终点T之外其他的点进入的流量等于出去的流量,没法储存,很好理解。
最大流:
通俗点讲,从源点到终点所能在图上走过的最大总流量和。
举例:
这么一个图,最大流就为4:
其中红色的边表示最大流所用到的边,红色的数字表示这个边的实际流量。
由于某些边可能流量上限大,有些小,所以最大流只能被流量更小的边所限制,有些边的实际流量就达不到这条边的流量上限。
增广路概念:也就是我老是搞不懂的概念,。。?
假如算法是这样走的:
按照绿色路径一路走下去,如果我们找到一条从s到t的路径,并且这条路径上的流量可以扩充,我们就说这条路径是一条可增kuo广chong的路径。很明显上图这一条路径最小剩余容量为1,这条路径可以扩充大小为1的流量。
咕咕咕。