数学建模模最短路.docx
- 文档编号:6380992
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:8
- 大小:73.73KB
数学建模模最短路.docx
《数学建模模最短路.docx》由会员分享,可在线阅读,更多相关《数学建模模最短路.docx(8页珍藏版)》请在冰豆网上搜索。
数学建模模最短路
基于最短路问题的研究及应用
姓名:
Fanmeng
学号:
指导老师:
摘要
最短路问题是图论中的一大问题,对最短路的研究在数学建模和实际生活中具有很重要的实际意义,介绍最短路问题的定义及这类问题的解决办法Dijkstra算法,并且能够在水渠修建实例运用到此数学建模的方法,为我们解决这类图论问题提供了基本思路与方法。
关键字数学建模最短路问题Dijkstra算法水渠修建。
第一章.研究背景1
第二章.理论基础2
定义2
单源最短路问题Dijkstra求解:
2
局限性2
Dijkstra算法求解步骤2
时间复杂度2
简单样例3
第三章.应用实例4
题目描述4
问题分析4
符号说明5
模型假设5
模型建立与求解5
模型选用5
模型应用及求解5
模型评价5
第四章.参考文献6
第五章.附录7
第一章.研究背景
在现实生活中中,我们经常会遇到图类问题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。
顶点的集合是V,边的集合是E的图记为G[V,E],连接两点u和v的边用e(u,v)表示[1]。
最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图,然后来进行求的接任意两点之间的最短距离。
因此掌握最短路问题具有很重要的意义。
第二章.理论基础
定义
最短路问题(short-pathproblem):
若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点,(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。
最短路问题是网络理论解决的典型问题之一,可用来解决管道铺设,线路安装,厂区布局和设备更新等实际问题[2]。
单源最短路问题Dijkstra求解:
局限性
Dijkstra算法不能够处理带有负边的图,即图中任意两点之间的权值必须非负。
Dijkstra算法求解步骤
(1).先给图中的点进行编号,确定起点的编号。
(2).得到图的构成,写出写出图的矩阵
(3).根据要求求出发点S到终点E的最短距离,那么需要从当前没被访问过的结点集合
中找到一个距离已经标记的点的集合中
的最短距离,得到这个顶点;
(4).利用这个顶点来松弛其它和它相连的顶点距离S的值
(5).重复步骤
(2)和(3),直到再也没有点可以用来松弛其它点,这样我们就得到了由起点S到其它任意点的最短距离。
时间复杂度
时间复杂度达到
简单样例
给出对应的结点之间的关系
表1为对应的结点之间的关系
长度
A
B
C
D
E
A
0
2
15
10
10
B
2
0
11
1
5
C
15
11
1
20
7
D
10
10
20
0
3
E
10
5
7
3
0
注释:
其中(A,B)=2表示结点A到B的长度为2
第一步:
进行编号,假定A点即为起点。
第二步:
得到图
第三步:
首先从起点A开始找到距离A最近的点,那就是A点了;
第四步:
把A点标记到已经用过的的集合
用A来更新其它点
到起点的距离得到的集合
表示起点到B,C,D,E的距离分别为2,15,10,10
第五步:
重复上述步骤:
得到
继续重复上述步骤,最后的到
得到的
,
即最短路求解完毕。
第三章.应用实例
题目描述
农村的孩子应该都会听到大人们经常谈论这样的问题-------修建水渠。
在我们北方采用深井灌溉,所以说修建水渠更加普遍,因为一般都是水渠直接引流到田地旁边。
经常一些土地需要开发,在这个过程中,我们需要能够将在某一个地点的水源引流到新建的田地里面,这个过程很麻烦,有时候大家很激动的去引流,结果最后修建的水渠并不能满足要求,往往浪费了大量的物力人力和财力,所以现在我们要设计一定的数学模型来帮助农民来规划一下,如何修建的水渠最优,并且给出修建的路径。
通常是通过步长来估计两个点之间的长度,我们通常可以这样理解,每两步可以认为是1米。
给出的点之间的关系描述关系为(其他因素先可以不用考虑):
表2、描述进水口之间的关系
步数
A
B
C
D
E
F
G
H
I
A
0
1
1
1
200
300
400
500
600
B
1
0
2
3
4
2
5
7
3
C
1
2
0
10
6
11
12
13
14
D
1
3
10
0
100
1
2
3
4
E
200
4
6
100
0
10
20
30
40
F
300
2
11
1
10
0
50
60
60
G
400
5
12
2
20
50
0
23
34
H
500
7
13
3
30
60
23
0
12
I
600
3
14
4
40
60
34
12
0
注:
A表示的是总的进水口,其余字母表示的是每块田地的进水口的位置,这只是部分数据。
问题分析
问题是让我们来规划一下水渠该如何来修建的问题,并且已经知道了出水口所在的位置,并且简单的知道了一些点之间的距离,让我们帮农民找到一条最优的水渠来完成引流工作。
既然给出的是关于长度的问题,那么长度一定是很重要的标记量了,那么我们只需要找到一条从总出水到某一块地的修建的距离最短即可。
符号说明
由长度构成的矩阵
表示从X到Y的最短距离
S
总出水口
E
田地进水口
模型假设
假设其余条件不会影响水渠修建,比如土壤硬度
假设水渠宽度不会对水流量造成影响即水渠内的流量会满足要求
模型建立与求解
模型选用
最短路模型最短路模型解决的就是图论中任意两点之间的最短路问题。
模型应用及求解
我们的指标是
首先对数据进行抽取,得到我们所需要的数值,并把它存储到矩阵
这应该是一个9*9的矩阵,其次我们可以按照最短路的模型使用Dijkstra算法来进行求解,得到的值便是S到任一点的最短距离值,最后按照路径还原的思想还原修建的路径即可。
模型评价
最短路模型的是行能够较好的解决单源最短路径问题,可以较好的模拟出路径修建,得到的一定是最短的路径,能够达到预期要求的效果,得到的最终结果如附录里“3.应用实例结果输出”所示
第四章.参考文献
[1].韩中庚着,《数学建模方法与应用》,高等教育出版社
[2].
[3].[美]Frank着《数学建模》(原书第五版)
[4].刘晓妍着《基于最短路的设备更新问题的数学建模》河南教育学院学报(自然科学版)第22卷第四期2013年12月
[5].杨启帆、边馥萍着,《数学模型》,浙江大学出版社
第五章.附录
1.应用实例矩阵
2.应用实例C++程序
#include
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
constdoubleINF=0xFFFFFFF;
constintMAX_N=10005;f\n",i,dist[i]);
vector
printf("目标点%d的路径为\n",i);
printf("%d",q[0]);
for(inti=1;i<(int)();i++){
printf("->%d",q[i]);
}
printf("\n");
}
return0;
}
3.应用实例结果输出
出水口到目标点1的最短距离=0
目标点1的路径为
1
出水口到目标点2的最短距离=1
目标点2的路径为
1->2
出水口到目标点3的最短距离=1
目标点3的路径为
1->3
出水口到目标点4的最短距离=1
目标点4的路径为
1->4
出水口到目标点5的最短距离=5
目标点5的路径为
1->2->5
出水口到目标点6的最短距离=2
目标点6的路径为
1->4->6
出水口到目标点7的最短距离=3
目标点7的路径为
1->4->7
出水口到目标点8的最短距离=4
目标点8的路径为
1->4->8
出水口到目标点9的最短距离=4
目标点9的路径为
1->2->9精心搜集整理,只为你的需要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 短路