本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数学知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:

  • 国外经典教材)离散数学及其应用 第八版 Discrete Mathematics and Its Applications Eighth Edition ,作者是 Kenneth H.Rosen ,袁崇义译,机械工业出版社
  • 离散数学 第二版,武波等编著,西安电子科技大学出版社,2006年
  • 离散数学 第三版,方世昌等编著,西安电子科技大学出版社,2013年
  • (经典参考书及其题解)离散数学/离散数学——理论•分析•题解,左孝凌、李为鉴、刘永才编著,上海科学技术文献出版社
  • 离散数学习题集:数理逻辑与集合论分册,耿素云;图论分册,耿素云;抽象代数分册, 张立昂。北京大学出版社

文章目录

  • 8. 运输网络
    • 8.1 运输网络的定义
    • 8.2 流
    • 8.3 割

8. 运输网络

8.1 运输网络的定义

运输网络是对各类运输系统中 物资从起点 sss 出发、经过多个中转站点、到达终点 ttt 这类现象的数学抽象,可以用有向图进行描述。

定义8.1 设 G=⟨V,E,ω⟩G = \langle V, E, \omega \rangG=⟨V,E,ω⟩ 是一个连通 边赋权 有向 简单图,若 GGG 中恰有一个入度为零的结点和一个出度为零的结点,则称 GGG 为运输网络 transport network 。入度为零的结点称为源点 source ,出度为零的结点称为汇点 sink 。对于任一边 e∈Ee \in Ee∈E 上的权值,ω(e)\omega(e)ω(e) 称为 eee 的容量

下图8.1中,源点 s=as = as=a ,汇点 t=ft = ft=f ,边 ⟨a,b⟩\lang a, b\rang⟨a,b⟩ 的容量 ω(a,b)=4\omega(a, b) = 4ω(a,b)=4 ,边 ⟨a,d⟩\lang a, d\rang⟨a,d⟩ 的容量 ω(a,d)=5\omega(a, d) = 5ω(a,d)=5 ,边 ⟨c,f⟩\lang c, f\rang⟨c,f⟩ 的容量 ω(c,f)=4\omega(c, f) = 4ω(c,f)=4 ,边 ⟨d,c⟩\lang d, c \rang⟨d,c⟩ 的容量 ω(d,c)=2\omega(d, c ) = 2ω(d,c)=2 ,以此类推。对于这张图,我们可以把它认为是一个输油管道网络的有向图,原油在码头 aaa 卸下并通过管道泵送到炼油厂 fff ,结点 a,b,c,d,ea, b, c, d, ea,b,c,d,e 表示中间泵站,有向边表示输油管道、并标明了原油的流动方向,边上的数字表示该管道单位时间内的最大输油量

在运输网络中,人们关心的问题是求解最大运输量,公路铁路运输系统、供水供电系统、传送数据流的计算机网络等,都可以使用运输网络来建模。物资从源点到汇点的实际流通量,除了与每条边的容量相关外,还与每个结点的转运能力相关。

8.2 流

定义8.2.1 在运输网络 G=⟨V,E,ω⟩G = \lang V, E, \omega \rangG=⟨V,E,ω⟩ 中,设 ϕ\phiϕ 是从 EEE 到非负实数集合上的一个函数,如果满足以下条件,则称 ϕ\phiϕ 为该运输网络中的一个

  • 任取 ⟨u,v⟩∈E\lang u, v\rang \in E⟨u,v⟩∈E ,ϕ(u,v)≤ω(u,v)\phi (u, v) \le \omega (u, v)ϕ(u,v)≤ω(u,v) ,即单位时间内每条边的流量不能超过边的容量
  • 源点 sss 和汇点 ttt 满足 ∑⟨s,u⟩∈Eϕ(s,u)=∑⟨v,t⟩∈Eϕ(v,t)\sum_{\lang s, u \rang \ \in \ E} \phi (s, u) = \sum_{\lang v, t\rang\ \in \ E} \phi (v, t)⟨s,u⟩ ∈ E∑​ϕ(s,u)=⟨v,t⟩ ∈ E∑​ϕ(v,t) 即单位时间内源点的流入量等于汇点的流出量
  • 除源点 sss 和汇点 ttt 以外,其余每一结点 vvv 均满足 ∑⟨u,v⟩∈Eϕ(u,v)=∑⟨v,w⟩∈Eϕ(v,w)\sum_{\lang u, v\rang\ \in \ E} \phi(u, v) = \sum_{\lang v, w\rang \ \in \ E}\phi (v, w)⟨u,v⟩ ∈ E∑​ϕ(u,v)=⟨v,w⟩ ∈ E∑​ϕ(v,w)
    每个结点的流入量等于流出量

值 ϕ(u,v)\phi(u, v)ϕ(u,v) 称为流 ϕ\phiϕ 在边 ⟨u,v⟩\lang u, v\rang⟨u,v⟩ 的流量,而 ∑⟨s,u⟩∈Eϕ(s,u)\sum_{\lang s, u\rang \ \in \ E}\phi (s, u)∑⟨s,u⟩ ∈ E​ϕ(s,u) 称为流 ϕ\phiϕ 在整个运输网络 GGG 的流量 value ,记为 ϕG\phi_GϕG​ 。对于边 ⟨u,v⟩\lang u, v\rang⟨u,v⟩ 来说,如果 ϕ(u,v)=ω(u,v)\phi(u, v) = \omega(u, v)ϕ(u,v)=ω(u,v) ,称边 ⟨u,v⟩\lang u, v\rang⟨u,v⟩ 是饱和的;如果 ϕ(u,v)<ω(u,v)\phi(u, v) \lt \omega(u, v)ϕ(u,v)<ω(u,v) ,称边 ⟨u,v⟩\lang u, v\rang⟨u,v⟩ 是非饱和的

仍以8.1中的输油管道网络为例,第一个条件的含义是单位时间内每条管道的通油量不能超过管道的容量;第二个条件的含义是单位时间内泵送到炼油厂的总油量等于从码头卸下并输进管道的总油量;第三个条件的含义是每个中间泵站处油的流入量等于其流出量,即原油在这些中间泵站既无消耗也无补充。

下图8.2给出了图8.1所示运输网络的一个。如果边 eee 的容量是 xxx ,而流量是 yyy ,则边 eee 上标记 x,yx, yx,y 。例如边 ⟨a,b⟩\lang a, b\rang⟨a,b⟩ 的标记为 4,04, 04,0 ,表示其容量等于 444 、当前流量等于 000 ;边 ⟨d,c⟩\lang d, c\rang⟨d,c⟩ 的标记为 2,12, 12,1 ,表示其容量等于 222 、当前流量等于 111 ;边 ⟨b,c⟩\lang b, c\rang⟨b,c⟩ 的标记为 3,23, 23,2 ,表示其容量等于 333 、当前流量等于 222 。

一个运输网络中能承载多种流,其中流量值最大的流称为最大流 maximum flow。最大流也可能不止一个,即可能会有多个不同的流都具有最大流量。给定运输网络求其最大流,是一个很有现实意义的问题,可以用来确定怎样才能使网络的运输效率最高,即单位时间内网络中物资的运输量最大

为了解决这个问题,先要引入的概念和相关定理。

8.3 割

定义8.3.1 设图 G=⟨V,E,ω⟩G = \lang V, E, \omega\rangG=⟨V,E,ω⟩ 是一个运输网络,X⊂VX \subset VX⊂V ,记为 X‾=V−X\overline X = V - XX=V−X 。若 s∈Xs \in Xs∈X 且 t∈X‾t \in \overline Xt∈X ,则称集合 (X,X‾)={⟨u,v⟩∣u∈X,v∈X‾,⟨u,v⟩∈E}(X, \overline X) = \{ \lang u, v\rang \ | \ u\in X, v \in \overline X, \lang u, v\rang \in E\}(X,X)={⟨u,v⟩ ∣ u∈X,v∈X,⟨u,v⟩∈E}

为运输网络 GGG 的一个,令 ω(X,X‾)=∑⟨u,v⟩∈(X,X‾)ω(u,v)\omega(X, \overline X) = \sum_{\lang u, v\rang\ \in \ (X, \overline X)} \omega(u, v)ω(X,X)=⟨u,v⟩ ∈ (X,X)∑​ω(u,v)

则称 ω(X,X‾)\omega (X, \overline X)ω(X,X) 为割 (X,X‾)(X, \overline X)(X,X) 的容量

显然,对运输网络的一个割来说,每条从源点到汇点的有向路,至少要通过割中的一条边

例1 图8.3.1中的虚线给出了图8.1所示运输网络的一个割,该割将结点集合分为 X={a,b}X = \{a, b\}X={a,b} 和 X‾={c,d,e,f}\overline X = \{c, d, e, f\}X={c,d,e,f} 。割 (X,X‾)={⟨a,d⟩,⟨b,c⟩}(X, \overline X) = \{\lang a, d\rang , \lang b, c\rang\}(X,X)={⟨a,d⟩,⟨b,c⟩} ,该割的容量是 ω(X,X‾)=5+3=8\omega(X, \overline X) = 5 + 3 = 8ω(X,X)=5+3=8 。

https://www.cxybb.com/article/aiweiluan5095/102214905

定理8.3.1 在运输网络中任意一个流的流量均小于等于该运输网络中任意一个割的容量
证明:设 G=⟨V,E,ω⟩G = \lang V, E, \omega\rangG=⟨V,E,ω⟩ 是一个运输网络,ϕ\phiϕ 是该运输网络的任意一个流,(X,X‾)(X, \overline X)(X,X) 是该运输网络的任意一个割。对于源点 sss ,有:
∑⟨s,u⟩∈Eϕ(s,u)=ϕG\sum_{\lang s, u\rang\ \in\ E} \phi(s, u)= \phi_G⟨s,u⟩ ∈ E∑​ϕ(s,u)=ϕG​
对于 XXX 中不是源点的结点 ppp 均有:
∑⟨u,v⟩∈Eϕ(u,v)=∑⟨v,w⟩∈Eϕ(v,w)\sum_{\lang u, v\rang\ \in \ E} \phi(u, v) = \sum_{\lang v, w\rang \ \in \ E}\phi (v, w)⟨u,v⟩ ∈ E∑​ϕ(u,v)=⟨v,w⟩ ∈ E∑​ϕ(v,w)

由这两式可得:

下面举例说明这一定理的含义。如果从北京到上海的所有货物,都要经过武汉长江大桥或南京长江大桥,即使是用足这两座大桥的通行能力,从北京发往上海的单位时间内的货物量,也不能超过这两座大桥单位时间内货物的最大通行量。

考虑如图8.3.2(a)所示的一条路,这条路是图8.2.1所示的运输网络中的一条从源点 s=as = as=a 到汇点 t=ft = ft=f 的路。

定义8.3.2 设 G=⟨V,E,ω⟩G = \lang V, E, \omega\rangG=⟨V,E,ω⟩ 是以 sss 为源点、以 ttt 为汇点的运输网络,称结点序列 s=v0,v1,…,vn−1,vn=ts = v_0, v_1, \dots, v_{n - 1}, v_n = ts=v0​,v1​,…,vn−1​,vn​=t 为 GGG 中的一条不考虑边方向的从 sss 到 ttt 的道路。如下图8.3.2所示,若 ⟨vi,vi+1⟩∈E\lang v_i, v_{i + 1}\rang \in E⟨vi​,vi+1​⟩∈E ,则称 ⟨vi,vi+1⟩\lang v_i, v_{i+1}\rang⟨vi​,vi+1​⟩ 为一条前向边 forward edge ;若 ⟨vi+1,vi⟩∈E\lang v_{i+1}, v_i\rang \in E⟨vi+1​,vi​⟩∈E ,则称 ⟨vi+1,vi⟩\lang v_{i+1}, v_i\rang⟨vi+1​,vi​⟩ 为一条后向边 backward edge








现实中,还有很多运输网络可能有多个源点和多个汇点。此时只需要在原运输网络中添加一个虚拟的源点 s′s's′一个虚拟的汇点 t′t't′ ,再添加以虚源 s′s's′ 为起点、到原运输网络各个源点的有向边,容量均设置为 +∞+\infin+∞ ,添加以原运输网络各个汇点为起点、到虚汇 t′t't′ 的有向边,容量均设为 +∞+\infin+∞ ,即可将多源多汇问题转化为本节介绍的单源单汇问题。

【离散数学】图论 第七章(8) 运输网络、流和割、Ford-Fulkerson定理相关推荐

  1. 第七章 本源时空(补充)

                    第七章        本源时空(补充) ​      第七章是匆匆结束的,有点文不对题.什么是本源时空,没有详细的论述.2个月来.我一直想做个小结,无奈心不在焉,忙于正 ...

  2. 第七章 Web开发实战2——商品详情页

    本章以京东商品详情页为例,京东商品详情页虽然仅是单个页面,但是其数据聚合源是非常多的,除了一些实时性要求比较高的如价格.库存.服务支持等通过AJAX异步加载加载之外,其他的数据都是在后端做数据聚合然后 ...

  3. Java7并发编程指南——第七章:定制并发类

    Java7并发编程指南--第七章:定制并发类 @(并发和IO流) Java7并发编程指南第七章定制并发类 思维导图 项目代码 思维导图 项目代码 GitHub:Java7ConcurrencyCook ...

  4. 使用gpio输出驱动蜂鸣器出现破音_探索者 STM32F407 开发板资料连载第七章 蜂鸣器实验...

    1)实验平台:探索者 STM32F407 开发板 2)摘自<STM32F4 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 蜂鸣器实验 上一章,我们介绍了 ...

  5. java第七章jdbc课后简答题_java学习路线流程

    第一阶段JavaSE: 第一章:jdk的安装与配置 第二章:Java基础语法: 变量.常量.数据类型.关键字 运算符和表达式:运算符:+.-.*./ 表达式:正则表达式 关系及逻辑运算符:关系运算符: ...

  6. 【离散数学】数理逻辑 第一章 命题逻辑(5) 对偶式、对偶原理

    本文属于「离散数学」系列文章之一.这一系列着重于离散数学的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数学知识, ...

  7. 第七章 Java基础类库

    前言:如果你真正学习到了这里,那么先容许我夸赞一下你,太棒了!哪怕你对前面六篇文章的掌握度达到50%也是非常了不起的了,关于后面的文章学习我只能说,非常简单,只是我们文章会非常详细的介绍实现原理和一些 ...

  8. headfirst 笔记 第七章

    第七章 (1)静态定位static 流flow 上--下 内联元素在流中,是在水平方向上挨着,摆不了就换一行,总体上是右上--左下 内边距padding不会有这些边距折叠问题. 如果是两个内联元素并排 ...

  9. 江苏专转本计算机第七章,2013江苏专转本 第七章 无穷级数.ppt

    文档介绍: 第七章无穷级数迁乎锗陷刺隅青宴芯惯咖闽修汝梆蒲烯撮极肺荔颜询煞擎吾陈疽锹臣猖晒2013江苏专转本第七章无穷级数2013江苏专转本第七章无穷级数一.无穷级数的概念第一节基本概念与性质无穷级数 ...

  10. 【系统分析师之路】第七章 复盘系统设计(业务流程建模)

    [系统分析师之路]第七章 复盘系统设计(业务流程建模) 复盘系统设计之业务流程建模 [系统分析师之路]第七章 复盘系统设计(业务流程建模) 前言部分 历年真题考点分析 1)考点分析 2)重要知识点 第 ...

最新文章

  1. Java从零开始学二十三(集合Map接口)
  2. 【PAT乙级】1081 检查密码 (15 分)
  3. java工程中的.classpathaaaaaaaaaaaaaaaa转载
  4. 调整了canvas的高度页面变化后还原_Python GUI编程入门(25)-移动Canvas对象
  5. 检索数据_2_从表中查询部分行
  6. 计算机计算能力共享,服务器计算能力计算器
  7. Linux学习之zImage内核镜像解压过程详解
  8. 前端学习(936):缓动动画原理
  9. 投后管理岗面试_2020天津水务招79人,管理岗+操作岗,专科起报
  10. bootstrap中轮播图、模态框、提示框/弹出框、滚动监听、弹性布局、响应式flex、多媒体对象
  11. 电脑开机3秒就重启循环_小米9不开机、循环重启,插充电器屏幕没反应怎么回事?听说是通病,可以维修吗?...
  12. python中的模块_python的模块和包的详细说明
  13. [转]网店博客营销之微博实战技巧:还没有做微博的掌柜看过来
  14. 21. PHP 表单验证 - 完成表单实例
  15. 云计算的下个十年什么样?
  16. IR2130与MOSFET驱动电路分析
  17. 复现贪吃蛇程序——吃食物增加长度(最后一篇)
  18. django 文档参考模型
  19. 【ionic框架bug】slidebox在使用model或popover后width变为0的解决方案
  20. js-实现数组翻转(倒序)

热门文章

  1. uniapp 自定义unicode 并使用
  2. Ubuntu下Vim的常用操作命令——vi编辑器常用命令
  3. Alienbrain-数字资源在团队三维动画制作行业中的应用
  4. MATLAB中滤波演示
  5. Windows10中安装VMware Workstation Pro 15.x与使用Ubuntu 20.04 LTS
  6. Windows7下UEFI开发EDK2环境搭建(VS2013+UDK2015+IASL+patch+Openssl)
  7. GB18030字符编码格式和点阵字库
  8. C# MapXTreme移动点与画线的简单方法记录
  9. 如何使textarea显示滚动条
  10. java用1234组成_java编程题,java1234组成三位数不重复