金华正睿集训8.1总结

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

在这里插入图片描述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 对于网络GGG,其残量网络GGG_fffGGG的差别在于每条边的边容量修改为GGG中边容量减去当前流的该边流量。具体来说,cf(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)

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

  • 另外,残量网络中还包含原图中所有边的反向边,容量等同于正向边在fff中当前流量,用于“反悔”时将流送回起点:cf(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、付费专栏及课程。

余额充值