当前位置:文档之家› 【数学建模与MATLAB】第8讲 最短路线问题

【数学建模与MATLAB】第8讲 最短路线问题


先写出带权邻接矩阵:
0 2 1 8 0 6 1 0 7 9 0 5 1 2 W 0 3 0 4 0
9 6 3 0
因 G 是无向图,故 W 是对称矩阵.
迭代 次数 1 2 3 4 5 6 7 8 最后标记:
( d ij2) 是从 v i 到 v j 的只允许以 v 1 、 v 2 作为中间点的路径中最短路的长度.

( ( ( )D(ν)= (d ij ) ) ,其中 dij ) min{ ij 1) , di( 1) d(j 1) } d(
( d ij ) 是从 v i 到 v j 的只允许以 v 1、 v 2、…、 v 作为中间点的路径中最短路 的长度.即是从 v i 到 v j 中间可插入任何顶点的路径中最短路的长,因此
l (ui )
u1
0 0
u2
2 2
u3

u4
8 8 8 8 7
u5
3
u6
6
u7
10 10 10 10 9
u8

12 12 12 12 12 u5
l (v) z (1
u1
u1
7 u6
3 u2
6 u5
9 u4
l (ui )
u1
最后标记:
对有向图G,其关联矩阵M= (mij ) ,其中:
1 mij 1 0
若vi 是e j的起点 若vi 是e j的终点 若vi 与e j 不关联
返回
邻接矩阵
对无向图G,其邻接矩阵 A (aij ) ,其中:
aij 1 0
若vi 与v j 相邻 若vi 与v j 不相邻
数学建模与数学实验 最短路问题
实验目的
1.了解最短路的算法及其应用 2.会用MATLAB软件求最短路
实验内容
1.图 论 的 基 本 概 念
2.最 短 路 问 题 及 其 算 法
3.最 短 路 的 应 用
4.建模案例:最优截断切割问题
5.实验作业
图论的基本概念
一、 图 的 概 念 1.图的定义 2.顶点的次数
定义2 (1)任意两点均有路径的图称为连通图. (2)起点与终点重合的路径称为圈. (3)连通而无圈的图称为树.
定义3 (1)设 P(u , v) 是赋权图 G 中从 u 到 v 的路径, 则称 w( P)
eE ( P )
w(e) 为路径 P 的权.
(2)
在赋权图 G 中,从顶点 u 到顶点 v 的具有最小权的路
P (u, v) ,称为 u 到 v 的最短路.
返回
固 定 起 点 的 最 短 路
最短路是一条路径,且最短路的任一段也是最短路. 假设在u0-v0的最短路中只取一条,则从u0到其 余顶点的最短路将构成一棵以u0为根的树.
因此, 可采用树生长的过程来求指定顶点到其余顶点 的最短路.
Dijkstra 算法:求 G 中从顶点 u0 到其余顶点的最短路.
G
G[{v1,v4,v5}]
G[{e1,e2,e3}]
返回
关联矩阵
对无向图G,其关联矩阵M= (mij ) ,其中:
1 mij 0
若vi与e j 相关联 若vi与e j不关联 e1 e2 1 0 M= 1 1 0 0 0 1
注:假设图为简单图
e3 e4 e5 0 0 1 v1 0 1 0 v2 1 1 0 v3 1 0 1 v4
( ( (1)D(1)= (d ij1) ) ,其中 dij1) min{ ij0) , di(10) d1( 0) } d( j
( d ij1) 是从 v i 到 v j 的只允许以 v 1 作为中间点的路径中最短路的长度.
( 1 ( ( (2)D(2)= (d ij2) ) ,其中 d ij2) min{ ij1) , d i(2) d 21j) } d(
设 G 为赋权有向图或无向图,G 边上的权均非负.
对每个顶点,定义两个标记( l (v) , z(v ) ) ,其中:
l (v) :表从顶点 u0 到 v 的一条路的权. z(v ) :v 的父亲点,用以确定最短路的路线
算法的过程就是在每一步改进这两个标记,使最终 l (v) 为从顶点
u0 到 v 的最短路的权.
对有向赋权图G,其邻接矩阵 A (aij ) ,其中:
wij aij 0
若(vi , v j ) E, 且wij为其权 若i j 若(vi , v j ) E
无向赋权图的邻接矩阵可类似定义.
v1 v 2 0 2 A= 2 0 8 7 3
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 (2)更新 l (v) 、z(v ) : v S V \ S ,若 (v) > l (u) W (u, v ) l 则令l (v) = l (u) W (u, v ) ,z(v ) u=
w (v0 e1v1e2 vk 1ek vk ) 称为一条从 v0 到 vk 的通路,记为 Wv0vk
(2)边不重复但顶点可重复的通路称为道路,记为 Tv0vk (3)边与顶点均不重复的通路称为路径,记为 Pv 0 v k
通路 W v1v4 v1 e 4 v 4 e5 v 2 e1 v1 e 4 v 4 道路 Tv1v4 v1 e1 v 2 e5 v 4 e 6 v 2 e 2 v 3 e3 v 4 路径 Pv1v4 v1 e1 v 2 e5 v 4
注:假设图为简单图
v4 v1 v2 v 3 v 4
v1 v2 v3 0 1 0 1 A= 1 0 1 1 0 1 0 1 1 1 1 0
对有向图G=(V,E) ,其邻接矩阵 A (aij ) ,其中:
aij 1 0
若(vi,v j) E 若(vi,v j) E
(e1 ) v1v2 , (e2 ) v1v3 , (e3 ) v1v4 , (e4 ) v1v4 , (e5 ) v4v4 .
G 的图解如图
V={v1 ,v2 , v3 , v4}, E={e1, e2 , e3, e4, e5},
定义 在图 G 中, V 中的有序偶(vi, vj)对应的边 e , 与 称为图的有向边
3.子图
二、 图 的 矩 阵 表 示
1. 关联矩阵
2. 邻接矩阵
返回
图的定义
定义 有序三元组G=(V,E, )称为一个图,如果:
[1] V= {v1 , v2 ,, vn } 是有限非空集,V 称为顶点集, 其中的元素叫图 G 的顶点. [2] E 称为边集,其中的元素叫图 G 的边. [3] 是从边集 E 到顶点集 V 中的有序或无序的元素 偶对构成集合的映射,称为关联函数. 例1 设 G=(V,E, ),其中
v3 v 4 7 v1 8 3 v2 0 5 v3 5 0 v4
返回
最短路问题及其算法
一、 基 本 概 念 二、固 定 起 点 的 最 短 路 三、每 对 顶 点 之 间 的 最 短 路
返回
基 本 概 念
定义1 在无向图 G=(V,E, )中: (1)顶点与边相互交错且 (ei ) vi 1vi (i=1,2,…,k)的有限非空序列
规定用记号 和 分别表示图的顶点数和边数.
常用术语: (1)端点相同的边称为环. (2)若一对顶点之间有两条以上的边联结,则这些边称为重边. (3)有边联结的两个顶点称为相邻的顶点,有一个公共端点的边 称为相邻的边. (4)边和它的端点称为互相关联的. (5)既没有环也没有平行边的图,称为简单图. (6)任意两顶点都相邻的简单图,称为完备图,记为 Kn,其中 n 为顶点的数目. ( 7)若 V=X Y,X Y= ,且 X 中任两顶点不相邻,Y 中任两顶 点不相邻,则称 G 为二元图;若 X 中每一顶点皆与 Y 中一切顶点 相邻,则 G 称为完备二元图,记为 Km,n,其中 m,n 分别为 X 与 Y 的顶 点数目.
u2
2
u3
1
u4
7 u6
u5
3 u2
u6
6 u5
u7
9 u4
u8
12 u5
l (v) z (v)
0
u1
u1
u1
u2
u5
u1
u4
u6
u8
返回
u3
u7
每 对 顶 点 之 间 的 最 短 路
(一)算法的基本思想
(二)算法原理
1.求距离矩阵的方法
2.求路径矩阵的方法
3.查找最短路路径的方法
(三)算法步骤
返回
算法的基本思想
直接在图的带权邻接矩阵中用插入顶点的方法 依次构造出 个矩阵 D(1)、 D(2)、… 、D( ),使最 后得到的矩阵 D( )成为图的距离矩阵,同时也求出 插入点矩阵以便得到两点间的最短路径.
返回
算法原理—— 求距离矩阵的方法
( 把带权邻接矩阵 W 作为距离矩阵的初值,即 D(0)= (d ij0) ) =W
(3) 设 v 是使 l (v) 取最小值的 S 中的顶点,则令 S=S∪{ v },
* *
u v*
(4) 若S φ ,转 2,否则,停止.
用上述算法求出的 l (v) 就是 u0 到 v 的最短路的权,从 v 的父亲标记
z (v) 追溯到 u0 , 就得到 u0 到 v 的最短路的路线.
相关主题