东北大学数学建模-图论模型朱和贵

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
2
k
( (2) 向点 v j 追朔得: raj) b1, rb(j) b2 ,…, rb( )j j .
1 1
m
则由点 vi 到 v j 的最短路的路径为:
vi , vak ,, va2 , va1 , vb1 , vb2 ,, vbm , v j .
vi
va k
va3
va 2
构造矩阵 D(k),k = 1, 2, …, n,采用如下的 递推公式: D(0) = [dij(0)]nn = A:是带权邻接矩阵,dij(0) 表示从 vi 到 vj 的、中间不插入任何点的路径, 即边 vivj 的权值; D(1) = [dij(1)]nn,其中 dij(1) = min{dij(0),di1(0) d1j(0)}:dij(1) 表示从 vi 到 vj 的、中间最多只允 许 v1 作为插入点的路径中最短路的长度;
短路过点 vk 比过原有中间点更短.
在求得 D( ) 时求得 R ( ) ,可由 R ( ) 来查找任何点对之间
最短路的路径.
(III)查找最短路路径的方法.
( 若 rij ) a1, 则点 va1 是点 vi 到点 v j 的最短路的中间点.
然后用同样的方法再分头查找.若:
( ( ( (1) 向点 vi 追朔得: ria ) a2 , ria ) a3 ,…, ria ) ak .
w( P )
eE ( a )
w(e)
则称w (P)为路径P(vs, vt)的权。
定义2 若P0 是D 中连接vs到vt的路径, 它的权是D 中
连接vs到vt的所有路径P中最小的,即: w( P ) min w( P) 0
P
则称P0 是D 中从vs到vt的最短路,其权称为这两点间的 距离,记为d(vs,vt)
va1
vb1
vb2
vbm
vj
例 求下图中加权图的任意两点间的距离与路径.
D (0)
0 1 2 1 0 4 4 4 0 2 1 , 2 0 3 3 3 0 5 2 4 1 3 5 0
R (0)
(II)求路径矩阵的方法.
在建立距离矩阵的同时可建立路径矩阵R.
( (k 设 R( k ) (rij k ) ) ,这里 rij ) 的含义是从 vi 到 v j 的最短 (k 路要经过点号为 rij ) 的点. ( ( 算法开始于 R(0) (rij 0) ) , rij 0) j ,
(4,V2)
v4 3 2 v6
6
v5
给V3 标号(4,V2)
27
(4) S:{V1,V2,V3} S’:{V4,V5,V6} 求出(S→ S’)所有 弧,分别计算: (0,V1) S24 =3 + 6=9 v1 S34 =4 + 4=8 S35 =4 + 1=5 Min Sij=S35 给V5 标号(5,V3)
一个点v6表示第5年年底。 E ={vivj | 1≤i<j≤6}。
F (vi v j ) bi ck
k 1
34
j i
这样上述设备更新问题就变为:在有向赋权 图G = (V, E, F )(图解如下)中求v1到v6的最短路问 题。
35
从上图中容易得到v1到v6有两条最短路: v1v3v6和v1v4v6。
Floyd 算法的基本思想是:从图的带权邻接 矩阵 A = [a(i, j)]nn 开始,在 A 中用插入顶点的 方法依次构造出 n 个矩阵 D(1)、D(2)、…、D(n), 使最后得到的矩阵 D(n) 成为图的距离矩阵,即 矩阵 D(n) 的 i 行 j 列元素便是 i 号顶点到 j 号顶 点的距离。构造 D(i) 的同时,也引入一个路由 矩阵 P(i) 来记录两点间的最短路径。
数学模型
——图论模型
朱和贵
zhuhegui@yahoo.com.cn
第二讲
图论模型
1. 图论的基本概念 2. 最短路问题及算法 3. 最小生成树及算法 4.网络流问题及算法 5. 行遍性问题及算法
2. 最短路问题及算法
最短路径问题是图论中十分重要的最优 化问题之一,它作为一个经常被用到的基本 工具,可以解决生产实际中的许多问题,比
v3
(7,V5)
v4
3 2
(10,V4)
v6
6
v5
(5,V3)
给V6 标号(10,V4)
(4,V2)
30
(7) 标出最短路
最短路径是:
V1→V2→V3→V5→V4→V6
路长10。同时得到起点到其余各点的最短路。 注意:
双标号法只适 用于所有wij ≥0 的情形,当赋权 有向图中存在负 权时,则算法失 效。
22
例6 求v1到v6的最短路
(1)首先给v1以P标号:(0,V1)
v2 3
(0,V1)
6 4 1
v4 3
v1
1
2
5
v3 标号以( )形式标在结点旁边 0:表示从V1到该点的最短距离 v5
v6
6
V1:表示从V1到该点的最短路中上一个顶点。
25
(2)
S:{V1}
S’:{V2,V3,V4, V5,V6} 求出(S→ S’)所有 弧,分别计算:
1 1 1 1 1 1
2 3 4 5 6 2 3 4 5 6 2 3 4 5 6 , 2 3 4 5 6 2 3 4 5 6 2 3 4 5 6
插入点 v1,得:
0 1 1 0 4 4 0 2 (0) D 2 0 3 2 4 1 3 (k ) ( k 1) ( k 1) dij min{dij , dik
(0,V1) (3,V1)
v2
6 4 1
v4 3
ቤተ መጻሕፍቲ ባይዱ
3 1 2
S12 =0 + 3=3,
S13 =0 + 5=5, Min Sij=S12 给V2 标号(3,V1)
v1
5
v3 v5
v6
6
26
(3) S:{V1,V2} S’:{V3,V4,V5, (3,V1) V6} v2 6 求出(S→ S’)所有 弧,分别计算: (0,V1) 3 1 4 S13 =0 + 5=5 v1 S23 =3 + 1=4 5 S24 =3 + 6=9 1 Min Sij=S23 v3
5
v6
6
的路线,经过的总长度是不同的。例如,按照第一个线路,
总 长 度 是 3+6+3=12 单 位 , 按 照 第 二 个 路 线 , 总 长 度 是 3+1+1+6=11单位。
19
定义1 设P(vs, vt) 是赋权有向图D = (V, A) 中从点vs 到vt的路, 用E(a) 表示路径P(vs, vt)中全部弧的集合, w (a) 为弧a的权重,记:
2 4 1 , 3 3 0 5 5 0 ( k 1) d kj },
D (1)
矩阵中带“=”的项为经迭代比较以后有变化的元素.
1 2 3 0 1 2 1 2 3 1 0 4 3 1 2 3 4 0 2 1 (1) , R 2 0 3 3 1 2 3 3 0 5 1 2 3 2 3 1 3 5 0 1 1 3
(3,V1)
(7,V5)
v2 3 1
6 4 1
v4 3 2
5
v3
(4,V2)
v6
6
v5
(5,V3)
给V4 标号(7,V5)
29
(6) S:{V1,V2,V3,V4, V5} (3,V1) v2 S’:{V6} 6 求出(S→ S’)所有 3 弧,分别计算: (0,V ) 1 1 4 v1 S46 =7 + 3=10 5 S56= 5 + 6=11 Min Sij=S46 1
20
重要性质: 如果P是D中从vs到vj的最短路,vi是P中 的一个点,那么,从vs沿P到vi的路是从vs到vi
的最短路。
21
求非负赋权图G中某一点到其它各点最 短路,一般用Dijkstra (迪克斯特拉)标号算 法;求非负赋权图上任意两点间的最短路, 一般用Floyd(弗洛伊德)算法。这两种算法均 适用于有向非负赋权图(Floyd算法也适应 于负赋权图)。
D(2) = [dij(2)]nn,其中 dij(2) = min{dij(1),di2(1) d2j(1)}:dij(2) 表示从 vi 到 vj 的、中间最多只允 许 v1 和 v2 作为插入点的路径中最短路的长度; ………… D(n) = [dij(n)]nn,其中 dij(n) = min{dij(n1), di, n1(n1) dn1, j(n1)}:dij(n) 表示从 vi 到 vj 的、 中间最多只允许 v1, v2, …, vn1 作为插入点的路 径中最短路的长度,即 vi 和 vj 之间的距离。
v2(3) 6
3
(0)
v4(7)
3
v1
1 5
4
1
2
6
(10)
v6
v3(4)
v(5) 5
31
★ 例: 求天然气管道最优路径
筹建中的天然气管道网设计如图所示: B
3
3 4 4 3 5
E
3
4 3 4
2 2
G J
3
1
1
A
D
H
6 5 4 5
L
C
F
I K
2
A 、 B 、 C 、 、 L 表示压缩机站,流动主向用箭 头表示,每个管道旁的数字表示管段长度,现需要 求该网络从起点A到终点L的最短通道,并确定沿最 优路径相应的压缩机站所处的节点。 解为: A D E G J L
(3,V1)
v2 3 1
6 4 1
v4 3 2
5
v3
(4,V2)
v6
6
v5
(5,V3)
28
(5) S:{V1,V2,V3, V5} S’:{V4,V6} 求出(S→ S’)所有 弧,分别计算: (0,V1) S24 =3 + 6=9 v1 S34 =4 + 4=8 S54 =5 + 2=7 S56=5 + 6=11 Min Sij=S54
4 5 6 4 5 1 4 5 6 , 4 5 6 4 5 6 4 5 6
0 1 1 0 4 4 0 2 (1) D 2 0 3 2 3 1 3 ( k 1) ( k 1) (k ) 插入点 v2,得: dij min{dij , dik 1 2 2 4 0 1 5 2 1 2 3 4 1 0 4 3 5 4 0 2 1 2 2 3 4 ( 2) ( 2) D R , 2 0 3 3 1 2 3 4 3 0 5 1 2 3 4 2 3 1 3 5 0 1 1 3 4
( 迭代到第 k 步, rij k )
( ( ( k, 若dijk 1) dikk 1) d kjk 1) , ( k 1) , 否则 rij
即由 D ( k 1) 到 D(k ) 迭代,若某个元素改变(变小) ,则由 R ( k 1) 到
R (k ) 迭代中,相应元素改为 k ,表示到第 k 次迭代,从 vi 到 v j 的最
32
应用:设备更新问题 某企业每年年初,都要作出决定,如果继续使 用旧设备,要付维修费;若购买一台新设备,要付 购买费.试制定一个5年更新计划,使总支出最少。 已知设备在每年年初的购买费分别为11,11, 12,12,13。使用不同时间设备所需的维修费分别 为5,6,8,11,18(万元)。
年份 年初 价格
36
每对顶点间的最短路算法
寻求赋权图中各对顶点之间最短路,显然 可以调用 Dijkstra 算法。具体方法是:每次以 不同的顶点作为起点,用 Dijkstra 算法求出从 该起点到其余顶点的最短路径,反复执行次这 样的操作,就可得到每对顶点之间的最短路。 但这样做需要大量重复计算,效率不高。R. W. Floyd(弗洛伊德)另辟蹊径,提出了比这更好 的算法,操作方式与 Dijkstra 算法截然不同。
使用年 数 每年维 修费 1 11 0-1 5 2 11 1-2 6 3 12 2-3 8 4 12 3-4 11 5 13 4-5 18
33
解 设bi 表示设备在第i 年年初的购买费,ci 表示设备使用i 年后的维修费, V={v1, v2, … ,
v6},点vi表示第i 年年初购进一台新设备,虚设
如城市中的管道铺设,线路安排,工厂布局,
设备更新等等。也可以用于解决其它的最优
化问题。
18
例 如下图所示的单行线交通网,每个弧旁边的数字 表示这条单行线的长度。现在有一个人要从V1出发,经 v2 v4 过这个交通网到达V6, 6 要寻求总路程最短的 线路。 v1 3 1 4 1 v3 v5 从v1 到v6 的路线是很多的。比如从V1 出发,经过V2 ,V4 到达V6或者从V1出发,经过V2,V3,V5到达V6等等。但不同 2 3
相关文档
最新文档