图的最短路径详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
令
pij
1, 0,
vi可达vj 否则
(i j),
pii = 1, i = 1, 2, … , n
称P(D) = ( pij )nn为D的可达矩阵。
v1
e1
ev32
e2
e5
e6
v3 e4
v4
P(
D)
1 0 0 0
1 1 1 1
1 0 1 0
10
1 1
离散数学
练习:求下图的可达矩阵
P=A(1)∨A(2)∨…∨A(n) ∨ In 例 右图所示的有向图D的可达矩阵为
1, vi为ej的终点,
称M(D) = (mij)nm为D的关联矩阵。
v1
e1
v2
e2
e4
e5
v3 e3
v4
M
(D)
1 1 0 0
1 0 1 0
0 0 1 1
0 1 0 1
01
0 1
离散数学
二、邻接矩阵
1、有向图的邻接矩阵 邻接矩阵:设有向图D = <V, E>,V ={v1, v2, …, vn},
v4
e2
e
e
e6
v1
3
e1
v2
5
e
v3
4
M
(G)
1 1 0 0
1 0 0 1
1 1 0 0
0 1 1 0
0 1 1 0
0 0
1 1
离散数学
2、有向图的关联矩阵
设D = <V, E>,V ={v1, v2, …, vn},E ={e1, e2, …, em},
令
mij
1, 0,
vi为ej的始点, vi与ej不关联,
第五讲 最短路径
主要内容: 1、带权图与最短路径 2、Dijkstra标号法
离散数学
本讲要求
1、理解带权图与最短路径的定义; 2、会用Dijkstra标号法求最短路径;
重点难点
Dijkstra标号法.
离散数学
内容回顾
一、关联矩阵
1、无向图的关联矩阵 设无向图G = <V, E>,V ={v1, v2, …, vn},E ={e1, e2, …, em},令mij为顶点vi 与边ej 的关联次数,称 M(G) = (mij)nm为G的关联矩阵。
求给定两顶点之间的最短路径问题称为最短路径问题.
离散数学
设L是G中的一条路径, L的所有边的权之和称作L的 权, 记作w(L).
例1 L1=v0v1v3v5, w(L1)=10, L2=v0v1v4v5, w(L2)=12, L3=v0v2v4v5, w(L3)=11.
离散数学
二、Dijkstra标号法
V {v1 , v2 ,, vn },边集为 E {e1 , e2 ,, em },
则矩阵 A(G ) (aij )nn 称为G的邻接矩阵,
其中
1 aij 0
((vi , v j ) E) ((vi , v j ) E)
离散数学
三、可达矩阵
可达矩阵:设有向图D = <V, E>,V ={v1, v2, …, vn},
的 长 度D(vi ).
若
顶点vi和v
不相
j
邻,Biblioteka Baidu
令Dij
。
(3)令P P vi ,T T vi .
检 查T : 若T , 则 算法 结束 , 否 则转(2).
离散数学
例 题 : 求 下 图 中 顶 点v0到v5的 最 短 路 径 及 其 距 离 。
v1
7
v3
1
2
v0
2
5
3
v5
4
v2
1
6 v4
(1)将 顶 点 集 合V分 成 两 部 分 : 一 部 分 称为 具 有P (永 久 性)标号的集合,另一部分称为具有T (临时性)标 号 的集 合 。 初 始时 ,P {v1},T V P.
离散数学
(2)对T中 每 个 元 素vi 计 算D(vi ), 根 据D(vi )值 找 出T
中 距v1最 短 的 一 个 顶 点 , 写 出vi 到 v1的 最 短 路 径
|E | = m,令 ai(j1)为顶点vi 邻接到vj 的边的条数, 称A(D) = ( ai(j1))nn为D的邻接矩阵。
v1
e1
ev32
e2 e5
e6
v3 e4
v4
A(
D)
0 0 0 0
1 1 0 2
1 0 0 0
0 0
1 0
离散数学
2、无向图的邻接矩阵
定义 设无向图G =〈V,E〉的结点集为
到 目 前 为 止 , 公 认 的 求最 短 路 径 的 较 好 的 算 法是 由 迪克斯特拉(E.W .Dijkstra)于1959年给出的标号法: 设 G V , E,W 是n阶简单带权图,wij 0。 求G中顶点v1到其余各顶点的最短路径。
迪 克 斯 特 拉 算 法(双 标 号 法)如 下 :
1 0 0 0 P 1 1 1 1
1 0 1 1 1 0 1 1
离散数学
一、带权图与最短路径
对于有向图或无向图G的每条边附加一个实数w(e), 则称w(e)为边e上的权.
G连同附加在各边上的实数称为带权图. 常记为G=<V,E,W>.
设带权图G=<V,E,W>,G中每条边带的权均大于等于0, u, v 为G中任意两个顶点,从到的所有通路中带权最小 的通路称为到的最短路径.
(2)P {v0 , v1},T {v2 , v3 , v4 , v5 }.
D(v2 ) min{ 4,1 2} 3; D(v3 ) min{ ,1 7} 8; D(v4 ) min{ ,1 5} 6; D(v5 ) min{ , } ;
将v2加入P.
离散数学
(3)P {v0 , v1, v2 }, T {v3 , v4 , v5 }.
离散数学
解:(1)初始P {v0 },T {v1,
v1
7
v3
1
2
v2 , v3 , v4 , v5 }. D(v0 ) 0.
v0
2
5
3
v5
D(v1 ) 1; D(v2 ) 4;
4
v2
1
6 v4
D(v3 ) ; D(v4 ) ; D(v5 ) ;
将v1加入P. 上次距离
新加点到该点距离
将v3加 入P.
离散数学
(5)P {v0 , v1, v2 , v4 , v3 },
v1
7
v3
1
2
T {v5 }.
v0
2
5
3
v5
D(v5 ) min{ 10,7 2} 9. 4
v1
7
v3
1
2
v0
2
5
3
v5
4
6
D(v3 ) min{ 8, } 8;
v2
1
v4
D(v4 ) min{ 6,3 1} 4;
D(v5 ) min{上次,距离} ;新加点到该点距离
将v4加入P.
(4)P {v0 , v1, v2 , v4 },T {v3 , v5 }.
D(v3 ) min{ 8,4 3} 7; D(v5 ) min{ ,4 6} 10;