数学建模-最短路问题
数模最短路与最优问题
G
G[{v1,v4,v5}]
G[{e1,e2,e3}]
返回
关联矩阵
对无向图G,其关联矩阵M= (mij ) ,其中:
1 mij 0
若vi与e
相关联
j
若vi与e
不关联
j
注:假设图为无向简单图
e1 e2 e3 e4 e5
1 0 0 0 1 v1
M= 1 1 0 1 0 v2
0 0
0 1
1 1
1 0
算法的过程就是在每一步改进这两个标记,使最终 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
• Euler把南北两岸和四个岛抽象成四个点,将连接这些 陆地的桥用连接相应两点的一条线来表示,就得到如下 一个简图:
A
N
S
B
欧拉的结论
• 欧拉指出:一个线图中存在通过每边一次仅一次 回到出发点的路线的充要条件是:
• 1)图是连通的,即任意两点可由图中的一些边连接 起来;
• 2)与图中每一顶点相连的边必须是偶数.
(2)在有向图中,从顶点 v 引出的边的数目称为 v 的出度, 记为 d+(v) ,从顶点 v 引入的边的数目称为 v 的入度,记为d-(v) ,
d (v) = d+(v) + d-(v) 称为 v 的次数.
d(v4 ) 4
d (v4 ) 2 d (v4 ) 3 d (v4 ) 5
定理1 d(v) 2 (G) vV (G)
数学建模最短路问题
设链W=v0e1v1e2…eivi已选定,则从E\{e1,e2,…,ei}中选取一条与ei相邻的边ei+1,除非已无选择余地,否则不要选G\{e1,e2,…,ei}的桥。
直到(2)不能进行为止,算法终止时得到的是Euler回路。
欧拉图与Fleury算法
01
02
如果G不是连通的Euler图,则G中含有奇度顶点(但奇度顶点的个数为偶数),此时图G的一条邮递路线必定在某些街着上重复走了一次或多次,它等价于在这些边上加一条或多条重复边,使新图G' 不含奇度顶点,并且所加边的总权为最小。
01
Dijkstra Algorithm
02
Dijkstra算法所需时间与n2成正比。
最短路问题求解算法
用Dijkstra求解最短路问题
例 求从顶点u0到其余顶点的最短路。
解:先写出距离矩阵(实际应为对称矩阵)
Dijkstra算法的迭代步骤如下
u0 u1 u2 u3 u4 u5 u6 u7
1 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 2 1 8 ∞ ∞ ∞ ∞ 3 2 8 ∞ ∞ 10 ∞ 4 8 3 ∞ 10 ∞ 5 8 6 10 12 6 7 10 12 7 9 12 8 12
第11章 最短路问题
添加副标题
1 问题的提出
STEP2
STEP1
图论是离散数学的重要分支,在物理学、化学、系统控制、电力通讯、编码理论、可靠性理论、科学管理、电子计算机等各个领域都具有极其广泛的应用。
1
图论的历史可以追溯到1736年,这一年发表了图论的第一篇论文,解决了著名的哥尼斯堡(Königsberg)七桥问题。
02
1 匹配与覆盖
基本概念
定义1设若M的边互不相邻,则称M是G的一个匹配。M的边称为匹配边,E\M的边称为自由边,若(u, v)∈M,则称u(或v)是v(或u)的配偶。若顶点v与M的一条边关联,则称v是M-饱和的;否则称为M-非饱和的。若M使G中每个顶点都是M-饱和的,称M是G的完美(理想)匹配。设M是G的一个匹配,若不存在M' 使|M'|>|M|,则称M为G的最大匹配。
最短路问题(数学建模资料)
Network Optimization
/netopt
清华大学课号:40420213(本),70420133(研)
第5章 最短路问题(Shortest Path Problem)
清华大学数学科学系 谢金星 办公室:理科楼1308# (电话:62787812) Email:jxie@ /faculty/~jxie
u s 0, u min{u w }. i ij j i j
一般情况下直接求解最短路方程是相当困难的.
(5.7) (5.8)
10
最短路树(树形图)
定理5.1 对于只含正有向圈的连通有向网络,从起点s到任一顶 点 j 都存在最短路,它们构成以起点 s 为根的树形图(称为最短 路树(Tree of Shortest Paths)或最短路树形图(Shortest Path Arborescence)),最短路的长度可以由Bellman方程唯一确定.
1
最短路问题的例子和意义
S
T
许多实际问题都可以转化为最短路问题
其有效算法经常在其它网络优化问题中作为子算 法调用
2
最短路问题的例子 - 单产品、无能力限制的批量问题
例5.1 (Single-level Uncapacitated Lotsizing) 某工厂生产某种产品用以满足市场需求,且已知在时段t中的市 场需求为dt . 在某时段t, 如果开工生产, 则生产开工所需的生 产准备费为st , 单件产品的生产费为ct .在某时段t期末, 如果有 产品库存, 单件产品的库存费为ht . 假设初始库存为0, 不考虑 能力限制, 工厂应如何安排生产, 可以保证按时满足生产, 且 使总费用最小? (Wagner – Whitin,1958) 假设在时段t, 产品的生产量为xt , 期末产品的库存为It (I0 =0); 用二进制变量yt表示在时段t工厂是否进行生产准备. T T 假设费用均非负,则在最优解中 I 0 I T 0 ,即 xt d t
终稿-数学建模与数学实验-最短路问题-行遍性问题
M= 1 1 0 1 0 v2
0 0
0 1
1 1
1 0
0 1
v3 v4
对有向图G,其关联矩阵M= (mij ) ,其中:
1 mij 1
0
若vi
是e
的起点
j
若vi
是e
的终点
j
若vi与e j不关联
返回
邻接矩阵
对无向图G,其邻接矩阵 A (aij ) ,其中:
v1
e1
v2
e4
e5 e2
v4
e3
e6 v3
v5
e7
e8
v7 e9
v6
情形2 G 有2n 个奇次顶点(n 2)
Edmonds 最小对集算法:
基本思想:
先将奇次顶点配对,要求最佳配对,即点对之间距离总和 最小.再沿点对之间的最短路径添加重复边得欧拉图 G*,G*的 欧拉巡回便是原图的最佳巡回.
算法步骤:
C= v1,v2,… ,vi,,vj , vj-1,… , vi+1,vj+1, …,vn,v1 (3)对 C 重复步骤(2),直到条件不满足为止,最后得到的 C 即 为所求.
例 对以下完备图,用二边逐次修正法求较优H圈.
返回
数学建模与数学实验 最短路问题
实验目的 实验内容
1.了解最短路的算法及其应用 2.会用MATLAB软件求最短路
中.
欧拉图
定义1 设 G=(V,E)是连通无向图 (1)经过 G 的每边至少一次的闭通路称为巡回. (2)经过 G 的每边正好一次的巡回称为欧拉巡回. (3)存在欧拉巡回的图称为欧拉图. (4)经过 G 的每边正好一次的道路称为欧拉道路.
数学建模实验报告-第十一章-最短路问题
实验名称:第十一章最短路问题一、实验内容与要求掌握Dijkstra算法和Floyd算法,并运用这两种算法求一些最短路径的问题.二、实验软件MATLAB7.0三、实验内容1、在一个城市交通系统中取出一段如图所示,其入口为顶点v1,出口为顶点v8,每条弧段旁的数字表示通过该路段所需时间,每次转弯需要附加时间为3,求v1到v8的最短时间路径.63V4 2 V7 4 V8程序:function y=bijiaodaxiao(f1,f2,f3,f4)v12=1;v23=3;v24=2;v35=1;v47=2;v57=2;v56=6;v68=3;v78=4;turn=3;f1=v12+v23+v35+v56+turn+v68;f2=v12+v23+v35+turn+v57+turn+v78;f3=v12+turn+v24+turn+v47+v78;f4=v12+turn+v24+v47+turn+v57+turn+v56+turn+v68;min=f1;if f2<minmin=f2;endif f3<minmin=f3;endif f4〈minmin=f4;endminf1f2f3f4实验结果:v1到v8的最短时间路径为15,路径为1—2-4-7-8.2、求如图所示中每一结点到其他结点的最短路。
V110 V3V59 V6function[D,R]=floyd(a)n=size(a,1);D=afor i=1:nfor j=1:nR(i,j)=j;endendRfor k=1:nfor i=1:nfor j=1:nif D(i,k)+D(k,j)<D(i,j)D(i,j)=D(i,k)+D(k,j);R(i,j)=R(i,k);endendendkDRend程序:>〉a=[0 3 10 inf inf inf inf inf;3 0 inf 5 inf inf inf inf;10 inf 0 6 inf inf inf inf;inf 5 6 0 4 inf 10 inf ;inf inf inf 4 0 9 5 inf ;inf inf inf inf 9 0 3 4;inf inf inf 10 5 3 0 6;inf inf inf inf inf 4 6 0;];[D,R]=floyd(a)实验结果:D =0 3 10 Inf Inf Inf Inf Inf3 0 Inf 5 Inf Inf Inf Inf10 Inf 0 6 Inf Inf Inf InfInf 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8k =1D =0 3 10 Inf Inf Inf Inf Inf3 0 13 5 Inf Inf Inf Inf10 13 0 6 Inf Inf Inf InfInf 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 4 5 6 7 81 2 1 4 5 6 7 81 1 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8 k =2D =0 3 10 8 Inf Inf Inf Inf3 0 13 5 Inf Inf Inf Inf10 13 0 6 Inf Inf Inf Inf8 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 5 6 7 81 2 1 4 5 6 7 81 1 3 4 5 6 7 82 234567 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8 k =3D =0 3 10 8 Inf Inf Inf Inf3 0 13 5 Inf Inf Inf Inf10 13 0 6 Inf Inf Inf Inf8 5 6 0 4 Inf 10 InfInf Inf Inf 4 0 9 5 InfInf Inf Inf Inf 9 0 3 4Inf Inf Inf 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 5 6 7 81 2 1 4 5 6 7 81 1 3 4 5 6 7 82 234567 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8k =4D =0 3 10 8 12 Inf 18 Inf3 0 11 5 9 Inf 15 Inf10 11 0 6 10 Inf 16 Inf8 5 6 0 4 Inf 10 Inf12 9 10 4 0 9 5 InfInf Inf Inf Inf 9 0 3 418 15 16 10 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 2 6 2 81 2 4 4 4 6 4 81 4 3 4 4 6 4 82 234567 84 4 4 4567 81 2 3 4 5 6 7 84 4 4 4567 81 2 3 4 5 6 7 8 k =5D =0 3 10 8 12 21 17 Inf3 0 11 5 9 18 14 Inf10 11 0 6 10 19 15 Inf8 5 6 0 4 13 9 Inf12 9 10 4 0 9 5 Inf21 18 19 13 9 0 3 417 14 15 9 5 3 0 6Inf Inf Inf Inf Inf 4 6 0R =1 2 3 2 2 2 2 81 2 4 4 4 4 4 81 4 3 4 4 4 4 82 2345 5 5 84 4 4 4567 85 5 5 5 567 85 5 5 5 567 81 2 3 4 5 6 7 8 k =6D =0 3 10 8 12 21 17 253 0 11 5 9 18 14 2210 11 0 6 10 19 15 238 5 6 0 4 13 9 1712 9 10 4 0 9 5 1321 18 19 13 9 0 3 417 14 15 9 5 3 0 625 22 23 17 13 4 6 0 R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 4567 65 5 5 5 567 85 5 5 5 567 86 6 6 6 6 678 k =7D =0 3 10 8 12 20 17 233 0 11 5 9 17 14 2010 11 0 6 10 18 15 218 5 6 0 4 12 9 1512 9 10 4 0 8 5 1120 17 18 12 8 0 3 417 14 15 9 5 3 0 623 20 21 15 11 4 6 0 R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 45 7 7 77 7 7 7 7 6 7 85 5 5 5 567 87 7 7 7 7 6 7 8 k =8D =0 3 10 8 12 20 17 233 0 11 5 9 17 14 2010 11 0 6 10 18 15 218 5 6 0 4 12 9 1512 9 10 4 0 8 5 1120 17 18 12 8 0 3 417 14 15 9 5 3 0 623 20 21 15 11 4 6 0R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 45 7 7 77 7 7 7 7 6 7 85 5 5 5 567 87 7 7 7 7 6 7 8D =0 3 10 8 12 20 17 233 0 11 5 9 17 14 2010 11 0 6 10 18 15 218 5 6 0 4 12 9 1512 9 10 4 0 8 5 1120 17 18 12 8 0 3 417 14 15 9 5 3 0 623 20 21 15 11 4 6 0 R =1 2 3 2 2 2 2 21 2 4 4 4 4 4 41 4 3 4 4 4 4 42 2345 5 5 54 4 4 45 7 7 77 7 7 7 7 6 7 85 5 5 5 567 87 7 7 7 7 6 7 8四、实验体会。
数学建模模最短路
基于最短路问题的研究及应用令狐采学姓名:Fanmeng学号:指导老师:摘要最短路问题是图论中的一大问题,对最短路的研究在数学建模和实际生活中具有很重要的实际意义,介绍最短路问题的定义及这类问题的解决办法Dijkstra算法,并且能够在水渠修建实例运用到此数学建模的方法,为我们解决这类图论问题提供了基本思路与方法。
关键字数学建模最短路问题Dijkstra算法水渠修建。
目录第一章.研究背景1第二章.理论基础22.1 定义22.2 单源最短路问题Dijkstra求解:22.2.1 局限性22.2.2 Dijkstra算法求解步骤22.2.3 时间复杂度22.3 简单样例3第三章.应用实例43.1 题目描述43.2 问题分析43.3符号说明43.4 模型假设53.5模型建立与求解53.5.1模型选用53.5.2模型应用及求解53.6模型评价5第四章. 参考文献5第五章.附录6第一章.研究背景在现实生活中中,我们经常会遇到图类问题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。
顶点的集合是V,边的集合是E的图记为G[V,E] ,连接两点u和v的边用e(u,v)表示[1]。
最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图,然后来进行求的接任意两点之间的最短距离。
因此掌握最短路问题具有很重要的意义。
第二章.理论基础2.1 定义最短路问题(short-path problem ):若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点,(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。
最短路问题是网络理论解决的典型问题之一,可用来解决管道铺设,线路安装,厂区布局和设备更新等实际问题[2]。
2.2 单源最短路问题Dijkstra 求解: 2.2.1局限性Dijkstra 算法不能够处理带有负边的图,即图中任意两点之间的权值必须非负。
第5讲最短路问题
称为 G 的由 E1 导出的子图,记为 G[E1].
G
G[{v1,v4,v5}]
G[{e1,e2,e3}]
返回
关联矩阵
对无向图G,其关联矩阵M= (mij )? ?? ,其中:
mij
?
?1 ??0
插入点矩阵以便得到两点间的最短路径.
返回
算法原理—— 求距离矩阵的方法
把带权邻接矩阵
W 作为距离矩阵的初值,即
D(0)=
(d
(0 ij
)
)? ??
=W
(1)D(1)=
(d
(1) ij
)?
??
,其中
d
(1) ij
?
min{d
(0) ij
,
d
(0 i1
)
?
d (0) 1j
}
d
(1) ij
是从
v
i
到
v
j
若vi是e j的起点 若vi是e j的终点 若vi与e j不关联
返回
邻接矩阵
对无向图G,其邻接矩阵 A ? (aij )? ?? ,其中:
aij ? ???10
若vi与v j相邻 若vi与v j不相邻
注:假设图为简单图
v1
?0 ? A= ? 1
? ???
0 1
v2 v3 v4
1
0
1
? ?
v1
0 1 1 ?v2
1.图 论 的 基 本 概 念
2.最 短 路 问 题 及 其 算 法
3.最 短 路 的 应 用 4.建模案例:最优截断切割问题
最短路问题
最短路问题何谓最短路?最短路问题考虑的是有向网络N=(V,A,W),其中弧(i,j)∈A 对应的权又称为弧长或费用。
对于其中的两个顶点s,t∈V,以s 为起点,t 为终点的有向路称为s-t 有向路,其所经过的所有弧上的权(或弧长、费用)之和称为该有向路的权(或弧长、费用)。
所有s-t 有向路中权最小的一条称为s-t 最短路。
ij w 如何得到最短路?最短路问题的线性规划描述如下:(,)m i ni j i j i j A w x ∈∑ (1):(,):(,)1,,..1,,0,,ij ji j i j A j j i A i s s t x x s i s t ∈∈=⎧⎪t −=−=⎨⎪≠⎩∑∑ (2) 0ij x ≥ (3) 其中决策变量表示弧(i,j)是否位于s-t 路上:当=1时,表示弧(i,j)位于s-t 路上,当=0时,表示弧(i,j)不在s-t 路上。
本来,应当是0-1变量,但由于约束(2)的约束矩阵就是网络的关联矩阵,它是全幺模矩阵,因此0-1变量可以松弛为区间[0,1]中的实数(当用单纯形法求解时,将得到0-1整数解)。
ij x ij x ij x ij x 值得注意的是,我们这里将变量直接松弛为所有非负实数。
实际上,如果可以取0-1以外的整数,则约束条件并不能保证对应于非零的弧所构成的结构(记为P)一定是一条路,因为这一结构可能含有圈。
进一步分析,我们总是假设网络本身不含有负圈,而任何正圈不可能使目标函数最小,因此上面的约束条件(2),(3)可以保证当达到最优解时,P 如果包含圈,该圈一定是零圈,我们从P 中去掉所有的零圈,就可以得到最短路。
ij x ij x ij x 无圈网络与正费用网络一般采用标号设定算法。
Bellman 方程(最短路方程)将约束条件(2)两边同时乘以-1,得到其对偶问题为:m ax()t s u u − (4)..,(,)j i ij s t u u w i j A −≤∀∈ (5)根据互补松弛条件,当x 和u 分别为原问题和对偶问题的最优解时:()0,(,i j j i i j )x u u w i j −−=∀∈A (6) 因此,当某弧(i,j)位于最短路上时,即对应的变量>0时,一定有ij x j i i u u w −=j 。
数学建模floyd算法最短路算法详解
最短路算法
任意一对顶点之间的最短路算法:Floyd算法
(一)算法的基本思想
(二)算法原理 1、求距离矩阵的方法 2、求路径矩阵的方法 3、查找最短路路径的方法
选址问题--中心问题
例 2 某城市要建立一个消防站,为该市所属的七个区服务, 如图所示.问应设在那个区,才能使它至最远区的路径最短.
(1)用 Floyd 算法求出距离矩阵 D= (dij ) .
(2) 计算在各点vi 设立服务设施的
最大服务距离S (vi ) .
S (vi
)
max{d
1 j
算法原理—— 查找最短路路径的方法
若 rij( ) p1,则点 p1 是点 i 到点 j 的最短路的中间点.
然后用同样的方法再分头查找.若:
(1)向点 i 追朔得:rip(1 )
p2
r,
( ) ip 2
p3 ,…,rip(k )
pk
(2) 向点
j
追朔得:
r ( ) p1 j
q1
1 4 4 4 4 4 2 3 3 3
D
5
2
0
2
4 ,
R
4
2
3
4
5
3 4 2 0 6
1 3 3 4 3
9
6
4
6
0
4
3
3
3
5
数学建模-最短路问题
,其中
d (2) ij
min{di(j1)
,
d (1) i2
d
(1) 2j
}
d
(2) ij
是从
v
i
到
v
j
的只允许以
v
1
、
v 2 作为中间点的路径中最短路的长度.
…
(
)D(ν)=
(d
( ij
)
)
,其中 di(j )
min{di(j 1) , di( 1)
d(j 1)}
0
S(v1)=10, S(v2)=7, S(v3)=6, S(v4)=8.5, S(v5)=7, S(v6)=7, S(v7)=8.5
S(v3)=6,故应将消防站设在v3处.
返回
选址问题--重心问题
例 3 某矿区有 7 个矿点,如图所示.已知各矿点每天的产矿量
为 q(v j ) (标在图的各顶点上).现要从这 7 个矿点选一个来建造矿
图 论 复习
一、 图 的 概 念
二、 图 的 表 示 1. 关联矩阵 2. 邻接矩阵
图的定义
关联矩阵
对无向图G,其关联矩阵M= (mij ) ,其中:
1 mij 0
若vi与e
相关联
j
若vi与e
不关联
j
对有向图G,其关联矩阵M= (mij ) ,其中:
1 mij 1
)
,
i=1,2,3,4,5}∪{
(
X (k ir
)
,
X
(k 1) i 1,r
)
,i=1,2,3,4,5;k=1,2,i-1}
若第 i 年初作了决策 X i 后,第 i+1 年初可以作决策 X i1 ,则顶点 X i 与 X i1 之间有弧( X i , X i1 ),其权 W( X i , X i1 )代表第 i 年初到第 i+1 年
浅谈最短路的数学模型解问题
浅谈最短路的数学模型解问题在生产与科学实验中,有一类活动的过程,由于它的特殊性,可将过程分为若干个互相联系的阶段,在它的每一个阶段都需要做出决策,从而使整个过程达到最好的活动效果。
因此,各个阶段的决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展。
当各个阶段决策确定后,就组成了一个决策序列,因而也就决定了整个过程的一条活动路线。
这种把一个问题可看作一个前后关联且具有链状结构的多阶段过程就称为多阶段决策过程,这种问题就称为多阶段决策问题,而最短路问题是这类问题中的比较典型的一种。
现在我们一起来探讨这类问题的特点和解决方法。
问题1(最小价格的管道铺设方案)如下图用点表示城市,现有共7个城市。
点与点之间的连线表示城市间有道路相连。
连线旁的数字表示道路的长度。
现计划从城市A到城市D铺设一条天然气管道,请设计出最小价格管道铺设方案。
首选我们要明确以下2点:(1)管道长短与成本价格之间有什么关系?显然,管道越短,成本越低。
(2)你能在众多管道路线中找到一条最短的管道路线吗?答案是肯定的。
这是一般人都有的最直接最原始的思路。
我们在这里就是要寻找一个比较简便的方法。
本题的实质就是求从城市A到城市D的一条最短路。
1、建立数学模型:Min{d(xk,xk+1)+f(xk+1)}的含义是:前一个阶段距离加上后一状态变量到终点的最短距离,然后在这些距离和中取最小者,即为所求的最短距离。
其中xk+1=u(xk),即从状态xk出发,采取决策uk到达下一状态xk+1;Sk表示从状态xk 出发的所有可能选取的决策的集合;而f4(x4)=0称为边界条件,因为状态x4=D已经是终点;各个决策路径xk+1=u(xk)都是所有决策的集合Sk中的一种,即xk+1=u(xk)∈Sk。
2、模型求解:①从最后一个阶段即第三阶段开始,按f3的定义有②第二个阶段有2个状态,而每个状态又有3个决策可选取,因此有B1到D的最短路长得B1到D的最短路径B2到D的最短路长得B2到D的最短路径③当k=1时,有A到D的最短路长得A到D的最短路径,故从A到D的最短弧长为6,路径为最短路问题是最重要的优化问题之一,它不仅可以直接应用于解决生产实际的许多问题,如管道铺设、线路安排、厂区布局、设备更新等等,而且经常被作为一个基本工具,用于解决其它优化问题。
最短路问题-2
S (vi ) = max{d ij } i = 1,2, Lν 1≤ j ≤ν (3)求出顶点 v k ,使 S (v k ) = min{S (vi )}
1≤i ≤ν
则 v k 就是要求的建立消防站的地点.此点称为图的中心点 中心点. 中心点
TO MATLAB (road3(floyd))
0 3 5 D = 10 7 5 .5 7
返回
选址问题--重心问题 选址问题--重心问题 -例 2 某矿区有七个矿点,如图所示.已知各矿点每天的产矿量 q (v j ) (标在图的各顶点上) 现要从这七个矿点选一个来建造矿厂. . 问 应选在哪个矿点,才能使各矿点所产的矿运到选矿厂所在地的总运力 (千吨公里)最小.
(1)求距离阵 D= ( d ij )ν ×ν .
�
返回
选址问题--中心问题 选址问题--中心问题 -例 1 某城市要建立一个消防站,为该市所属的七个区服务, 如图所示.问应设在那个区,才能使它至最远区的路径最短.
(1)用 Floyd 算法求出距离矩阵 D= ( d ij )ν ×ν .
(2) 计算在各点 vi 设立服务设施的最大 服务距离 S (vi ) .
数学建模与数学实验 最短路问题
实验目的
1,了解最短路的算法及其应用 , 2,会用Matlab软件求最短路 ,会用 软件求最短路
实验内容
3,最 短 路 的 应 用 , 4,建模案例:最优截断切割问题 ,建模案例: 5,实验作业 ,
最 短 路 的 应 用
一, 选 址 问 题 1, 中心问题 , 2, 重心问题 , 二,建模案例:最优截断切割问题 建模案例:
3 0 2 7 4 2 .5 4
5 2 0 5 2 4 .5 6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
因此,计划为第一、第三年初购置新设备,或第一、第四年初购置新设备,
五年费用均最省,为 53.
也可构造加权有向图 G2(V,E).
(1)顶点集 V={V1,V2 ,V3 ,V4 ,V5 ,V6 }, Vi 表第 i 年初购置新设备的决策,V6 表
第五年底.
(2)弧集 E={ (Vi ,V j ) ,i=1,2,3,4,5; i<j≤6}, 弧 (Vi ,V j ) 表第 i 年初购进一台设备一直使用 到第 j 年初的决策,其权 W (Vi ,V j ) 表由这一
算法的基本思想
直接在图的带权邻接矩阵中用插入顶点的方法
依次构造出 个矩阵 D(1)、 D(2)、… 、D( ),使最 后得到的矩阵 D( )成为图的距离矩阵,同时也求出
插入点矩阵以便得到两点间的最短路径.
算法原理—— 求距离矩阵的方法
把带权邻接矩阵 W 作为距离矩阵的初值,即 D(0)= (di(j0) ) =W
k=1,2,…,i-1},
每个顶点代表年初的一种决策,其中顶点 Xib 代表第 i 年初购置新设备
的决策,顶点
X
(k ir
)
代表第
i
年初修理用过
k
年的旧设备的决策
(2)弧集
E={
(
X
ib
,
X
i
1,b
),
(
X
(k ir
)
,
Xi
1,b
),
i=1,2,3,4;
k=1,2,…,i-1}
∪{
(
X
ib
,
X
(1) i 1,r
TO MATLAB (road3(floyd))
0 3 5 10 7 5.5 7
3 0 2 7 4 2.5 4
5
2
0
5
2
4.5
6
D 10 7 5 0 3 7 8.5
7
4
2
3
0
4
5.5
5.5 2.5 4.5 7 4 0 1.5
7
4
6
8.5 5.5 1.5
0
S(v1)=10, S(v2)=7, S(v3)=6, S(v4)=8.5, S(v5)=7, S(v6)=7, S(v7)=8.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 中间可插入任何顶点的路径中最短路的长,因此
)
,
i=1,2,3,4,5}∪{
(
X
(k ir
)
,
X
(k 1) i 1,r
)
,i=1,2,3,4,5;k=1,2,i-1}
若第 i 年初作了决策 X i 后,第 i+1 年初可以作决策 X i1 ,则顶点 X i 与 X i1 之间有弧( X i , X i1 ),其权 W( X i , X i1 )代表第 i 年初到第 i+1 年
S(v3)=6,故应将消防站设在v3处.
返回
选址问题--重心问题
例 3 某矿区有 7 个矿点,如图所示.已知各矿点每天的产矿量
为 q(v j ) (标在图的各顶点上).现要从这 7 个矿点选一个来建造矿
厂.问应选在哪个矿点,才能使各矿点所产的矿运到选矿厂所在地的 总运力(千吨公里)最小.
(1)求距离阵 D= (d ij ) .
D
5
2
0
2
4 ,
R
4
2
3
4
5
3 4 2 0 6
1 3 3 4 3
9
6
4
6
0
4
3
3
3
5
d51 9 ,故从 v5 到 v1 的最短路为9. r51 =4.由 v4 向 v5 追溯: r54 3, r53 3 ;
由 v4 向 v1 追溯: r41 1 所以从 v5 到 v1 的最短路径为:5 3 4 1.
aij 10
若(vi,v j) E 若(vi,v j) E
例:有向图的邻接矩阵
v1
0
A= 0
0 1
v2 v3 v4
1 0 0 v1
0 0 1 v2
1 0
0 1
0 0
v3 v4
赋权图
对有向赋权图G,其邻接矩阵 A (aij ) ,其中:
wij aij 0
若(vi , v j ) E,且wij为其权 若i j
(2) 计算各顶点作为选矿厂的总运力 m(vi )
m(vi ) q(v j ) dij
i 1, 2, ,
j 1
(3) 求 vk 使 m(vk ) m1iin {m(vi )},则 vk 就是选矿厂应选的矿
点.此点称为图 G 的重心或中位点.
返回
实验作业
生产策略问题:现代化生产过程中,生产部门面临的突出 问题之一,便是如何选取合理的生产率.生产率过高,导致产 品大量积压,使流动资金不能及时回笼;生产率过低,产品 不能满足市场需要,使生产部门失去获利的机会.可见,生产 部门在生产过程中必须时刻注意市场需求的变化,以便适时 调整生产率,获取最大收益.
输入: G 的带权邻接矩阵 w(u, v)
先写出带权邻接矩阵:
0
2 0
1
8 6
1
0
7
9
W
0 5 1 2 0 3 9
0 4 6
0
3 0
因 G 是无向图,故 W 是对称矩阵.
每对顶点之间的最短路
(一)算法的基本思想 (二)算法原理
1.求距离矩阵的方法 2.求路径矩阵的方法 3.查找最短路路径的方法 (三)算法步骤
k 1,2,3,4,5
其中
d(
X 1b
,
X
(k) 6r
)为顶点X 1b
到
X
(k 6r
)
的最短路的权.
求得最短路的权为 53,而两条最短路分别为
X 1b
X (1) 2r
X (2) 3r
X 4b
X (1) 5r
X
(2) 6r
;
X 1b
X (1) 2r
X 3b
X (1) 4r
X (2) 5r
X (3) 6r
(1)用 Floyd 算法求出距离矩阵 D= (d ij ) .
(2) 计算在各点 vi 设立服务设施的
最大服务距离 S (vi ) .
S (vi
)
max{d
1 j
ij
}
i 1, 2, ,
(3)求出顶点
v
k
,使
S
(vk
)
min{S
1i
(vi
)}
.
则vk 就是要求的建立消防站的地点.此点称为图的中心点.
若(vi , v j ) E
无向赋权图的邻接矩阵可类似定义.
v1 v2 v3 v4
0 2 v1
A= 0 3 v2
7
8
0 5
0
v3 v4
v1 v2 v3 v4
0 2 v1
A= 0 3 v2
7
8
0 5
0
v3 v4
最短路问题及其算法
固定起点的最短路 每对顶点之间的最短路
(1)D(1)=
(di(j1)
)
,其中
d (1) ij
min{di(j0)
,
d (0) i1
d (0) 1j
}
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
D(ν)即是距离矩阵.
算法原理—— 求路径矩阵的方法
在建立距离矩阵的同时可建立路径矩阵R.
R= (rij ) , rij 的含义是从 v i 到 v j 的最短路要经过点号为 rij 的点.
R(0) (rij(0) ) ,
r (0) ij
j
每求得一个 D(k)时,按下列方式产生相应的新的 R(k)
对所有 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 7 5 3 9
1 4 4 4 4
7 0 2 4 6
3 2 3 3 3
然后用同样的方法再分头查找.若:
(1)向点
i
追溯得:
r ( ip1
)
p2
,
r ( ip2
)
p3
,…,
r ( ipk
)
pk
(2)向点
j
追溯得:
r ( ) p1 j
q1
,
r ( ) q1 j
q2