网络流

news/2025/12/7 17:06:34/文章来源:https://www.cnblogs.com/ovida/p/19318400

网络流 Network flow

flowchart LRS(Source)v1([V1])v2([V2])v3([V3])v4([V4])t(sink)S -->|4| v1S -->|2| v2v1 -->|1| v2v2 -->|2| v4v1 -->|4| v4v1 -->|2| v3v4-->|3|tv3-->|3|t

有向有权图,Source为起点,Sink为终点。

阻塞流 blocking flow

flowchart LRS a@-->|2/2| v1v1 b@-->|1/1| v2S -->|0/2| v2v1 c@-->|1/2|Tv2 d@-->|1/1|Ta@{ animation: fast }b@{ animation: slow }c@{ animation: slow }d@{ animation: slow }

无法让更多的水流过。

如何找到一种阻塞流方案

Residual (空闲量) Graph (图)

空闲量=管道最大流量-实际流量;

  1. 随便找一条从起点到终点的路径。
  2. 计算该路径可通过的最大流量,更新空闲量。
  3. 重复,若找不到路径就结束。
flowchart LRS(Source)v1([V1])v2([V2])v3([V3])v4([V4])t(sink)S ==>|4-3=1| v1S -->|2| v2v1 -->|1| v2v2 -->|2| v4v1 ==>|4-3=1| v4v1 -->|2| v3v4==>|3-3=0|tv3-->|3|t
flowchart LRS(Source)v1([V1])v2([V2])v3([V3])v4([V4])t(sink)S ==>|1-1=0| v1S -->|2| v2v1 -->|1| v2v2 -->|2| v4v1 -->|1| v4v1 ==>|2-1=1| v3v4 -.-> tv3==>|3-1=2|t

没有从起点到终点的路径,找到阻塞流

最大流 Maximum flow

将边看成一些水管,水管有最大流量限制。从起点注水,求网络能承载的最大流量,即注水口和出水口的最大流量,每根管道的流量不能超过其最大流量。

Ford-Fulkerson Algorithm

  1. 随便找一条从起点到终点的路径。
flowchart LRS(Source)v1([V1])v2([V2])v3([V3])v4([V4])t(sink)S a@==> |4-3=1| v1S --> |2| v2v1 -->|1| v2v2 -->|2| v4v1 b@==>|4-3=1| v4v1 -->|2| v3v4 c@==>|3-3=0|tv3-->|3|ta@{ animation: fast }b@{ animation: fast }c@{ animation: fast }
  1. 该路径可通过最大流量为3,更新空闲量。

  2. 添加反向路径

flowchart LRS(Source)v1([V1])v2([V2])v4([V4])v3([V3])t(sink)S -->|1| v1S -->|2| v2v1 -->|1| v2v2 -->|2| v4v1 -->|1| v4v1 -->|2| v3v4 ~~~tt a@-.->|3|v4v4 b@-.->|3|v1v1 c@-.->|3|Sv3 -->|3|ta@{ animation: slow }b@{ animation: slow }c@{ animation: slow }
  1. 重复第一步,找一条从起点到终点的路径。
flowchart LRS(Source)v1([V1])v2([V2])v4([V4])v3([V3])t(sink)S -->|1| v1S a@==>|2| v2v1 -->|1| v2v2 b@==>|2| v4v1 -->|1| v4v1 d@==>|2| v3v4 ~~~tt -.->|3|v4v4 c@-.->|3|v1v1 -.->|3|Sv3 e@==>|3|ta@{ animation: fast }b@{ animation: fast }c@{ animation: fast }d@{ animation: fast }e@{ animation: fast }
  1. 最大流量为2,更新空闲量。
flowchart LRS(Source)v1([V1])v2([V2])v4([V4])v3([V3])t(sink)S -->|1| v1S ~~~ v2v1 -->|1| v2v2 ~~~ v4v1 -->|1| v4v1 ~~~ v3v4 ~~~ tt -.->|3|v4v4 -.->|1|v1v1 -.->|3|Sv3 -->|1|t
  1. 添加反向边,合并方向相同的边。
flowchart LRS(Source)v1([V1])v2([V2])v4([V4])v3([V3])t(sink)S -->|1| v1v1 -->|1| v2v1 c@--->|3| v4t -.->|3|v4v4 -.->|1|v1v1 -.->|3|Sv3 -->|1|tv2 a@-.->|2| Sv4 b@-.->|2| v2v3 d@-.->|2| v1t e@-.->|2| v3a@{ animation: slow }b@{ animation: slow }c@{ animation: fast }d@{ animation: slow }e@{ animation: slow }
  1. 找不到从起点到终点的路径,结束循环、

删除反向路径

flowchart LRS(Source) -->|1| v1([V1])S ~~~ v2([V2])v1 --> |1| v2v2 ~~~ v4v1 -->|3| v4([V4])v1 ~~~ v3([V3])v4~~~t(Sink)v3-->|1|t

计算流量

flowchart LRS(Source)v1([V1])v2([V2])v3([V3])v4([V4])t(sink)S -->|3| v1S -->|2| v2v1 -.-> v2v2 -->|2| v4v1 -->|1| v4v1 -->|2| v3v4-->|3|tv3-->|2|t

算法效率

Ford-Fulkerson Algorithm由于选择路径时的不确定性在一些情况下,速度非常慢。

举例:

flowchart LRS -->|1000| v1v1-->|1| v2S -->|1000| v2v1-->|1000|Tv2-->|1000|T

显然最大流为2000

若第一次选择路径 S->v1->T 或 S->v2->T则可以很快解决问题。

若选择 S->v1->v2->T 则需消耗较长时间。

flowchart LRS <-->|1\999| v1v2 -.->|1| v1S -->|1000| v2v1-->|1000|Tv2<-->|1\999|T
flowchart LRS <-->|1\999| v1v1 -.->|1| v2S <-->|1\999| v2v1<-->|1\999|Tv2<-->|1\999|T

在最坏情况下需要循环2000次。

Edmonds-Karp Algorithm

为了解决最坏情况下的效率问题,每次选取最短路径(不考虑边的权重)

时间复杂度:找最短路 \(O(edges)\),最多循环 \(edges\times vertices\)。最坏时间复杂度
\(O(edges^2 \times vertices)\) 证明比较复杂可以看原始论文。

Dinic's Algorithm

Yefilm Dinitz. Proceedings of the USSR Academy of Sciences, 11:
1277-1280, 1970.

阻塞流

最大流一定是阻塞流

阻塞流不一定是最大流,但无法让更多的水流过。

Level Graph 分层图

从起点出发走几步可以到达。

flowchart LRs(S/0)v1([3])v2([1])v3([3])v4([2])t(T/4)s <--> v2v2 <--> v4v1 <--> v4v1 --> sv4 --> v3v3 <--> tt --> v4v2 --> v4
flowchart LRs(S/0)v1([1])v2([1])v3([2])v4([2])t(T/3)s --> v1s --> v2v1 --> v3v1 --> v4v2 --> v4v3 --> t v4 --> t

计算最大流

  1. 构建 level graph
  2. 寻找阻塞流(更新空闲量)
  3. 如果找不到,break。
  4. 添加反向边
  5. goto 1

最坏时间复杂度 \(O(edges \times vertices^2)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Godot OpenGL

Godot OpenGLGodot 中 OpenGL Godot 中的 Compatible 渲染后端用的是 OpenGL 直接写的,没有封装

昆明黄金店联系方式大全

主流品牌门店电话 廖金匠(昆明多家分店) 南亚风情第壹城店 电话:19969207928(微信同号) •地址:昆明市西山区福海街道办事处南亚风情第壹城A4幢1单元1-2层A4-1室2楼 昆明南亚廖金匠珠宝店:18808581681 中国黄金(昆…

Chrome 清除网站图标缓存,更新网站图标

Google Chrome 快速清除某一个网站图标补充: 好像这样操作之后我的浏览器的所有的缓存都被清除了,暂时还不确定是不是这个操作造成的在 Google Chrome 中清除某一个网站的图标缓存并更新网站图标:打开这个网站 Shif…

20232410 2025-2026-1 《网络与系统攻防技术》实验八实验报告1

Web前后端开发与网络安全测试实验报告 1. 实验内容 (1) Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2) Web前端javascript 理解JavaScript的基本功能,理…

SSO 方案

为多个域/子域、Web 与移动端,提供安全、可扩展、对外可接入的单点登录服务(SSO)。采用 OAuth2 Authorization Code + PKCE 与 OpenID Connect (OIDC) 标准,现在简单介绍一下:核心概念IdP(Identity Provider):…

全球AI一周动态(12月1日-7日):巨头战略博弈升级,技术爆发催生新生态

🔥 一、国家级战略:AI军备竞赛进入深水区 1. 中国五部门联合发布AI+医疗新政五部门联合发布《关于促进和规范"人工智能+医疗卫生"应用发展的实施意见》,提出两阶段目标,到2027年建立卫生健康行业高质量…

英语四级翻译

翻译必考点一节课搞定四六级翻译必考点_哔哩哔哩_bilibili 之一:one of 1.找主干 2.添加定语 3.检查主谓一致、时态、单复数、a/an 《水浒传》(Water Margin)是中国文学四大经典小说之一 Water Margin is one of th…

散修带你入门鸿蒙应用开发基础:启程篇(下) - 鸿蒙

鸿蒙应用开发基础:启程篇(下) 【课程目标】熟悉DevEco Studio界面布局与常用功能 掌握工程目录精简配置(忽略自动生成冗余文件) 了解工具内置汉化、代码提示等辅助功能 学会创建、管理ArkTS页面文件与组件【本节重…

多方案统一认证体系对比

在多系统、多子域、跨平台应用中,认证与登录状态同步是核心问题。不同架构阶段可采用不同方案,从传统 Session 模型到标准化 OAuth2 / OIDC SSO。域下的登录态共享可以看看之前文章提到了域登录态分享类 SSO。 现在简…

centos更新阿里源并同步更新系统时间

下面是如何替换为阿里源的步骤: 1. 备份原有的仓库配置文件 首先,建议备份原有的仓库配置文件,以防万一需要恢复。 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2. 下载阿…

齐次与非齐次的区别

啊丢,线性代数学了这么久,突然想到齐次和非齐次是啥区别。 齐次方程组的右边等于0,因此每个方程中的单项式可以看作次数相等,就叫齐次。 非齐次方程组右边不等于0,因此每个方程中有1次项也有0次项,次数不相等,就…

centos7 无法上网怎么办?

查看本机的IP 方法一:ifconfig查找 en0,inet 后面就是本机的IP方法二: 系统设置 -> WIFI -> 详细信息,弹出的页面也有IP地址信息parallels desktop的网络配置:centos虚拟机 -> 配置 -> 硬件 -> 网…

实用指南:[Linux命令分享]日志查看 — — less

实用指南:[Linux命令分享]日志查看 — — lesspre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

论文分享 |Spark-TTS:用解耦语音令牌实现高效可控的语音合成 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

昆明黄金推荐排行

昆明黄金推荐排行引言在昆明这个繁华的城市,黄金市场琳琅满目,消费者在选择黄金时往往会感到困惑。本文将为您提供一份昆明黄金推荐排行,帮助您在众多品牌中找到适合自己的黄金产品。一、品牌实力昆明廖金匠昆明廖金…

NOIP2025反思--杨芮溪

NOIP2025反思--杨芮溪NOIP2025反思

2025深圳/惠州组装线供应商TOP5评测!装配线/生产线/老化线/输送线等五大主流厂家推荐,技术创新+行业经验权威榜单发布,赋能工业自动化升级

随着制造业智能化转型加速,组装线、装配线及生产线设备作为工业生产的核心基础设施,其技术先进性与适配性直接影响企业生产效率与产品质量。本榜单基于技术实力、行业覆盖、服务能力三大维度,结合国内制造业协会数据…

一个很好的观察案例:成功究竟是因为我们比较牛,还是仅仅因为运气

雪球上一个热帖,喜提人生第一个100万作者在藏格上挣到100万,志得意满,分享喜悦。下面都是炫富大会,低于100w的都不好开口。我买过藏格,不过卖飞了,所以看到这个帖子难免心痛。。。不过除了商业互吹,还有个争论很…

AD24中快速添加网络标签的方法

AD24中快速添加网络标签的方法今天在画tc264的核心板,该芯片为144pin封装的芯片,需要引出的芯片引脚偏多,通过结合excel和ad自带的智能粘贴实现对网络标签的快速添加tc264核心板如上,接下来是步骤 (一)直接新建一个exc…

终极揭秘:8大免费AI论文神器,一键极速生成,毕业/期刊/职称论文全覆盖!

毕业论文是校园生活的难题,不少同学为此苦恼。不过,随着AI技术发展,有了更高效的写作伙伴。本文揭秘8大免费AI论文神器,包括鲲鹏智写、SciSpace等,覆盖毕业、期刊、职称论文。如鲲鹏智写能30分钟生成5万字初稿,支…