金华正睿集训8.1总结

今天讲了神奇的网络流,毫不意外,听证明听挂了。。。。

在这里插入图片描述

还是在写博客的时候再学习一下吧

1.定义:
  • 一个流网络 G = ( V , E ) G=(V,E) G=(V,E) 为一张满足以下条件的有向图

    i i i j j j的容量通常用 c [ i , j ] c[i,j] c[i,j]表示,流量则通常是 f [ i , j ] f[i,j] f[i,j]

    1.每一条边有一个非负容量,即对于任意 E E E中的 ( u , v ) (u,v) (u,v), 有 c ( u , v ) ≥ 0 c(u,v)\geq 0 c(u,v)0

    2.如果 G G G中存在边 ( u , v ) (u,v) (u,v) , 那么不存在 ( v , u ) (v,u) (v,u)。我们将图中不存在的边的容量定为 0 0 0

    3.图中含有两个特殊节点:源点 s s s 与汇点 t t t

    源点呢就是只出不进所以叫源点

    汇点呢就是只进不出所以叫汇点

  • 一个流可看做是一个从 V × V V\times V V×V R R R的映射,满足下面两条性质:

    1. 容量限制: 对于任意的 u u u, v v v 0 ≤ f ( u , v ) ≤ c ( u . v ) 0\leq f(u,v) \leq c(u.v) 0f(u,v)c(u.v)

    2. 流量守恒:对于任何非源汇的中间节点 u u u,我们有:

    ∑ v ∈ V f ( v , u ) = ∑ v ∈ V f ( u , v ) \sum_{v\in V}f(v,u)=\sum_{v\in V}f(u,v) vVf(v,u)=vVf(u,v)

2.最大流
  • 最大流问题,即是找出一个满足上述条件的 f f f,使得 ∑ v ∈ V f ( s , v ) \sum_{v\in V}f(s,v) vVf(s,v)被最大化

    简单点说就是你有一堆东西要从源点运往汇点,有向图中的一条边代表一条路,每条路有一定的限制(就是容量),求出每次最多运多少东西到汇点

  • 最大流问题 ⟶ \longrightarrow 带反向边的最大流问题

  • 一个流 f f f的流量 ∣ f ∣ |f| f定义为:
    ∣ f ∣ = ∑ v ∈ V f ( s , v ) − ∑ v ∈ V f ( v , s ) |f|=\sum_{v\in V} f(s,v)-\sum_{v\in V}f(v,s) f=vVf(s,v)vVf(v,s)

(由于在图 G G G中不存在反向边,因而在上面的讨论中只需要最大化前半部分。)

3. 最大流建模
  • 是否存在从 s s s t t t的可经过相同节点不经过相同边的两条路径?

  • 是否存在从 s s s t t t的不可经过除 s s s t t t外相同节点的两条路径?

  • 是否存在从 s s s t t t的不可经过除 s s s t t t外相同节点和相同边的两条路径?

4.最大流算法
  • 残量网络

  • 对于网络 G G G,其残量网络 G G G_ f f f G G G的差别在于每条边的边容量修改为 G G G中边容量减去当前流的该边流量。具体来说, c f ( u , v ) = c ( u , v ) − f ( u , v ) c_f(u,v)=c(u,v)-f(u,v) cf(u,v)=c(u,v)f(u,v)

    简单点说就是:残量网络=容量网络-流量网络

  • 另外,残量网络中还包含原图中所有边的反向边,容量等同于正向边在 f f f中当前流量,用于“反悔”时将流送回起点: c f ( v , u ) = f ( u , v ) c_f(v,u)=f(u,v) cf(v,u)=f(u,v)

  • 增广

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值