数学建模最短路
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wij aij 0
若(vi , v j ) E , 且wij为其权 若i j 若(vi , v j ) E
无向赋权图的邻接矩阵可类似定义.
v1 v2 v3 v4 0 2 7 v1 A= 2 0 8 3 v2 8 0 5 v 3 7 3 5 0 v 4
(dijkstra.m)
先写出带权邻接矩阵:
0 2 1 8 0 6 1 0 7 0 5 W 0
1 3 0
9 2 4 0
9 6 3 0
因 G 是无向图,故 W 是对称阵.
迭代 次数 1 2 3 4 5 6 7 8 最后标记:
4) i←i+1,转入2)。
边按升序排序:边(vi, vj)记成eij e34 e23 e38 e17 边 e28 权 1 1 2 2 2
e24 3
e45 3
e57 3
e16 4
e35 e46 e67 e58 e12 e18 边 e78 e56 4 5 6 6 7 7 8 权 4 2 v3 v2 3 5 1 1 7 2 7 v1 8 v8 v5 3 v4 4 3 4 2 v3 v2 6 2 4 1 1 v7 v 6 6 v1 v8 v5 3 v4 TO MATLAB 4 3 2 (kruskal.m) v7 v6
通路 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
定义2 (1)任意两点均有路径的图称为连通图. (2)起点与终点重合的路径称为圈. (3)连通而无圈的图称为树.
(1) 若 V1 V,E1 E,且 V1 则称 G1 是 G 的子图. 特别地,若 V1=V,则 G1 称为 G 的生成子图.
V,且 V1 ,以 V1 为顶点集、两个端点都在 V1 中的 (2) 设 V1 图 G 的边为边集的图 G 的子图,称为 G 的由 V1 导出的子图,记为 G[V1].
v1 v2 v3 v4 0 1 0 1 v1 1 0 1 1 v2 0 1 0 1 v3 1 1 1 0 v4
对有向图G=(V,E) ,其邻接矩阵 A (aij ) ,其中:
1 aij 0
若( vi,v j) E 若( vi,v j) E
对有向赋权图G,其邻接矩阵 A (aij ) ,其中:
第八章
最短路问题
8.1 图论基本概念与最小生成树
8.2
最短路问题
y
实际背景
例1(公路连接问题)某一地区有若干个主要城市,现准备修 建高速公路把这些城市连接起来,使得从其中一个城市都可 以经高速公路直接或间接到达另一个城市。假定已经知道了 任意两个城市之间修建高速公路的成本,那么如何决定在哪 些城市间修建高速公路总成本最小? 例2(最短路问题)一名货车司机奉命在最短的时间内将一车 货物从甲地运往乙地。从甲地到乙地的公路网纵横交错,因 此有多种行车路线,这名司机应选择哪条线路呢?假设货车 的运行速度是恒定的,那么这个问题相当于需要找到一条从 甲地到乙地的最短路。 例3(运输问题)某种原材料有M个产地,现在需要将原材料 从产地运往N个使用工厂。假定M个产地的产量和N个工厂的 需求量已知,单位产品从任一产地到任一工厂的运费已知, 那么,如何安排运输方案可以使总运输成本最低?
(3)设 E1 E,且 E1 ,以 E1 为边集,E1 的端点集为顶点集的图 G 的子图, 称为 G 的由 E1 导出的子图,记为 G[E1].
G
G[{v1,v4,v5}]
G[{e1,e2,e3}]
关联矩阵
对无向图G,其关联矩阵M=(mij ) ,其中:
1 mij 0
S (3) 设v 是使l (v) 取最小值的 u v*
*
v{ 中的顶点,则令 S=S∪
*
},
(4) 若S φ ,转 2,否则,停止.
v 到 的最短路的权,从 v 用上述算法求出的 l ( v ) 就是u0 的父亲标
记 z ( v ) 追溯到u0 , 就得到u0v到 的最短路的路线.
例 求下图从顶点 u1 到其余顶点的最短路. TO MATLAB
树的等价定义
⑴无回路的连通图. ⑵无回路且ε=v-1 其中ε是T的边数,v是T的结点数. ⑶连通的且ε=v-1. ⑷无回路但添加一条新边则得到一条仅有的回路. ⑸连通的,但删去任一条边,T便不连通. ⑹每对结点之间有一条且仅有一条路.
如果图G的生成子图是树, 则称此树为G的生成树.
例:某地要建5个工厂,拟修筑道路连接这5处。经勘测 其道路可依下图的无向边铺设。为使这5处都有道路 相通,问至少要铺设几条路?怎样铺设?
顶点的次数
定义 (1)在无向图中,与顶点 v 关联的边的数目(环算两次)称 为 v 的次数,记为 d(v). (2)在有向图中,从顶点 v 引出的边的数目称为 v 的出度, 记为 d+(v),从顶点 v 引入的边的数目称为的入度,记为 d-(v), d(v)=d+(v)+d-(v)称为 v 的次数.
l (ui )
u1
0
u2
2 2
u3
1
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 (v)
d (v4 ) 4
d (v4 ) 2 d (v4 ) 3 d (v4 ) 5
定理1
vV (G )
d (v) 2 (G)
推论1 任何图中奇次顶点的总数必为偶数.
例 在一次聚会中,认识奇数个人的人数一定是偶数。
定义 设图 G=(V,E),G1=(V1,E1)
子图
定义 若将图 G 的每一条边 e 都对应一个实数 w(e),称 w(e)为边的权,
并称图 G 为赋权图.
和 分别表示图的顶点数和边数. 规定用记号
常用术语: (1) 端点相同的边称为环. (2) 若一对顶点之间有两条以上的边联结,则这些边称为重边. (3) 有边联结的两个顶点称为相邻的顶点,有一个公共端点的边 称为相邻的边. (4) 边和它的端点称为互相关联的. (5) 既没有环也没有平行边的图,称为简单图. (6) 任意两顶点都相邻的简单图,称为完备图,记为 Kn,其中 n 为顶点的数目. ( 7)若 V=X Y,X Y= ,X 中任两顶点不相邻,Y 中任两顶 点不相邻,称 G 为二元图;若 X 中每一顶点皆与 Y 中一切顶点 相邻,称为完备二元图,记为 Km,n,其中 m,n 分别为 X 与 Y 的顶 点数目.
因此, 可采用树生长的过程来求指定顶点到其余顶点 的最短路.
Dijkstra 算法:求 G 中从顶点 u0 到其余顶Βιβλιοθήκη Baidu的最短路 设 G 为赋权有向图或无向图,G 边上的权均非负.
对每个顶点,定义两个标记(l (v) ,z(v ) ) ,其中:
l (v) :表从顶点 u0 到 v 的一条路的权. z(v ) :v 的父亲点,用以确定最短路的路线
实际背景
例4(指派问题)一家公司经理准备安排n名员工去完成n项任 务,每人一项。由于各员工的特点不同,不同的员工去完成 同一项任务时所获得的收益不同,如何分配工作方案使总回 报最大? 例5(中国邮递员问题)一名邮递员负责投递某个街区的邮件。 如何为他设计一条最短的投递路线?即从邮局出发,经过投 递区内每条街道至少一次,最后返回邮局。 例6(旅行商问题)一名推销员准备前往若干城市推销产品。 如何为他设计一条最短的旅行路线?即从驻地出发,经过每 个城市恰好一次,最后返回驻地。
算法的过程就是在每一步改进这两个标记,使最终 l (v) 为从顶点 u0 到 v 的最短路的权.
S:具有永久标号的顶点集
输入: G 的带权邻接矩阵w(u, v)
算法步骤:
(1)赋初值:令 S={ u0 }, l ( u0 ) =0
v S V \ S ,令 l (v) = , z(v ) = u0 u u0 (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=
E e1 , e2 , e3 , e4 , e5
G 的图解如图
定义 在图 G 中,与 V 中的有序偶(vi, vj)对应的边 e,称为图的有向
边(或弧) ,而与 V 中顶点的无序偶 vivj 相对应的边 e,称为图 的无向边 .每一条边都是无向边的图,叫无向图;每一条边都是 有向边的图,称为有向图;既有无向边又有有向边的图称为混 合图.
若vi 与e j 相关联 若vi 与e j 不关联
注:假设图为简单图
e1 1 M= 1 0 0
e 2 e3 e 4 e 5 0 0 0 1 v1 1 0 1 0 v2 0 1 1 0 v3 1 1 0 1 v4
对有向图G,其关联矩阵M=(mij ) ,其中:
实际背景
共同特点: (1)它们的目的都是从若干可能的安排或方案中寻求某种意 义下的最优安排或方案,数学上把这种问题称为优化问题。 (2)它们都易于用图形的形式直观的描述和表达,数学上把 这种与图相关的结构称为网络,与图和网络相关的优化问题 称为网络优化。
图论基本概念与最小生成树
一、 图 的 概 念 1、图的定义 2、顶点的次数
1 mij 1 0
若vi 是e j的起点 若vi 是e j的终点 若vi 与e j 不关联
邻接矩阵
对无向图G,其邻接矩阵 A (aij ) ,其中:
1 aij 0
若vi 与v j 相邻 若vi 与v j 不相邻
A=
注:假设图为简单图
v1
v1
v4
v2
v3 v5
v1
v2
v2
v3 v4 v5
v4 v3 v5
最小生成树(Kruskal(克鲁斯克尔)算法)
设图G有n个结点,以下算法产生的是最小生成树 1)选取最小权边e1,置边数i←1; 2)i=n-1结束,否则转入3); 3)设已选择边为e1,e2,…,ei, 在G中选取不同于 e1,e2,…,ei的边ei+1,使{e1,e2,…,ei,ei+1}中无回路且ei+1 是满足此条件的最小边;
最短路问题及其算法
一、基本概念 二、固定起点的最短路 三、每对顶点之间的最短路
基 本 概 念
定义1 在无向图 G=(V,E)中: (1)顶点与边相互交错的有限非空序列 w (v0 e1v1e2 vk 1ek vk ) 称为一条从 v0 到 vk 的通路,记为 Wv0vk (2)边不重复但顶点可重复的通路称为道路,记为 Tv0vk (3)边与顶点均不重复的通路称为路径,记为 Pv 0 v k
定义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为根的树.
3、子图
二、 图 的 矩 阵 表 示
1、 关联矩阵
2、 邻接矩阵 三、 最 小 生 成 树
定义
[1] V v1, v2 ,, vn 是有穷非空集,称为顶点集 其中的元素叫图G的顶点。
有序二元组G=(V,E )称为一个图.
[2] E称为边集,其中的元素称为图G的边。
例 设G=(V,E),其中 V v1 , v2 , v3 , v4