最大流问题与算法分析

最大流问题与算法分析

算法设计技巧:
-网络流
近似算法:
-近似算法示例
-多项式时间近似格式
-近似的硬度结果
随机化:
-随机算法示例
-概率复杂性类

定义:流动网络
流网络是有向图G=(V,E),其中每条边都是e∈ E有一个容量Ce≥ 0,
单源顶点s∈ V没有引入边,单汇顶点t∈ V没有向外的边。
最大流问题
输入:A流量网络:G=(V,E),s,t∈ V,{Ce:e∈ E}
目标:找到最大可能值的s-t流
应用(在实践中):
网络 : 电路、流体连接管道流体,交通,化学位点结合能量, 金融股
顶点: 门,登记,连接,机场,街
应用(许多其他图形问题的基础)
二部匹配,最小切割,多种商品流动
一些假设
每个节点至少有一条边.所有的电容都是整数。
一种最大流算法
设G=(V,E),s,t,{ce}是网络,f是G中的流。
假设路径:假设路径是从s到t的有向路径P使得P上的每一条边e都有f(e)<c(e)。
瓶颈值。扩充路径P的瓶颈值是c(e)− f(e)覆盖P上的所有边的最小值。
沿着路径增加流量。给定一条带P的增广路径瓶颈值b,我们可以找到一个f’定义为f’(e) =f(e)+b
一种最大流算法
贪婪算法。
从f(e)=0开始计算所有边e∈ E
找到一条增广路径P。
增加沿P方向的流量。
重复,直到你卡住为止。
福特-富尔克森算法
推动流动的高层次理念:
用剩余容量推动边缘,向后推已经在输送气流的边缘,使其转向另一个方向

最大流最小割定理:
最大流量的值等于最小切割的值。
我们同时证明了这两个定理,证明了对于f以下陈述相当:
(i) 存在一个切口(a,B),使得v(f)=cap(a,B)。
(ii)流量f为最大流量。
(iii)不存在相对于f的增广路径。
(一)⇒ (ii)这是弱对偶引理的推论。
(二)⇒ (iii)我们给出了相反的结论:如果存在一条增广路径,然后我们可以提高f。

QA
通用福特-富尔克森算法是输入大小的多项式吗?
不。如果最大容量是C,那么算法可以进行C次迭代。
这个例子可以扩展到产生指数数量的增强。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值