训练日记

2F算法包括两个步骤:标号,增流

2F算法描述:

(1)初始化f(e)=0,e∈E;//初始化

(2)给源点s标号(-,∞),其它顶点均未标号;

(3)依次选一个未标号的顶点,根据其方向进行标号,若当前标号的顶点为t,转(4),否则转入(6);(给一条路径标记)

(4)选择一条标号过的增流路径进行增流;

(5)转(2)

(6)这时得到的f就是最大容许流。

Edmonds-Karp修正算法

   在每一次都沿一条最短的增流路径增流。

Edmonds-Karp算法描述:

(1)对所有e∈E,有f(e)=0;//初始化

(2)给源点s标号(-,∞),其它顶点均未标号;

(3)按层次依次对可以标号的顶点进行标号,若当前标号的顶点为t,转(4),否则转入(6);(给可以标记的全部的点标记)

(4)选一条标号过的增流路径进行增流;

(5)转(2)

(6)这时得到的f就是最大容许流。

Dinic算法的特点是:

将顶点按其与源点s的最短距离分层。

如果说,2F算法采用DFS策略;那么,EK算法就是采用了BFS策略;而,Dinic算法则兼采两者。

Dinic分层算法描述:

(1)L0={s},i=0,R=V-L0;//分层初始化

(2)S={v|v∈R,且存在从Li某顶点到v的未饱和边};

(3)若S={},则网络流已达到最大,停止;

(4)i=i+1,Li=S,R=R-Li;

(5)若t∈S,则分层停止,否则令S={},转(2);

Dinic最大流算法:

(1)对所有e∈E,f(e)=0;//初始化

(2)对图进行分层;

(3)对图中增流路径增流;

(4)去掉图中饱和边,调整c(e)和f(e)值;

(5)转(2);



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值