- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
v3
显然,若把某一截集的弧从网络中去掉,
则从vs到vt便不存在路。所以,直观上说,截集 是从vs到vt的必经之路。
截集的容量(简称截量) 最小截集
对于可行流f={fij},我们把网络中使fij=
cij的弧称为饱和弧,使fij<cij的弧称为非饱和弧;
把使fij=0的弧称为零流弧,使fij>0的弧称为非
5 图与网络分析
5.1 图的基本概念 5.2 树
4.2.1 树与支撑树 4.2.2 最小支撑树问题
5.3 最短路问题 5.4 网络最大流问题
5.1 图的基本概念
v1
e2
v2
例
e1
e6
v5 e5
e9 e7
e8
e3
v6
e10
v3
e4
v4
端点 相邻 关联边 环
图: 由点和点与点 之间的连线组成。若 点与点之间的连线没 有方向,称为边,由 此构成的图为无向图。
对最大流问题有下列定理:
定理1 可行流f*={fij*}是最大流, 当且仅当D中不存在关于f*的增广链。
例 v2
e1
e6 e4
v1
e2
e3
v4 e5
e7
e8
v5
法”。
v2
e1
e6 e4
v1
e2
e3
v4 e5
e7
e8
v5
v3
v3
v2
e1
e4
e6
v1
v4
v5
e2
v3
破圈法
避圈法
5.2 树
5.2.2 最小支撑树问题
给图G中的每一条边[vi,vj]一个相应的 数ij,则称G为赋权图。在赋权图G的所有 支撑树中,必有某个支撑树,其所有边的和
e2
v2
例
e1
v5 e6
e5
e7
e3
v3
e4
v4
v7
e9 e10
v6 e8 v8
连通图 不连通图 连通分图 支撑子图
v1
e2
v2
例
e1
v5 e6
e5
e7
e8
e3
v6
v3 e4 v4
若点与点之间的连 线有方向,称为弧, 由此构成的图为有向 图。 D=(V,A)
基础图 始点 终 点 路 回路
5.2 树
零流弧。
若μ是联结发点
v2 3,1
vs
1,0
5,2
4,1 1,0
v4 5,2
3,1 2,1 vt
vs和收点vt的一条链, 我们规定链的方向是 从vs到vt,则链上的
v1
2,2 v3
弧被分成两类:前向
弧、后向弧。
设f是一个可行流,μ是从vs到vt的一条链, 若μ满足前向弧都是非饱和弧,后向弧都是都是 非零流弧,则称μ是(可行流f的)一条增广链。
为最小,称为最小树。求赋权图G的最小支
撑树的方法也有两种,“破圈发”和“避圈
法”。破圈法:任选一
v3
个圈,从圈中去掉权
5
6
最大的一条边。在余
17
下的图中重复这个步 v1
v5 4
3 v6
骤,直到得到一不含 圈的图为止。
5 v2 2
4 v4
避圈法:开始选一条权最小的边,
以后每一步中,总从未被选取的边中选 一条权尽可能小,且与已选边不构成圈 的边。
G=(V,E)
边数称为该点的次。 奇点 偶点 悬挂点 悬挂边 孤立点
链:是一个点、边交错序列, 如( v1,e2,v2,e3,v4). 中间点 圈:链中,若起始点和终了点是同一个点,则称为圈。 例如(v1,e2,v2, e3,v4,e4,v3,e1,v1)。
v1
(v1,6) (v1,3) [v1,1] (v1,∞) (v4,11) (v1,∞) (v1,∞) (v1,∞)
(v3,5) [v1,3]
(v1,∞) (v4,11) (v1,∞) (v1,∞) (v1,∞)
[v3,5]
(v2,6) (v4,11) (v1,∞) (v1,∞) (v1,∞)
[v2,6] (v5,10) (v5,9) (v5,12) (v1,∞)
vs
1,0
5,2 v1
4,1 v4
5,2
1,0 3,1
vt
2,1
2,2 v3
可行流、可行流的流量、最大流。
给定容量网络D=(V,A,C),若点集V被剖分
为两个非空集合V1和V2,使 vs∈V1 ,vt∈V2,则 把弧集(V1,V2)称为(分离vs和vt的)截集。
v2 3
4
v4
5
vs
1
1
3
vt
5
2
v1
(v5,10) [v5,9] (v5,12) (v1,∞)
[v5,10]
(v5,12) (v1,∞)
[v5,12] (v1,∞)
对无向图,与此方法类似。
[v1,∞]
5.4 最大流问题
5.4.1基本概念和定理
v2 3
4
v4
5
vs
1
1
3
vt
5
2
v1
2
v3
给一个有向图D=(V,A),指定两个点,
一个点称为发点,记为vs,另一个点称为 收点,记为vt,其余点称为中间点。
v3 5
6
v5 4
1 v1
5
73
v6 4
v2 2
v4
v3
v1
1
5
v2
v5 4
3 v6
2 v4
5.3 最短路问题
对于有向图D=(V,A),给其每一个弧(vi,vj)一 个相应的权值wij,D就成为赋权有向图。给定赋权有
向图D中的两个顶点vs和vt,设P是由vs到vt的一条路, 把P中所有弧的权之和称为路P的权,记为w(P)。如
5.2.1 树与支撑树 树:一个无圈的连通图称为树。树图G=(V,E) 的点数记为p,边数记为q,则q=p-1。
例如
支撑树:图T=(V,E‘)是图G=(V,E) 的支撑子图,若图T是一个树,则称T是G的一 个支撑树。
图G有支撑树, 当且仅当图G是连通 的。求连通图的支 撑树的方法有“破 圈法”和“避圈
对于D中的每一个弧(vi,vj),相应地给 一个数cij(cij≥0),称为弧(vi,vj)的容量。 我们把这样的D称为网络(或容量网络),
记为D=(V,A,C)。
所谓网络上的流,是指定义在弧集A 上的函数f={f(vi,vj)},并称f(vi,vj)为弧 (vi,vj)上的流量,简记为fij。
v2 3,1
果路P*的权w(P*)是由vs到vt的所有路的权中的最小者, 则称P*是从vs到vt的最短路。最短路P*的权w(P*)称为 从vs到vt的距离,记为d(vs,vt)。
v2 1
v5
2
6
26
6
v9
v1
3 v3 4 10 3
3
2 1
v4 10 v6 2
v7 4 v8
在所有弧的权都非负
的情况下,目前公认 最好的求最短路的方 v1 法是Dijkstra标号法。 用实例介绍如下:
v2 1
v5
6
26
2 v9 6
3 v3 4 10 3
3
2 1
v4 10 v6 2
v7 4 v8
例 求上图中v1到v8的最短路。
V1 V2 V3 V4 V5 V6 V7 V8 V9
[--,0] (v1,6) (v1,3) (v1,1) (v1,∞) (v1,∞) (v1,∞) (v1,∞) (v1,∞)