最短路问题__迪杰斯特拉算法ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j
)}
min{
T
(v4
),
T
(v5
),
T
(v6
)}
T
(v4
)
T
(v5
)
5,
所以有, p(v4 ) 5, p(v5 ) 5
(6) T (v6 ) min[T (v6 ), P(v4 ) l46, P(v5 ) l56 ] min[, 5 4,5 2] 7
X={1,2,4}, p2=2
ppt课件
13
X={1,2,4}
p1=0
p2=2
2
6
1
2
3
1
10
p4=1
5
9
3
4
7
5
6
5
2
3
4
6
7
4
p6=3
8 8
min {d16,d23,d25,d47}=min {0+3,2+6,2+5,1+2}=min {3,8,7,3}=3
X={1,2,4,6}, p6=3
ppt课件
P(v1) 0
T (vi ) (i 2,3,,6)
(2) T (v2 ) min[ T (v2 ), P(v1) l12 ] min[ , 0 3] 3
T (v3 ) min[ T (v3 ), P(v1 ) l13 ] min[ , 0 5] 5
最短路问题
ppt课件
1
一、问题的提法及应用背景
(1)问题的提法——寻求网络中两点间 的最短路就是寻求连接这两个点的边的 总权数最小的通路。(注意:在有向图 中,通路——开的初等链中所有的弧应 是首尾相连的。)
(2)应用背景——管道铺设、线路安排、 厂区布局、设备更新等。
ppt课件
2
二、最短路算法
第二步:考虑满足如下条件的所有点 v j
①与 v1相邻的点,即(v1, v j ) A ;
② v j 具有T 标号,即v j s ,s 为T 标号点集.
修改 v j 的T标号为 min{T (v j ), p(v1) l1 j} ,并将结
果仍记为T(vj)。= l1j
若网络图中已无满足此ppt课条件 件的T标号点,停止计6算。
T (v4 ) min[ T (v4 ), P(v2 ) l24 ] min[ , 3 2] 5 T (v5 ) min[ T (v5 ), P(v2 ) l25 ] min[ , 3 2] 5
min
v js
{T
(v
j
)}
min{
T
(v3
),
T
p1=0 1
0
p4=1
4
7
6
5
9
p5=6
5
p3=8 3
6
5
2
3
4
6 p6=3
7 4
p7=3
8 8
p8=10
min {d38,d58,d78}=min {8+6,6+4,3+7}=min {14,10,11}=10
X={1,2,3,4,5,6,7,8}, p8=10 ppt课件
18
14
X={1,2,4,6}
p1=0
p2=2
2
6
1
2
3
1
10
p4=1
5
9
3
4
7
5
6
5
2
3
4
6
7
8
4
8
p6=3
p7=3
min {d23,d25,c47,d67}=min {2+6,2+5,1+2,3+4}=min {8,7,3,7}=3
X={1,2,4,6,7}, p7=3
ppt课件
15
X={1,2,4,6,7}
ppt课件
4
(3)选用符号的意义:
① P 标号(Permanent固定/永久性标号)
——从始点到该标号点的最短路权
② T 标号(Temporary临时性标号)
——从始点到该标号点的最短路权上界
ppt课件
5
(4) 计算步骤及例子:
第一步:给起始点v1标上固定标号p(v1) 0 ,
其余各点标临时性标号 T(vj)=, j1;
p1=0 1
3
p2=2 2
2
1
10
p4=1
4
7
6
5
9
p5=6
5
p3=8 3
6
5
2
3
4
6
7
8
4
8
p6=3
p7=3
min {d23,d53,d58,d78}=min {2+6,6+9,6+4,3+8}=min {8,15,10,11}=8
X={1,2,3,4,5,6,7}, p3=8
ppt课件
17
X={1,2,3,4,6,7}
第三步:
令T (v j0
)
min{T
v js
(v
j
)}
, 然后将 v j0
的
T 标号改成P 标号,转入第二步。此时,要
注意将第二步中的 v1 改为 v j0 。
ppt课件
7
例一、
用Dijkstra算法求下图从v1到v6的最短路。
v2 2
v4
3
v1
1
4
22
v6
5 v3 4
2 v5
解 (1)首先给v1以P标号,给其余所有点T标号。
X={1,2,3,4,6,7,8}
p1=0 1
3
p2=2 2
2
1
10
p4=1
4
7
6
5
9
p5=6
5
p3=8 3
6
5
2
3
4
6 p6=3
7 4
p7=3
8 8
p8=10
1到8的最短路径为{1,4,7,5,8},长度为10。
ppt课件
19
1. D氏标号法(Dijkstra);边权非负 2. 列表法(福德法);有负权,无负回路
2
v1 5
v2
6
4
4
2
v4
1
1
v3
3 ppt课件
v5 1
4
2 v6
v7
3
1.D氏标号法(Dijkstra)
(1)求解思路——从始点出发,逐步顺序 地向外探寻,每向外延伸一步都要求是最 短的。
(2)使用条件——网络中所有的弧权均 非负,即 lij 0 。
3
4
7
5
6
5
2
3
4
6
7
4
8 8
min {d12,d14,d16}=min {0+2,0+1,0+3}=min {2,1,3}=1
X={1,4}, p4=1
ppt课件
12
X={1,4}
p1=0
p2=2
2
6
1
2
3
1
10
p4=1
5
9
3
4
7
5
6
5
2
3
4
6
7
4
8 8
min {d12,d16,d42,d47}=min {0+2,0+3,1+10,1+2}=min {2,3,11,3}=2
(v4
),
T
(v5
),
T
(v6
)}
T (v3 ) 4, 所以有, p(v3) 4
ppt课件
9
v2 2
3
v1
1
2
v4
4
2
v6
5 v3 4
2 v5
(5)T (v5 ) min[ T (v5 ), P(v3) l35 ] min[ 5, 4 4] 5
min
v js
{T
(v
min{T
v js
(v
j
)}
min{T
(v6
)
}
7,
所以有,p(v6 ) 7
反向追踪得v1到v6的最短pp路t课件为:v1 v2 v5 v6
10
求从1到8的最短路径
2
6
1
2
3
1
10
5
9
3
4
7
5
6
5
2
3
4
6
7
4
8 8
ppt课件
11
X={1}
p1=0
2
6
1
2
3
1
10
p4=1
5
9
p1=0
p2=2
2
6
1
2
3
1
10
p4=1
5
9
p5=6
3
4
7
5
6
5
2
3
4
6
7
8
4
8
p6=3
p7=3
min {d23,d25,d75,d78}=min {2+6,2+5,3+3,3+8}=min {8,7,6,11}=6
X={1,2,4,5,6,7}, p5=6
ppt课件
16
X={1,2,4,6,7}
min
v js
{T
(v
j
)}
min{
T
(v2
),
T
(v3
),
T
(v4
),
T
(v5
),
T
(v6
)}
T (v2 ) 3, 所以有, p(v2 ) 3
ppt课件
8
例一、
用Dijkstra算法求下图从v1到v6的最短路。
v2 2
v4
3
v1
1
4
22
v6
5 v3 4
2 v5
(4)T (v3 ) min[ T (v3 ), P(v2 ) l23 ] min[ 5 , 3 1] 4