- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预流推进算法.pdf
15.082 和6.855J
2003年3月11 日
最大流3
预流推进算法
(Preflow-Push Algorithm)
1
增广路径回顾
在每次迭代中:维持一个流x
令G(x) 是剩余网络
在每次迭代中,在G(x)中找到一条从s到t 的路径
在最短增广路径算法中,我们保持距离标号d( ),我们
在G(x)中沿着最短路径发送流.
2
预流(preflows)
在每个中间状态,我们允许到达结点的流大于离开结点
的流(除了s 以外)
预流(preflows) 是函数:x: A →R 受限于0 ≤x ≤u 且
e(i) = Σ x - Σ x ≥0,
j ∈N ji j ∈N ij
对于所有的i ∈N –{s, t}.
例如,e(i)= 在i的超额= 到结点i的净超额流. 超额要求是
非负的.
3
可行的预流
在每个结点j ≠s, t 的超额e(j) 是流入的流减去流出的流.
注释:总的超额=从s 流出的流减去流入t 的流.
4
活动结点
带有正的超额的结点称为活动的.
预流推进算法(Preflow push algorithm) 试图把流从活动
结点推向漏结点,这依赖于d( ).
5
距离标号回顾
距离标号d( ) 对G(x)是有效的,如果
i. d(t) = 0
ii. d(i) ≤d(j) + 1 对所有的(i,j) ∈G(x)
定义弧(i,j) 是可进入的,如果rij 0 且d(i) = d(j) + 1.
引理令d( )是有效距离标号. 那么d(i) 是在剩余网络中
从i到t 在距离上的下界.
6
推进/重标号,基本子例程
假设我们已经选择了一个活动结点i.
Procedure Push/Relabel(i)
begin
if 网络包含了可进入弧(i,j) 那么
从i推进δ: = min{ e(i), rij} 单位流到j;
else 用min{d(j) + 1 : (i,j) ∈A(i) 且r 0} 替换d(i)
ij
end;
7
使用当前弧推进
尾 头 剩余容量 可进入?
假设结点4是活动的,
且有超额.
使用“当前弧”每次扫描在
文档评论(0)