码迷,mamicode.com
首页 > 其他好文 > 详细

算法9-4:最大流算法复杂度分析

时间:2014-06-28 08:27:13      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:图论   算法   最大流   

前面一节介绍了Ford-Fulkerson算法。那么这个算法是否一定能够在有限步骤内结束?要多少步骤呢?


这个问题的答案是,该算法确实能够在有限步骤之内结束,但是至于需要多少步骤,就要仔细分析。


为了分析问题,需要假定图中所有边的容量都是整数。但是有个严重的问题,比如下图中,如果使用Ford-Fulkerson算法,需要迭代200次才能结束。


首先将所有边的容量都初始化为0。


bubuko.com,布布扣


第一次迭代和第二次迭代之后,两条边各增加了1。


bubuko.com,布布扣


bubuko.com,布布扣


到最后200次迭代之后整个算法才结束。


bubuko.com,布布扣


这还不算最坏的情况。因为整数最多可以取值大约21亿,那样可能就要迭代21亿次,算法的效率非常差。不过好在这种问题的解决办法还是比较简单的,因为每次选择路径的时候可以选择最宽的路径,这样迭代次数就少了很多。


从这个例子可以看出算法的效率跟路径的选择方式有关。下表总结了路径的不同选择方式对算法复杂度造成的影响。

  • 最短路径,1/2 EV

  • 最宽路径,E ln(EU)

  • 随机路径,E U

  • DFS路径,E U

其中U代表的是整数的最大取值范围。

算法9-4:最大流算法复杂度分析,布布扣,bubuko.com

算法9-4:最大流算法复杂度分析

标签:图论   算法   最大流   

原文地址:http://blog.csdn.net/caipeichao2/article/details/35305623

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!