数学建模图论方法专题

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D(ν)即是距离矩阵.
算法原理—— 求路径矩阵的方法
在建立距离矩阵的同时可建立路径矩阵R.
R= (rij ) , rij 的含义是从 v i 到 v j 的最短路要经过点号为 rij 的点.
R(0) (rij(0) ) ,
r (0) ij
j
每求得一个 D(k)时,按下列方式产生相应的新的 R(k)
[3] 是从边集 E 到顶点集 V 中的有序或无序的元素
偶对构成集合的映射,称为关联函数.
例1 设 G=(V,E, ),其中
V={v1 ,v2 , v3 , v4}, E={e1, e2 , e3, e4, e5},
(e1) v1v2 , (e2 ) v1v3, (e3) v1v4, (e4 ) v1v4, (e5 ) v4v4 .
算法的过程就是在每一步改进这两个标记,使最终 l(v) 为从顶点 u0 到 v 的最短路的权.
S:具有永久标号的顶点集
输入: G 的带权邻接矩阵 w(u, v)
算法步骤:
(1)赋初值:令 S={ u0 }, l(u0 ) =0 v S V \ S ,令 l(v) =W(u0 ,v) , z(v) = u0 u u0
10 12
9 12
12
6 9 12 u5 u4 u5
最后标记:
l (v) z (v)
l(ui )
u1 u2 u3 u4
u5 u6
u7 u8
0 2 1 7 3 6 9 12
u1 u1
u1 u6 u2
u5 u4
u5
u2
u5
u 1
u 4
u 6
u8
u 3
u 7
2.每对顶点之间的最短路
例 求下图中加权图的任意两点间的距离与路径.
3. 图 的 矩 阵 表 示
邻接矩阵
v1
0
1
A=
0 1
v2 v3 v4
1 0 1 v1
0 1 1 v2
1 1
0 1
1 0
v3 v4
v1
0
A= 2
7
v2 v3 v4
2 7 v1 0 8 3 v2
8 3
0 5
5 0
v3 v4
二.最 短 路 1.固定起点的最短路
例 求下图从顶点 u 1 到其余顶点的最短路.
G 的图解如图
2.常用术语
无向图 有向图 顶点的度 子图 网络图
用图论思想求解
例1 一摆渡人欲将一只狼,一头羊,一蓝菜从 河西渡过河到河东,由于船小,一次只能带 一物过河,并且,狼与羊,羊与菜不能独处, 给出渡河办法.
解: 用四维0-1向量表示(人,狼,羊,菜)的在西 岸状态,(在西岸则分量取1,否则取0.)
r (k) ij
k rij(k 1)
若d
(k ij
1)
d (k 1) ik
d
(k kj
1)
否则
即当
v
被插入任何两点间的最
k
短路径时,被记录在R(k)中,依
次求D() 时求得 R() ,可由 R()来查
找任何点对之间最短路的路径.
算法原理—— 查找最短路路径的方法
若rij( ) p1 ,则点 p1 是点 i 到点 j 的最短路的中间点.
0 1 5 7 2
1
0
4
6 3
D(3)
5
7
4 6
0 2
2 03
1 3,
3 0 5
2 3 1 3 5 0
0 1 5 7 10 2
1 2 2 3 4 6
1
0
46
9
3
1
2
3
3
4
1
D(4)
5
7
402 620
10 9 5 3
2 3 1 3
5 3 0 5
1 3, 5
0
R(4)
(2)更新l(v) 、 z(v) : v S V \ S ,若l(v) >l(u) W (u, v) 则令l(v) = l(u) W (u, v) ,z(v) = u
(3) 设 v * 是使 l(v) 取最小值的 S 中的顶点,则令 S=S∪{ v * }, u v*
(4) 若S φ,转 2,否则,停止. 用上述算法求出的 l(v) 就是 u0 到 v 的最短路的权,从 v 的父亲标记
(0,0,1,0) (0,0,0,1) (0,0,0,0)
以十个向量作为顶点,将可能互相转移的状态连线,则得10个 顶点的偶图.
问题: 如何从状态(1,1,1,1)转移到(0,0,0,0)?
方法 : 从状态(1,1,1,1)开始,沿关联边到达没有到达的相邻顶 点,到(0,0,0,0)终止,得到有向图即是.
1
2
3
4
5
1
D (1)
4
0 2
2 0
3
1 3,
1
R (1)
1
2 2
34 34
5 5
6 6,
3 0 5
2 3 1 3 5 0
1 2 3 4 5 6
1 1 3 4 5 6
插入点 v3,得:
0 1 5 2
1
0
4 3
D(2)
5
4
0 2
2 0
1 3 3,
3 0 5
(2) ij
是从
v
i

v
j
的只允许以
v
1

v 2 作为中间点的路径中最短路的长度.


)D(ν)=
(d
( ij
)
)
,其中 di(j )
min{di(j 1) , di( 1)
d(j 1)}
d
( ij
)
是从
v
i

v
j
的只允许以
v
1、
v
2、…、
v
作为中间点的路径中最短路
的长度.即是从 v i 到 v j 中间可插入任何顶点的路径中最短路的长,因此
2 3
4 1
2 3 4 1
3 3 4 3
4 4 4 4
4 5 5 5
6 6, 6
6
插入点 v5,得: D(5) D(4) , R(5) R(4) ,
插入点 v6,得:
0 1 3 5 7 2
1 0 4 6 8 3
D(6)
3 5
4 6
0 2
2 0
5 3
1 3,
7 8 5 3 0 5
2 3 1 3 5 0
数学建模 图论方法专题
内容
一.图论的基本概念 二.最短路 三.行遍性问题 四.网络流
图论的基本概念
问题1:哥尼斯堡七桥问题 能否从任一陆地出发通过每座桥恰好回到 出发点?
C
A
B
D
C
A
B
D
欧拉指出:如果每块陆地所连接的桥都是偶数座,则从任一陆 地出发,必能通过恰好一次而回到出发地.
问题2:哈密顿圈(环球旅行游戏)
对所有 i,j,若 d(i,k)+d(k,j)<d(i,j),则 d(i,j) d(i,k)+d(k,j), r(i,j) k
(3) 若 k= ,停止.否则 k k+1,转(2).
0 1 2
1
0
4
4
D (0)
4
0 2
2 0
1 3 3,
3 0 5
2 4 1 3 5 0
1 2 3 4 5 6
4 0 2 1 D(1) 2 0 3 3,
3 0 5
2 3 1 3 5 0
1 2 2 4 5 6
1
2
3
4
5
1
R(2)
2 1
2 2
3 3
4 4
5 5
6 6,
1 2 3 4 5 6
1 1 3 4 5 6
3.最 短 路 的 应 用
例 1 设备更新问题:企业使用一台设备,每年年初,企业领导就 要确定是购置新的,还是继续使用旧的.若购置新设备,就要支付一 定的购置费用;若继续使用,则需支付一定的维修费用.现要制定一 个五年之内的设备更新计划,使得五年内总的支付费用最少.
十二面体的20个顶点代表世界上20个城市,能否 从某个城市出发在十二面体上依次经过每个城 市恰好一次最后回到出发点?
问题3:四色问题
对任何一张地图进行着色,两个共同边界 的国家染不同的颜色,则只需要四种颜色 就够了.
问题4:关键路径问题
一项工程任务,大到建造一座大坝,一座体 育中心,小至组装一台机床,一架电视机,都 要包括许多工序,这些工序相互约束,只有 在某些工序完成之后,一个工序才能开始, 即它们之间存在完成的先后次序关系,一 般认为这些关系是预知的,而且也能够完 成每个工序所需要的时间.
共16种状态,
由题设,状态(0,1,1,0),(0,0,1,1),(0,1,1,1)是 不允许的,
从而对应状态(1,0,0,1),(1,1,0,0),(1,0,0,0) 也是不允许的,
人在河西: (1,1,1,1) (1,1,1,0)
(1,1,0,1) (1,0,1,1) (1,0,1,0)
人在河东: (0,1,0,1) (0,1,0,0)
这时工程领导人员迫切希望了解最
少需要多少时间才能够完成整个工程项 目,影响工程进度的要害工序是哪几个?
一.图的基本概念
1.定义 有序三元组G=(V,E, )称为一个图,如果:
[1] V={v1, v2 ,, vn }是有限非空集,V 称为顶点集,
其中的元素叫图 G 的顶点. [2] E 称为边集,其中的元素叫图 G 的边.
0 1 5 7 10 2
1
046
9
3
D(5)
5 7
402 620
5 3
1 3,
10 9 5 3 0 5
2 3 1 3 5 0
1 2 6 6 6 6
1
2
3
3
6
1
R (6)
6 6
2 3
3 3
4 4
4 5
6 6.
6 6 4 4 5 6
1 1 3 4 5 6
0 1 3 5 7 2
1 0 4 6 8 3
2 3 1 3 5 0
0 1 5 7 2
1 2 2 3 5 6
1
0
4
6 3
1
2
3
3
5
1
D(3)
5
7
2
4 6 3
0 2 1
2 0 3 3
3 0 5
1 3, 5
0
R(3)
2 3
1
1
2 3 2 1
3 3 3 3
4 4 4 4
5 5 5 5
6 6, 6
6
插入点 v4,得:
然后用同样的方法再分头查找.若:
(1)向点
i
追溯得:
r ( ip1
)
p2
,
r ( ip2
)
p3
,…,
r ( ipk
)
pk
(2)向点
j
追溯得:
r ( ) p1 j
q1
,
r ( ) q1 j
q2
,…,
r ( qm
) j
j
则由点i到j的最短路的路径为: i, pk ,, p2 , p1,q1, q2 ,, qm , j
1 1 3 4 5 6
由v6向v2追溯:
R(6) 62
1,
R(6) 12
2.
所以从到的最短路径为:v5 v6 v1 v2.
插入点 v2,得:
0 1 5 2
1
0
4 3
D(2)
5
4
0 2
2 0
3
1 3,
3 0 5
2 3 1 3 5 0
0 1 2
1
0
4
3
D(6)
3 5
4 6
0 2
2 0
5 3
1 3,
7 8 5 3 0 5
2 3 1 3 5 0
1 2 6 6 6 6
1
2
3
3
6
1
d (6) 52
8
故从v5到v2的最短路为8
R(6)
6 6
2 3
3 3
4 4
4 5
6 6.
R(6) 52
6
由v6向v5追溯:
R(6) 56
6.
6 6 4 4 5 6
1
2
3
4
5
6
R (0)
1
1
2 2
3 3
4 4
5 5
6 6,
1 2 3 4 5 6
1 2 3 4 5 6
0 1 2
1
0
4
4
D (0)
4
0 2
2 0
1 3 3,
3 0 5
2 4 1 3 5 0
插入点 v1,得:
0 1 2
1
0
4 3
1 2 3 4 5 6
0
2 0
1
0
8 6
7
1
9
W
0 5 1 2 0 3 9
0 4 6
0
3 0
Dijkstra 算法:求 G 中从顶点 u0 到其余顶点的最短路.
设 G 为赋权有向图或无向图,G 边上的权均非负.
对每个顶点,定义两个标记( l(v) , z(v) ),其中: l(v) :表从顶点 u0 到 v 的一条路的权. z(v) :v 的父亲点,用以确定最短路的路线
算法的基本思想
直接在图的带权邻接矩阵中用插入顶点的方法
依次构造出 个矩阵 D(1)、 D(2)、… 、D( ),使最 后得到的矩阵 D( )成为图的距离矩阵,同时也求出
插入点矩阵以便得到两点间的最短路径.
算法原理—— 求距离矩阵的方法
把带权邻接矩阵 W 作为距离矩阵的初值,即 D(0)= (di(j0) ) =W
z(v) 追溯到 u0 , 就得到 u0 到 v 的最短路的路线.
TO MATLAB(road1)
迭代 次数
1 2 3 4 5 6 7 8
最后标记:
l (v) z (v)
u1
u2

02
2
l(ui )
u3 u4
u5
18
8
8
3
8
7
02 17
3
u1 u1
u1 u6
u2
u6 u7
u8
10
10
6 10 12
(1)D(1)=
(di(j1)
)
,其中
d (1) ij
min{di(j0)
,
d (0) i1
d (0) 1j
}
Βιβλιοθήκη Baidu
d
(1) ij
是从
v
i

v
j
的只允许以
v
1
作为中间点的路径中最短路的长度.
(2)D(2)=
(di(j2) )
,其中
d (2) ij
min{di(j1)
,
d (1) i2
d (1) 2j
}
d
i
pk
p3 p2 p1
q1
q2
qm
j
算法步骤
Floyd 算法:求任意两点间的最短路.
D(i,j):i 到 j 的距离. R(i,j):i 到 j 之间的插入点. 输入: 带权邻接矩阵 w(i,j)
(1)赋初值:
对所有 i,j, d(i,j) w(i,j), r(i,j) j, k 1
(2) 更新 d(i,j), r(i,j)
相关文档
最新文档