运筹学
Post on 05-Jan-2016
30 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
运筹学
图与网络分析
第十章 图与网络第十章 图与网络
赵 玮
3
主要内容:主要内容: 10.1 基本概念 10.2 最短路问题 (一) Bellman最优化原理 (二) Dijustra算法(双括号法) (三)通信线路布施问题 (四)设备更新问题 10.3 最小生成树 (一)基本概念与理论 (二) Kruskal算法(加边法、破圈法) (三)丢边法(破圈法)
4
主要内容:主要内容: 10.4 最大流问题 (一)基本概念 (二)双标号算法 10.5 最小费用最大流 (一)基本概念
(二)求解算法
5
§§ 10.1 10.1 基本概念基本概念
1 图 def1 :一个无向图(简称为图) G 是一个有序
的二元组,记为 G=(V, E) 。其中 V={V1…Vn}称为 G 的点集合, E=(eij) 称为 G 的边集合, evj 为连接 VV与 Vj 的边。
6
若 N和 E 均为有限集合,则称为G 为有限图,否则称无限图。
若 G 中既没有有限回路(圈),也没有两条边连接同一对点,则称 G 为 简 单 图 。 如 右 图 之( a),右图之( b )不是简单图。
若 G 为简单图,且 G 中每个点对之间均有一条边相连,则称 G 为完全图。如图( a )是简单图,但不是完全图。
图 图 aa
图 图 bb
7
def 2 :一个有向图 G 是一个有序的二元组,记为 G=(V, A) ,其中 V=(V1V2…Vn) 称为 G 的点集合, A={aij} 称为 G 的弧(有向边)集合, aij 是以 Vi 指向 Vj 的一条弧。
|V|=n 表示 G 中节点个数为 n ,此节点个数 n也称为图 G 的阶
|A|=m 表示有向图 G 中弧的个数为 m 任一顶点相关联(连接)的边的数目称为该顶
点的次数
8
2 连通图 def 3 :在有向图 G 中 , 一个点和边的交替序列
{Vi eij Vj…Vk ekl Vl} 称为 G 中从点 Vi到 Vl 的一条路,记为 A ,其中 Vi 为此路 A 的起点, Vj 为路 A 的终点;若路 A 的起点与终点重合 , 则称 A 为回路;又若 G 中点 Vi与 Vj 间存在一条路,则称点 Vi与 Vj 是连通的;若 G中任何二点都是连通的,则称 G 为连通图,或图 G 为连通的。在无向图中有对应的概念。
有向图 路 回路 无向图 链 圈
9
3 子图
def 4 :设有两个图: G1= (V1, E1) , G2= (V2,
E2) 若有 ,则称 G1为 G2 的子图,
记作 ;若有 V1=V2 而 , 则称图
G1= (V1, E1) 是图 G2= (V2, E2) 的生成子图(支撑
子图)。
21 VV 21 EE
21 GG 21 EE
10
例:下示图 G1 是图 G 的子图,图 G2 是图 G 的生成子图。
VV11 VV33
VV22 VV44
VV11
VV22 VV44
VV11 VV33
VV22 VV44
(( aa ))图图GG
(( bb ))图图GG11
(( cc ))图图 GG22
11
4 赋权图(加权图)与网路def 5 :设 G 是一个图(或有向图),若对 G 的每
一条边(或弧) eij 都赋予一实数 ωij ,称其为该边(弧)的权,则 G 连同其他弧上的权集合称为一个赋权图,记作 G= (V, E, W) 或 G= (V, A, W) ,此中 W={ωij}, ωij 为对应边(弧) eij 的权。若 G= (V, E, W) (或 (V, A, W) )为赋权图,且在 G的 V 中指定一个发点(常记为 Vs )和一个收点(记为 Vt),其余点称为中间点,则称这样指定了发点与收点的赋权图 G 为网络。
12
§§ 10.2 10.2 最短路问题最短路问题 def 6 :设 G =( V, A, W )为一个赋权有向图,
Vs 为指定发点, Vt 为指定收点,其余为中间点,P为 G 中以 Vs到 Vt 的一条有向路,则称
为路 P 的长度,若有
则称 为 G 中从 Vs到 Vt 的最 短路, 为该最短路的长度(此中 F为 G 中 所有从 Vs到 Vt 的全体有向路的集合)。
Pa
aWdefPW )()(
)(min)~
( PWPWFP
P~
)P~
W(
13
最短路问题在企业厂址上选择,厂址布 局,设备更新,网络线路安装等工程设计与 企业管理中有重要应用。
14
((一)一) BellmanBellman 最优化原理最优化原理1 命题 1 :若 P 是网络 G 中从 Vs到 Vt 的一条最
小路, Vl是 P 中除 Vs与 Vt 外的任何一个中间点,则沿 P从 Vs到 Vl 的一条路 P1 亦必是 Vs到Vl 的最小路。
VVss VV11
VVllVV22
VVttPP22
PP11
15
证明(反证): 若 P1 不是从 Vs到 Vl 的最小路,则存在另一条
Vs
到 Vl 的路 P2使W(P2)<W(P1) ,若记路 P 中从Vl到 Vt 的路为 P3 。则有 W(P2) + W(P3)<W(P1) + W(P3)=W(P) ,此说明 G 中存在一条从 Vs沿P2到 Vl沿 P3 再到 Vt 的更小的一条路,这与 P使 G 中从 Vs到 Vt 的一条最小路矛盾。
16
2 算法思想: 设 G 中从 Vs到 Vt 的最小路 P: Vs…Vj…Vk…
Vt ,则由上述命题知: P 不仅是从 Vs到 Vt 的最小路,而且从 Vs到 P 中任意中间点的最短路也在 P 上,为此可采用如下求解思路:
⑴ 为求得 Vs到 Vt 的最短路,可先求得 Vs 到中间点的最短路,然后由中间点再逐步过渡到终点 Vt。
17
⑵ 在计算过程中,需要把 V 中“经判断为最短路 P 途径之点 i”和“尚未判断是否为最短路 P 途径 之点 j” 区分开来,可设置集合 I和 J, 前者归入 I ,后者归入 J ,并令算法初始时, I 中仅包含 Vs ,其他点全在 J 中,然后随着求解过程的进 行, I 中的点逐渐增加(相应 J 中的点逐渐减 少),直到终点 Vt 归入 I (相应 J=φ),此时 迭代结束。 I 称为已标号集合 ,J 称为未标号集合。
18
⑶ 为区分中间点 Vk 是否已归入 I 中以及逆向求解最短路的方便,可在归入 I 中的点 Vj 上方给予双标号( lj, Vk),此中 lj 表示从 Vs到 Vj 最短路的距离,而 Vk 则为从 Vs到 Vj 最短路 P中Vj 的前一途径点。⑷ 为在计算机上实现上述求解思想,还需引入
G 中各点间一步可达距离阵 D=(dij)n×n ,此中 |V|=n
ji
jiwd ijij 不能一步到达,
能一步到达,
19
⑸ 以下介绍的是适用于弧权为正值的有向网络中求最短有向路的 Dijkstra 算法,又称双括号法。事实上该算法亦适用于弧权为负值的有向网络求最短路问题。
20
由图由图 GG建立一步可达距离阵建立一步可达距离阵 D=(dD=(dijij))n×nn×n
给给 VV11(V(Vss)) 括号括号 ((ll11,V,Vkk)=(0,s))=(0,s) 给出已标号集给出已标号集合合 II 和未标号集合和未标号集合 JJ 的元素的元素
对于给定的对于给定的 II和和 JJ ,,确定集合确定集合 A={aA={aij ij |Vi I∈ , Vj J∈ }}
计算距离计算距离
给给 VVkk 括号括号 ((llk k ,V,Vhh) l) lkk=l=lhh + W + Whkhk
I=I + {VI=I + {Vkk} J=J – {V} J=J – {Vkk}}
A=φ A=φ 或 或 JJ== φφ
从从 VVtt 逆向搜索双括号,可得最小路逆向搜索双括号,可得最小路 PP 途径各点及最小路距离途径各点及最小路距离
ENDEND
hkhijIii WlJWl
}V|min{ j
NN
YY
(二)(二) DijksDijkstratra 算法(双算法(双
括号法)括号法)
图 一图 一
21
例 1(教材 208页)求 G 的最短路, 图 G形如下形。
解:利用上述 Dijkstra 算法步骤可得表一所示求 解过程,并有最短路 P: V6 V4 V3 V1,
最短距离 |P|=2+1+5=8。55 11 22
图图(一)(一)
22
已 标 号
点 V j
双 标 号
( l j , V k ) I J
A = { a i j | V i
∈ I , V j ∈ J } hkhij
Iii WlJWl
}V|min{ j
V 1 ( 0 , s ) V 1 V 2 ~ V 6 { a 1 2 , a 1 3 , a 1 4 } m i n { l 1 + W 1 2 , l 1 + W 1 3 , l 1 + W 1 4 } =
m i n { 0 + 3 , 0 + 2 , 0 + 5 } = 2 = l 1 + W 1 3
V 3 ( 2 , V 1 ) V 1 , V 3 V 2 , V 4
V 5 , V 6 { a 1 2 , a 1 4 , a 3 4 }
m i n { l 1 + W 1 2 , l 1 + W 1 3 , l 3 + W 3 4 } =
m i n { 0 + 3 , 0 + 5 , 2 + 1 } = 3 = l 1 + W 1 2 , l 3 + W 3 4
V 2
V 4
( 3 , V 1 )
( 3 , V 3 ) V 1 ~ V 4 V 5 , V 6 { a 2 6 , a 4 6 }
m i n { l 2 + W 2 6 , l 4 + W 4 6 } =
m i n { 3 + 7 , 3 + 5 } = 8 = l 4 + W 4 6
V 6 ( 8 , V 4 ) V 1 ~ V 4 , V 6 V 5 φ E N D
表一(例表一(例 1 1 求解过程求解过程))
23
例 2 求如下 G 之最小路
VV11
VV44
VV22 VV66 VV88
VV55 VV77
33
33
33VV33
66
66
66
6611
11
77
图 二图 二
77 4422
24
dij V1 V2 V3 V4 V5 V6 V7 V8
V1 0 2 6 3 ∞ ∞ ∞ ∞
V2 ∞ 0 3 ∞ ∞ 7 ∞ ∞
V3 ∞ ∞ 0 1 3 7 ∞ ∞
V4 ∞ ∞ ∞ 0 6 ∞ ∞ ∞
V5 ∞ ∞ ∞ ∞ 0 1 6 ∞
V6 ∞ ∞ ∞ ∞ ∞ 0 ∞ 4
V7 ∞ ∞ ∞ ∞ ∞ ∞ 0 6
V8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
解解 表 二表 二
25
表三 (例表三 (例 22 求解过程)求解过程)
已 标 号
点 V j
双 标 号
( l j , V k ) I J
A = { a i j | V i
∈ I , V j ∈ J } hkhij
Iii WlJWl
}V|min{ j
V 1 ( 0 , s ) V 1 V 2 ~ V 8 { a 1 2 , a 1 3 ,
a 1 4 }
m i n { l 1 + W 1 2 , l 1 + W 1 3 , l 1 + W 1 4 } =
m i n { 0 + 2 , 0 + 6 , 0 + 3 } = 2 = l 1 + W 1 2
V 2 ( 2 , V 1 ) V 1 , V 2 V 3 ~ V 8 { a 1 3 , a 1 4 ,
a 2 3 , a 2 6 }
m i n { l 1 + W 1 3 , l 1 + W 1 4 , l 2 + W 2 3 , l 2 + W 2 6 } =
m i n { 0 + 6 , 0 + 3 , 2 + 3 , 2 + 7 } = 3 = l 1 + W 1 4
V 4 ( 3 , V 1 ) V 1 , V 2 ,
V 4
V 3 ,
V 5 ~ V 8
{ a 1 3 , a 2 3 ,
a 2 6 , a 4 5 }
m i n { l 1 + W 1 3 , l 2 + W 2 3 , l 2 + W 2 6 , l 4 + W 4 5 } =
m i n { 0 + 6 , 2 + 3 , 2 + 7 , 3 + 6 } = 5 = l 2 + W 2 3
V 3 ( 5 , V 2 ) V 1 ~ V 4 V 5 ~ V 8 { a 2 6 , a 3 5 ,
a 3 6 , a 4 5 }
m i n { l 2 + W 2 6 , l 3 + W 3 5 , l 3 + W 3 6 , l 4 + W 4 5 } =
m i n { 2 + 7 , 5 + 3 , 5 + 7 , 3 + 6 } = 8 = l 3 + W 3 5
V 5 ( 8 , V 3 ) V 1 ~ V 5 V 6 V 7 V 8 { a 2 6 , a 3 6 ,
a 5 6 , a 5 7 }
m i n { l 2 + W 2 6 , l 3 + W 3 6 , l 5 + W 5 6 , l 5 + W 5 7 } =
m i n { 2 + 7 , 5 + 7 , 8 + 1 , 8 + 6 } = 9 = l 2 + W 2 6 , l 5 + W 5 6
V 6 ( 9 , V 2 )
( 9 , V 5 ) V 1 ~ V 6 V 7 V 8 { a 5 7 , a 6 8 }
m i n { l 5 + W 5 7 , l 6 + W 6 8 } =
m i n { 8 + 6 , 9 + 4 } = 1 3 = l 6 + W 6 8
V 8 ( 1 3 , V 6 ) V 1 ~ V 6 ,
V 8 V 7 { a 5 7 } l 5 + W 5 7 = 8 + 6 = 1 4
V 7 ( 1 4 , V 5 ) V 1 ~ V 8 φ φ E N D
26
由表三知 V1 V8
最短路 P1: V8 V6 V2 V1
最短路 P2: V8 V6 V5 V3 V2 V1
最短路长 |P1|=2+7+4=13 |P2|=2+3+3+1+4=13
44
44
77
11
22
33 33 22
27
(三)通信线路布设问题(教材(三)通信线路布设问题(教材 PP209209 ))
例 3. 甲、乙两地之间的公路网络如图三,电信公司准备在甲、乙两地沿公路沿线架设一光缆线,问应如何架设此线路方案,以使光缆线路架设总长度最短?
图 图 三三
28
dij V1 V2 V3 V4 V5 V6 V7
V1 0 15 10 ∞ ∞ ∞ ∞ V2 15 0 3 6 ∞ ∞ 17 V3 10 3 0 ∞ 4 ∞ ∞ V4 ∞ 6 ∞ 0 4 ∞ 5 V5 ∞ ∞ 4 4 0 2 ∞ V6 ∞ ∞ ∞ ∞ 2 0 6 V7 ∞ 17 ∞ 5 ∞ 6 0
解:本例之一步可达距离阵如解:本例之一步可达距离阵如
G={V,E,W},V={VG={V,E,W},V={V11VV22VV33VV44VV55VV66VV77}} ,,本例本例 GG
为无向图,求解过程见表四为无向图,求解过程见表四
W=
29
V j ( l j , V k ) I J A = { a i j | V i
∈ I , V j ∈ J } h khij
Iii WlJWl
}V|min{ j
V 1 ( 0 , s ) V 1 V 2
V 4 ~ V 7 { a 1 2 , a 1 3 }
m i n { l 1 + W 1 2 , l 1 + W 1 3 , } =
m i n { 0 + 1 5 , 0 + 1 0 } = 1 0 = l 1 + W 1 3
V 3 ( 1 0 , V 1 ) V 1 , V 3 V 4 ~ V 7 { a 1 2 , ,
a 3 2 , a 3 5 }
m i n { l 1 + W 1 3 , l 3 + W 3 2 , l 3 + W 3 5 } =
m i n { 0 + 1 5 , 1 0 + 3 , 1 0 + 4 } = 1 3 = l 3 + W 3 2
V 2 ( 1 3 , V 3 ) V 1 V 2
V 3 V 5
V 4 V 6
V 7
{ a 2 4 , a 2 7 ,
a 3 5 }
m i n { l 2 + W 2 4 , l 2 + W 2 7 , l 3 + W 3 5 } =
m i n { 1 3 + 6 , 1 3 + 1 7 , 1 0 + 4 } = 1 4 = l 3 + W 3 5
V 5 ( 1 4 , V 3 ) V 1 V 2 V 3
V 5 V 6 V 4 V 7
{ a 2 4 , a 2 7 ,
a 5 4 , a 5 6 }
m i n { l 2 + W 2 4 , l 2 + W 2 7 , l 5 + W 5 4 , l 5 + W 5 6 } =
m i n { 1 3 + 6 , 1 3 + 1 7 , 1 4 + 4 , 1 4 + 2 } = 1 6 = l 5 + W 5 6
V 6 ( 1 6 , V 5 ) V 1 ~ V 6 V 7 { a 2 4 , a 5 4 ,
a 2 7 , a 6 7 }
m i n { l 2 + W 2 4 , l 5 + W 5 4 , l 2 + W 2 7 , l 6 + W 6 7 } =
m i n { 1 3 + 6 , 1 4 + 4 , 1 3 + 1 7 , 1 6 + 6 } = 1 8 = l 5 + W 5 4
V 4 ( 1 8 , V 5 ) V 1 ~ V 6 V 7 V 8 { a 2 7 , a 4 7 , a 6 7 } m i n { l 2 + W 2 7 , l 4 + W 4 7 , l 6 + W 6 7 } =
m i n { 1 3 + 1 7 , 1 8 + 5 , 1 6 + 6 } = 2 2 = l 6 + W 6 7
V 7 ( 2 2 , V 6 ) V 1 ~ V 7 , φ E N D
表四 (例表四 (例 33 求解过程)求解过程)
30
① 由表四可得 最短路 P : V7 V6 V5 V3 V1
最短距离 |P|=10+4+2+6=22
② 还可得到自 V1 (甲)到任一中间点之最短路,例如 V1 V4 最短路由表四可知为
P14 V4 V5 V3 V1 |P14|=18
66 22 44 1010
31
((四)设备更新问题(教材四)设备更新问题(教材 PP212212 ))
例 4.
某公司设备管理部门欲制定一个五年期某设备的更新计划,要求给出这五年中购置该设备的年份及购置新设备的使用年限。
在此五年中购置该设备的年初价格见表五,设备使用不同年限的维护费见表六。
32
年份 1 2 3 4 5
年初价格 11 11 12 12 13
表五 (单位:万元)表五 (单位:万元)
使用年数 0~1
1~2
2~3
3~4
4~5
年维护费用 5 6 8 11 18
表六 表六 (单位:万元(单位:万元 //年年))
33
解:设Vi —i年初购进一台新设备aij —i年初购进之新设备使用到第 j年初( j-1年末)ωij—i年初购进之新设备使用到第 j年初( j-1年末) 之总费用
根据表五与表六之有关数据可计算 ωij 详可参见表七;由表七可得 W阵如表八;由表八可得有向图四;将表八可转换成一步可达阵如表九,求解过程见表 10 。
34
表七 (表七 ( W W 计算过程)计算过程)
使用总 年
费用
2 3 4 5 6 注
购置费 11 11 11 11 11 5 5 5 5 5 6 6 6 6 8 8 8 11 11
维护费
1 2 3 4 5 18
总费用 16 22 30 41 59
第 1年初购置设备使用个年之费用
购置费 - 11 11 11 11 5 5 5 5 6 6 6 8 8
维护费
2 3 4 5 11
总费用 - 16 22 30 41
第 2年初购置设备使用个年之费用
35
购置费 - - 12 12 12 5 5 5 6 6
维护费
3 4 5 8
总费用 - - 17 23 31
第 3年初购置设备使用个年之费用
购置费 - - - 12 12 5 5 维护
费 4 5 6
总费用 - - - 17 23
第 4年初购置设备使用个年之费用
购置费 - - - 17 23 13 购置费
5 5
总费用 18
第 5年初购置设备使用个年之费用
36
1 2 3 4 5 6
1 - 16 22 30 41 59
2 - - 16 22 30 41
3 - - - 17 23 31
4 - - - - 17 23
5 - - - - - 18
表八 费用阵(单位:万元)表八 费用阵(单位:万元)
j
i
ωij
37
图四 (设备更新有向图)
38
V1 V2 V3 V4 V5 V6
V1 0 16 22 30 41 59
V2 ∞ 0 16 22 30 41
V3 ∞ ∞ 0 17 23 31
V4 ∞ ∞ ∞ 0 17 23
V5 ∞ ∞ ∞ ∞ 0 18
V6 ∞ ∞ ∞ ∞ ∞ 0
表 九
39
已 标号
点Vj
双标号(lj,Vk)
I J
A={aij|
Vi∈I,
Vj∈J}
hkhijIii WlJWl
}V|min{ j
V1 (0, s ) V1 V2 ~V6
a12,a13,
a14
a15,a16
16WlminWl}Wl{min 1216~2j
j11ij1
=
V2 (16,V1) V1V2 V3 ~V6
a13,a14
a15,a16
a23,a24
a25,a26 1616winWl
220winWl
2j2
2j1
JV
JV
j
j
l1 + W13 =22
表 10 设备更新求解过程
min
40
V 3 ( 2 2 , V 1 ) V 1 V 2
V 3 V 4 V 5 V 6
a 1 4 ,
a 1 5 , a 1 6
a 2 4 ,
a 2 5 , a 2 6
a 3 4 ,
a 3 5 , a 3 6
300winWl 1j1 JV
j
2216winWl 2j2 JV
j
l 1 + W 1 4 = 3 0
1722winWl 3j3 JV
j
V 4 ( 3 0 , V 1 ) V 1 ~ V 4 V 5 V 6
a 1 5 , a 1 6
a 2 5 , a 2 6
a 3 5 , a 3 6
a 4 5 , a 4 6
l 1 + W 1 5 = 0 + 4 1
l 2 + W 2 5 = 1 6 + 3 0 l 1 + W 1 5 = 4 1
l 3 + W 3 5 = 2 2 + 2 3
l 4 + W 4 5 = 3 0 + 1 7
V 5 ( 4 1 , V 1 ) V 1 ~ V 5 V 6
a 1 6 , a 2 6
a 3 6 , a 4 6
a 5 6
364
363
Wl
Wl53
18412330
312241165916min ==
,,,
V 6 ( 5 3 , V 3 )
( 5 3 , V 4 ) V 1 ~ V 6 φ E N D
m i n
m i n
41
由表 10 可知最短费用流(相当于最短路)
P : V6 V3 V1 | P| = 53万元 V4
42
结论: 公司五年期设备更新方案有两个: A与
B ,总费用均为 53万元。 A 方案:第 1年初购置设备使用到第 3年
初(第 2年末),第 3年初再购置新设备使用到第 5年末(第 6年初)
B 方案:第 1年初购置设备使用到第 4年初(第 3年末),第 4年初再购置新设备使用到第 5年末(第 6年初)
43
§10.3 §10.3 最小生成树最小生成树
最小生成树在网络(电信网、公路网等)设计与企业管理中有重要应用。
44
(一)基本概念与理论(一)基本概念与理论 def 7 :无圈的连通图(无向图)称为树,常记为符号 T 。如图五的( a )为树,( b )有圈,( c )不连通,故( b)( c )均非树。
V2
V1
V5
V4
V6
V3
V2
V1
V5
V4
V6
V3
V2
V1
V5
V4
V6
V3
( a) ( b) ( c) 图 五
45
def 8 :若 T 是图 G 的一个生成子图而且又是一 棵树,则称树 T 是图 G 的一个生成树(又称支 撑树);又若树 T=(V1,E1) 为图 G=(V,E,W) 的
一个生成树,令 称为树 T 的权 (或长度),则 G 中具最小权的生成树称为 G 的最小生成树,亦即若有 则有 T* 为G 的最小生成树,此中 F为G 的
全 体生成树的集合。
Ee
eWTW )()(
FT
eWTW )(*)(
46
Th1 :设 T=(V,E) 是 |V|≥ 3 的一个无向图,则下列六个关于树的定义是等价的:
⑴ T 连通且无圈⑵ T 的任何两个顶点间均必有一条且仅有一条通 路相连⑶ T 连通且有 n-1 条边,此中 n= |V|
⑷ T有 n-1 条边且无圈,此中 n= |V|
⑸ T 无圈,但在 T 中任两个不相邻的顶点间添加
一条边,则可构成一条回路⑹ T 连通,但去掉任一条边后就不连通,即树 T
是连通且边数最小的图
47
(二)(二) KruskalKruskal 算法(加边法,破圈法)算法(加边法,破圈法)1. 算法思想:① 由 Th1(4) 结论:若 |V| = n ,则树 T有 n-1 条边
且 无圈② 由 def 8 ,最小生成树 T* 是具有最小权的生成树
故可 E 中各边按权大小排列设为 W1≤ W2≤
… ≤ Wm ,对应?边依次为 a1,a2, … am ,然后将 a1,a2, … 依次进入集合 S ,直到获得 S 的生成树 T为止(树的判断可由 Th1(4) 结论),则此树 T 必为最小生成树。
48
设 G=(V,A,W) , |V| = n , |A| = m
S— 待生成的集合i — S 中进入最小生成树的边序号j — 逐个进入 S的 G 的边序号ei+1 — S 中进入最小生成树的边
j Wj aj akl
1 W1 a1 a23
2 W2 a2 a55
… … … …m Wm am a76
表 11
49
对 G 中各边按权大小顺序排列,不妨设为 W1≤ W2≤ … ≤ Wm
填写Wj 对应的各边 aj 表 11
S=φ , i = 0, j=1
{aj} ∪ S构成回路?
|S| = n-1
ei+1=aj S={ei+1} ∪ S
i=i +1 j=j+1j=j+1
T*=S
打印 T*
END
Y
Y
N
N
图 六
50
例 5 (教材 P218 )
某大学准备对其所属的 7 个学院办公室计算机联网.这个网络的可能联通的途径如图七所示,图中 V1 …, , V7 表示 7 个学院办公室,边 eij 为可能联网的途径。边上所赋的权数为这条路线的长度(单位:百米)。试设计一局域网既能联结七个学院办公室,又能使网络线路总长度为最短。
51
Wj aj akl T*
W1 a1 a23 *
W2 a2 a35 *
W3 a3 a27 *
W4 a4 a17 *
W5 a5 a67 *
W6 a6 a37
W7 a7 a56
W8 a8 a57
W9 a9 a43 *
W10 a10 a45
W11 a11 a16
G={V,E,W}, |V| =7, |E| = 11
W=(ωij) ωij 见图
解:依据各边权自小到大排列建立表 12 ,求解过程见表 13 ,
由表 13 得知最小生成树
T*={a1,a2,a3,a4,a5,a9}
W(T*)=1+2+3+3+7=19
图七
表 12
52
表 13 (例 5 求解过程)
e i+1 S i j |S| aj {aj}∪ S 构成回路?
φ 0 1 0 a1 a1 ×
e1 = a1 a1 1 2 1 a2 a1,a2 ×
e2 = a2 a1,a2 2 3 2 a3 a1,a2, a3 ×
e3 = a3 a1,a2,a3 3 4 3 a4 a1~a4 ×
e4 = a4 a1~a4 4 5 4 a5 a1~a5 ×
e5 = a5 a1~a5 5 6 5 a6 a1~a6 √
— 7 5 a7 a1~a5, a7 √
— 8 5 a8 a1~a5, a8 √
— 9 5 a9 a1~a5, a9 ×
e6 = a9 a1~a5,a9 6 10 6 END
53
例 6. 利用加边法求图八所示的无向图 G 之最小生成树
Wj aj akl T*
W1 a1 a12 *
W2 a2 a13 *
W3 a3 a45 *
W4 a4 a23
W5 a5 a25 *
W6 a6 a24
W7 a7 a34
W8 a8 a35
解: G={V,E,V} , |V| = 5
|E| = 8表 14
V1
V2
V5
V3
V4
1
2
2
3
4
4
42
图 八
54
表 15 (例 6 求解过程)
e i+1 S i j |S| aj {aj}∪ S 构成回路?
φ 0 1 0 a1 a1 ×
e1 = a1 a1 1 2 1 a2 a1,a2 ×
e2 = a2 a1,a2 2 3 2 a3 a1,a2,a3 ×
e3 = a3 a1,a2,a3 3 4 3 a4 a1~ a4 √
5 3 a5 a1,a2,a3,a5 ×
e4 = a5 a1,a2,a3,a5 4 6 4 END
55
(三)丢边法(破圈法)(三)丢边法(破圈法)
1. 算法原理: 丢边法与加边法相反,加边法是以不形成
回路为准则将 S=φ逐步加边以形成树,而由于按边权愈小愈优先加进去,故为最小生成树,而丢边法则是 S= E 以不形成回路为准则逐步丢边以形成树,由于是按边权愈大愈优先丢掉,故同样为最小生成树。
56
设 G=(V,E,W) , |V| = n , |E| = m,
S — 待生成的集合(逐步丢边) i — S 中丢掉边的序号 j — S 中保留边的序号 ei+1 — S 中丢到的边 e1— S 中丢到的边的全体(集合) fj+1 — S 中保留的边 D — S 中保留边的集合
57
由于边个数为 m ,树含边的个数为 n-1 ,故丢掉(形成回路)边的个数为 m-(n-1)=m-n+1 ,以此为程序出口,标志着最小生成树形成
依次从大到小按列同例 5 表 12 。
58
G=(V,E,W) , |V| = n , |E| = m , S=
E, i=0, j=0, E1=φ, D=φ
选 S 中最大权之边|a||a|max l
Skk
S 中是否有包含 al
的一个回路
i=i +1 ei=al
S= S -{ei} E1=E1∪{ei} T*=S-E1
打印 T*的边序列
j=j +1 fj=al
D=D∪{fi+1}
i≥ m-n-1
END
N
N
Y
Y
图 九
59
例 6. (同例 5 )用丢边法求解求解过程见表 16 ,由于m-n+1=11-(7-1)=5
故 i=5 时程序终止,由表知T*=S-{e1~e5}={a1,a2,a3,a4,a5,a9} 与前加边法求解相同,详可参考教材 P218 的六个图。
60
表 16 (例 6 求解价格)
5=i=m-n+1
选择 S中最大权的边数
|al| S 中有含al的回路
i j e i=al fj=al S= S -{e i} E1 D
0 0 E φ φ
即 a11 a16 10 V1 V6 V7 1 e1 = a16 E-{e1} e1
即 a10 a45 8 V3 V4 V5 2 e2 = a45 E-{e1 e2} e1 e2
即 a9 a43 7 无 1 f1 = a43 f1
即 a8 a57 5 V7 V5 V6 3 e3 = a57 E-{e1e2e3} e1 e2 e3
即 a7 a56 4 V3 V5 V6 4 e4 = a56 E-{e1e2e3e4} e1 ~ e4
即 a6 a37 4 V2 V3 V7 5 e5 = a37 E-{e1e2e3e4 e5} e1 ~ e5
END
61
§§ 10.4 10.4 最大流问题最大流问题 由前知,一个指定了收点和发点的赋权图 G
称为网络,在网络设计中研究网络的流量具有现实意义,如交通网络的车流流量,通信网络中的话务流量,金融网络中的现金流量,控制网络中的信息流量,供电网络中的电流流量等。人们也常常希望知道在既定网络中能允许通过的最大流量,以便对该网络的利用程序作出评价,这就是所谓的网络最大流问题。求解方法有双标号法,对偶图法等。
62
1 .网络中弧的容量与流量
def9 :对于一个指定收、发点的赋权有向(无向)图或网络 N =( V , A , C ),弧 aij∈A 的最大允许通过能力称为该弧的容量,记为cij( cij≥0 ),全体 cij构成之集合记为 C ;而通过边 aij 的实际流量成为流量,记为 fij ,故有0≤fij≤cij 。显然若 fij≥cij 则网络 N 在 aij 边将发生堵塞现象,这是人们希望能避免的现象。
(一)基本概念(一)基本概念
63
2 .可行流与最大流
def10 :设有网络 N =( V , A , C ),称
f ={fij∣aij∈A} 为网络 N 上的流函数,简称网
络流;满足如下条件的网络流称为可行流,其
中 v ( f )为网络 N 可行流的总流量(净流入量)。
64
( 1 )容量限制条件:
( 2 )流量守恒条件:
说明:进入节点 vj 的流量=自节点 vj 流出的流量;
fij≡0 之零流亦满足上述条件,故零流以为可行流。
65
3 .顺向弧、逆向弧与可增路
def11 :设 f 是网络 N 的一可行流, P 是 N中从 vs到 vt 的一条路,对于路 P 途经的各弧,若弧的方向与路的方向相同,则称该弧为顺向弧,若弧的方向与路的方向相反,则称该弧为逆向弧。若在路 P 的一切顺向弧( vi, vj )上有 fij< cij ,在路 P 的一切逆向弧( vj, vi )上有 fji> 0 ,则称路 P 是一条关于 f 的可增路。
66
说明:
( 1 )由 def 11 得知:若在路 P 中,存在一条顺向弧( vi, vj )有 fij= cij (此时称弧为饱和弧),或者在路 P 中存在一条逆向弧( vj, vi )有fji= 0 ,则称路 P 为不可增路;
( 2 )在图 10 所示的网络 N 中有一可行流f={fij∣aij∈A} ,用蓝字标记,红字标记各弧的容量cij 。表 17给出了四条从 v1 到 v7 的路是否可增路的判别理由。(此 f 满足流量守恒条件与容量限制条件,如
67
图 10
68
表 17
j v1到 v7的路 可增路? 理由1 v1v2v5v7 √ 顺向弧有 fij< cij
2 v1v2v5v3v6v7 √ 顺向弧 fij< cij
逆向弧有 f35> 0
3 v1v4v7 × 顺向弧有 f47= c47
4 v1v2v3v4v7 × 顺向弧有 f23= c23, f47=c47
69
( 3 )可增路的内涵可通过下例得知
在图 10 之可行流 f 中,对于路 v1v2v5v3v6v7
途经的各弧中,若 f12, f23 增加一个单位流量, f35 减少一个单位流量,利用流量守恒条件,可得一个如图 11 的新的可行流 ,并有 v ( ) = 10> 9 =
v ( f )。
f f
图 11
70
由上可知在 def11 中可增路要求顺向弧
fij< cij 之条件,实际上说明沿该弧( vi, vj )还
可提高流量 △ ij= cij- fij> 0 ,另一方面,为提
高流量 v ( f )还要求该路的逆向弧降低流量,而
fji> 0 正说明了该逆向弧可降低 fji 个单位。
71
1 .算法思想(见图 12 )
给定 N = {V, A , C} ,任取一可行流 f = {fij} ,若无可行流,可取零
流。 l= 1
在 f 中任取一可增路 pl
利用标号规则与调整规则对沿着路 p 的各弧作最大可能调整
是否对 N 中所有 路均作调整
打印经调整后的最大流f*及最大流量 v ( f
*)
取 N 的一条新可增路 pl
l= l+ 1
END图 12
(二)双标号算法(二)双标号算法
72
寻找一可增路 pl , l= 1
vs 标号( s ,∞),沿 pl寻找 vs的下一相邻节点 vj
按标号规则对 vj 进行双标号( vj,l( vj ))
vs= vt
沿 pl 从收点 vt 开始反向搜索途经各弧,按调整规则作流量调整
抹去 pl 上各点之双标号,从而由原可行流 f 调整为新可行流 f1 ,并有 v
( f )< v ( f1 )
是否还有新的可增路
打印并输出经调整后的最大流 f*={fij∣aij∈A} ,最大流量 v ( f* )
结束
l= l+ 1
取 N 的 新的 可 增 路pl
j= k , i= j
沿 pl 寻找 vj的相邻的一点vk
图 13
N
Y
Y
N
2 .调整步骤 (见图
13 )
73
3 .标号与调整规则
( 1 )标号规则:
1o 若( vi, vj )为顺向弧,且 fij<cij ,则给 vj
标号( vi +, l( vj )),其中 l( vj )=
min( l( vi ), cij- fij );
2o 若( vi, vj )为逆向弧,且 fji>0 ,则给 vj标
号( vi -, l( vj )),其中 l( vj )=
min( l( vi ), fji );
3o 若( vi, vj )为顺向弧但 fij= cij 或( vi, vj )
为逆向弧但 fji= 0 ,此时沿该弧的路线停止标号。
74
( 2 )调整规则:
1o 若( vi, vj )为顺向弧,则对 pl 路径的顺向弧作调整,其调整量△ ij= fij+ l( v );
2o 若( vi, vj )为逆向弧,则对 pl 途经的逆向弧作调整,其调整量△ ji= fji- l( v );
3o G 中不在 pl 路上的各弧不作调整。
75
4 .例 7 (教材 P219 )
某石油公司拥有一管道网络,使用此管道网络可将石油从采地 v1 运往销地 v7 ,由于各地的地质条件等不同,因而其管道直径有所不同,从而使各弧的容量 cij (单位:万加仑 /小时)不同,对于如图 14 所示的管道网络 N =( V , A , C ),问每小时从 v1 往 v7 能运送多少加仑石油?
76
图 14
77
解 1 :若设弧( vi, vj )上的流量为 fij ,网络N 上总流量为 F ,则可建立如下 LP : max F = f12 + f14
f12 = f23 + f25
f14 = f43 + f46 + f47
f23 + f43 = f35 + f36
s. t f25 + f35 = f57
f36 + f46 = f67
f47 + f57 + f67 = f12 + f14
fij≤cij i= 1~ 6, j= 1~ 7
fij≥0 i= 1~ 6, j= 1~ 7
v1 v2 v3 v4 v5 v6 v7
v1v2v3v4v5v6v7
0 6 0 6 0 0 00 0 2 0 3 0 00 0 0 0 2 2 00 0 3 0 0 3 20 0 0 0 0 0 50 0 0 0 0 0 50 0 0 0 0 0 0
C 阵
78
利用单纯形法可解得最大流:
f*= {f12= 5 , f14= 5 , f23= 2 , f25=3 ,
f43= 2 , f46= 1 , f47= 2 , f35= 2 ,
f36= 2 , f57= 5 , f67= 3 , v ( f*)= 10}
79
解 2 :(采用双标号法求最大流)
求解中寻找了五条可增路,其标号过程与增流过程见表 18 ,表 18 中各可增路及其流量调整过程见图 15 。
求解结果与解 1 相同。
80
81
82
83
84
图 15
85
表 18 (例 7 求解过程)
l 可增路 pl 第二个标号 l( vj)可调整量l( vt) 标号图 调整图
网络流量 v( f)
1 v1v4v7 l( v4)= 6, l( v7)= 2
2 ( a) ( b) 2
2 v1v2v3v5v7 l( v2)= 6, l( v3)= 2
l( v5)= 2, l( v7)= 2
2 ( c) ( d) 4
3 v1v4v6v7 l( v4)= 4, l( v6)= 1
l( v7)= 2
1 ( e) ( f) 5
4 v1v2v5v7 l( v2)= 4, l( v5)= 3
l( v7)= 3
3 ( g) ( h) 8
5 v1v4v3v6v7 l( v4)= 3, l( v3)= 3
l( v6)= 2, l( v7)= 2
2 ( i) ( j) 10
已无可增路 END
86
§§ 10.5 10.5 最小费用最大流最小费用最大流 在很多网络(电信网络、运输网络、计算机网络)的分析与设计问题中,人们除关心网络的系统容量外还要考虑费用问题,以便建立一个高效、低耗的网络系统。这就是最小费用最大流问题的研究。
87
def12 :设网络 N ={ V, A},除对每一弧a∈A规定了其容量 c(a) 外,还给定一个数 b(a) ≥ 0 称为弧 a 的单位流量费用,即有网络 N ={ V, A, c, b}称其为带费用(代价)的网络。设f 是 N 上的一个可行流(从 vs到 vt ),称 为可行流 f 的费用。
将 N 上所有流量等于 v0 的可行流中费用最小的可行流 f 称为流量为 v0 的最小费用流,进一步当v0 又是 N 中最大流的流量时,则称此 f 为最小费用最大流。
(一)基本概念(一)基本概念
88
例 8 某石油公司管道网,由于输油管道的长短不一,故对于不同的地段(路径)有不同的容量限制 cij 之外,还有不同的单位流量费用 bij ,该 cij 的单位为万加仑 /小时, bij 的单位为百元 / 万加仑,管道网络如图 16 所示,图中括号内的数字表示( cij, bij )。
89
解 1 :设 fij 表示 aij 上实际流量,则由定义12 可建立如下 LP
s.t
max
90
总费用 b(f)=145
此解与例 7 的解显然不同,它是在考虑了费用目标后的结果。
91
(二)求解算法(二)求解算法
算法原理:最小费用最大流之算法有多种,以下介绍一种比较易理解的算法。
定理 3 :设 f 是流量为 v0 的最小费用流, p 是关于 f 的可增路中费用最小的可增路。可增容量为 δ 则沿 p 增容 δ 后所得到的可行流 即为 的最小费用流。
若将N 中弧 aij 的单位费用 bij 作为该弧的弧长,则上述定理中的“可增路中费用最小”可理解为“可增容的最短路”。(∵此中最短的含义即为路径各弧的费用和最小)
利用上述定理可得如下算法步骤。
92
图 17
2.算法步骤
93
表 19
l关于 fl - 1 的可增容最
短路 pl
最短路长︱ pl︱
可调容量l( vt )
系统容量v ( f )
总费用
1 v1v4v6v7 10 1 1 10
2 v1v4v7 11 2 3 32
3 v1v4v3v6v7 12 2 5 56
4 v1v4v3v5v7 16 1 6 72
5 v1v2v5v7 17 3 9 123
6 v1v2v3v5v7 22 1 10 145
对于图 18的求解过程可用表 20中之定理内容来解释此算法原理。
3 、例 8 解 2 :求解过程见表 19 ,表 19各最短路的增容过程见图 18 。
94
95
96
97
图 18
98
结论:
( 1 )最小费用最大流 f*= {fij} ,与解 1 计算结果相同;
( 2 )最小费用
b(f)= 4×6+ 6×3+ 3×4+ 1×5+ 3×2+ 2×4
+ 2×3+ 5×7+ 3×4+ 1×3+ 2×8
= 145
与解 1 计算结果相同。
99
表 20
f是容量为 v0的最小费用流
p 是关于 f 的可增容(可增容量为
δ)最短路
则沿 p 增容 δ 后所得的可
行流 为容量为 v0+ δ 的
最小费用f0 是 0 p1 f0 1 p1 f1 1
f1 是 1 p2 f0 2 p2 f2 3
f2 是 2 p3 f0 2 p3 f3 5
f3 是 3 p4 f0 1 p4 f4 6
f4 是 4 p5 f0 3 p5 f5 9
f5 是 5 p6 f0 1 p6 f6 10
100
此中需要说明的是: p1 是 f0 的可增容最短路,为什么不是 f1 的可增容最短路?这是由于 f1 沿 p1 已不可能再增容。(因为 f1 是由 f0 沿 p1 增容而得,至少有一弧,如 a46已饱和, c46= f46
= 1 ),故 p1 是最短路(关于 bij )但非可增容。综合二者说明 p1 不是 f1 的可增容最短路(或说 p1 是 f1 的不可增容最短路)。
top related