Algorithm - Network Flow复习

network flow的应用:

1. bipartite matching problem。(employee和job的分配匹配问题)

    - 构建bipartite图,添加s,t。

    - 看问题中变量的意义,决定图中各边的capacity。(有点玄学)

    - 算max flow,用ford-fulkerson或者别的什么max flow算法。

2. minimum cut problem。(image segmentation问题)

    - 利用的是minimum cut = max flow

 

--------------------------------------------------------------------------

ford-fulkerson算法伪码:

Ford-Fulkerson  
  
    for <u,v> ∈ E  
  
        <u,v>.f = 0  
  
    while find a route from s to t in e  
  
        m = min(<u,v>.f, <u,v>  ∈ route)  
  
        for <u,v> ∈ route  
  
            if <u,v>  ∈ f  
  
                <u,v>.f = <u,v>.f + m  
  
            else  
  
                <v,u>.f = <v,u>.f - m 

 

cut(割)的容量(设cut<S,T>)=所有从S到T的edge的capacity的和

cut的flow = 所有从S到T的edge上的flow - 所有从T到S的edge上的flow

 

如何证明ford-fulkerson能得到max flow?(如何证明没有augmented path的时候就达到max flow了)

证明:将residual graph里所有所有源点s能reach到的node看作集合S,那么所有node的集合V减去集合S就是集合T=V-S,T就是所有源点s无法reach到的点,此时(S,T)就是一个割。那么对于所有跨cut<S,T>的边<u,v>必然有flow(<u,v>)=capacity(<u,v>),不然的话就说明在residual graph中u有路径可以连接到v,也就是说源点s可以reach到T中的v,这和T的定义矛盾。

 

MIT quiz题:(network flow是)

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/exams/MIT6_046JS15_quiz2sols.pdf

转载于:https://my.oschina.net/vegechick/blog/1584348

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值