




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于最短路问题的研究及应用姓名: Fanmeng 学号: 指导老师: 摘要最短路问题是图论中的一大问题,对最短路的研究在数学建模和实际生活中具有很重要的实际意义,介绍最短路问题的定义及这类问题的解决办法Dijkstra算法,并且能够在水渠修建实例运用到此数学建模的方法,为我们解决这类图论问题提供了基本思路与方法。关键字 数学建模 最短路问题 Dijkstra算法 水渠修建。目录第一章研究背景1第二章理论基础22.1 定义22.2 单源最短路问题Dijkstra求解:22.2.1 局限性22.2.2 Dijkstra算法求解步骤22.2.3 时间复杂度22.3 简单样例3第三章应用实例43.1
2、题目描述43.2 问题分析43.3符号说明53.4 模型假设53.5模型建立与求解53.5.1模型选用53.5.2模型应用及求解53.6模型评价5第四章. 参考文献6第五章附录7第一章研究背景 在现实生活中中,我们经常会遇到图类问题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。顶点的集合是V,边的集合是E的图记为GV,E ,连接两点u和v的边用e(u,v)表示1。最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图
3、,然后来进行求的接任意两点之间的最短距离。因此掌握最短路问题具有很重要的意义。第二章理论基础2.1 定义最短路问题(short-path problem):若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点,(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。最短路问题是网络理论解决的典型问题之一,可用来解决管道铺设,线路安装,厂区布局和设备更新等实际问题2。2.2 单源最短路问题Dijkstra求解:2.2.1 局限性Dijkstra算法不能够处理带有负边的图,即图中任意两点之间的权值必须非负。2.2.2 Dijkstra算法求解步骤(1). 先给图中的点进行编号,确
4、定起点的编号。(2). 得到图的构成,写出写出图的矩阵(3). 根据要求求出发点S到终点E的最短距离,那么需要从当前没被访问过的结点集合中找到一个距离已经标记的点的集合中的最短距离,得到这个顶点;(4). 利用这个顶点来松弛其它和它相连的顶点距离S的值(5). 重复步骤(2)和(3),直到再也没有点可以用来松弛其它点,这样我们就得到了由起点S到其它任意点的最短距离。2.2.3 时间复杂度时间复杂度达到2.3 简单样例给出对应的结点之间的关系表1为对应的结点之间的关系长度ABCDEA02151010B201115C15111207D10102003E105730注释:其中(A,B)= 2 表示结
5、点A到B 的长度为2第一步:进行编号,假定A点即为起点。第二步:得到图 第三步:首先从起点A开始找到距离A最近的点,那就是A点了;第四步:把A点标记到已经用过的的集合用A来更新其它点到起点的距离得到的集合表示起点到B,C,D,E的距离分别为2,15,10,10第五步:重复上述步骤:得到,继续重复上述步骤,最后的到,得到的 ,即最短路求解完毕。第三章应用实例3.1 题目描述农村的孩子应该都会听到大人们经常谈论这样的问题-修建水渠。在我们北方采用深井灌溉,所以说修建水渠更加普遍,因为一般都是水渠直接引流到田地旁边。经常一些土地需要开发,在这个过程中,我们需要能够将在某一个地点的水源引流到新建的田地
6、里面,这个过程很麻烦,有时候大家很激动的去引流,结果最后修建的水渠并不能满足要求,往往浪费了大量的物力人力和财力,所以现在我们要设计一定的数学模型来帮助农民来规划一下,如何修建的水渠最优,并且给出修建的路径。通常是通过步长来估计两个点之间的长度,我们通常可以这样理解,每两步可以认为是1米。给出的点之间的关系描述关系为(其他因素先可以不用考虑): 表2、描述进水口之间的关系步数ABCDEFGHIA0111200300400500600B102342573C12010611121314D131001001234E20046100010203040F3002111100506060G40051222
7、05002334H5007133306023012I6003144406034120注:A表示的是总的进水口,其余字母表示的是每块田地的进水口的位置,这只是部分数据。3.2 问题分析问题是让我们来规划一下水渠该如何来修建的问题,并且已经知道了出水口所在的位置,并且简单的知道了一些点之间的距离,让我们帮农民找到一条最优的水渠来完成引流工作。既然给出的是关于长度的问题,那么长度一定是很重要的标记量了,那么我们只需要找到一条从总出水到某一块地的修建的距离最短即可。3.3符号说明由长度构成的矩阵表示从X到 Y的最短距离S总出水口E田地进水口3.4 模型假设假设其余条件不会影响水渠修建,比如土壤硬度假设
8、水渠宽度不会对水流量造成影响即水渠内的流量会满足要求3.5模型建立与求解3.5.1模型选用最短路模型 最短路模型解决的就是图论中任意两点之间的最短路问题。3.5.2模型应用及求解我们的指标是 首先对数据进行抽取,得到我们所需要的数值,并把它存储到矩阵 这应该是一个9*9的矩阵,其次我们可以按照最短路的模型使用Dijkstra算法来进行求解,得到的值便是S到任一点的最短距离值,最后按照路径还原的思想还原修建的路径即可。3.6模型评价最短路模型的是行能够较好的解决单源最短路径问题,可以较好的模拟出路径修建,得到的一定是最短的路径,能够达到预期要求的效果,得到的最终结果如附录里“3. 应用实例结果输
9、出”所示第四章. 参考文献1. 韩中庚著,数学建模方法与应用,高等教育出版社2. 3. 美 Frank R.Giordano著数学建模(原书第五版)4.刘晓妍著基于最短路的设备更新问题的数学建模 河南教育学院学报(自然科学版) 第22卷 第四期 2013年12月5. 杨启帆、边馥萍著,数学模型,浙江大学出版社第五章附录1. 应用实例矩阵2. 应用实例C+程序#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <algorithm&g
10、t;#include <cstring>#include <cmath>#include <vector>using namespace std;const double INF = 0xFFFFFFF;const int MAX_N = 10005;/ 表示最大有顶点10005个;int n,m;/ 表示有n个结点;给出了m条边double GMAX_NMAX_N;/ 用邻接矩阵来从这个图double distMAX_N;/ 表示起点到当前点的最短距离bool vistMAX_N;int prevMAX_N;vector < int> getp
11、ath(int t) / 路径还原可变长数组类型 vector<int> path; for(; t != -1; t = prevt) path.push_back(t); reverse(path.begin(),path.end(); return path;void Dijkstra(int s) /求得最短路径 dists = 0; while(true) int v = -1; double mx = INF; for(int i = 1; i <= n; i+) /挑选出未被标记集合最短的点 if(!visti && mx > disti)
12、 mx = disti; v = i; if(v = -1) break; vistv = true; for(int i = 1; i <= n; i+) /用当前的到的值来松弛其他不在标记的集合中的值 if(!visti && disti > distv+Gvi) disti = distv+Gvi; previ = v; void init() /初始化值 for(int i = 1; i <= n; i+) for(int j = 1; j <= n; j+) Gij = INF; Gii = 0; disti = INF; visti = fa
13、lse; previ = -1; int main() freopen("data.in","r",stdin);/ 默认数据读入用data.in freopen("data.out","w",stdout);/ 输出默认到data.out cin >> n; init(); for(int i = 1; i <= n; i+) for(int j = 1; j <= n; j+) cin >> Gij; Dijkstra(1); for(int i = 1; i <= n
14、; i+) printf("出水口到目标点 %d 的最短距离 = %.0fn",i,disti); vector<int> q = getpath(i); printf("目标点 %d 的路径为n",i); printf("%d",q0); for(int i = 1; i < (int)q.size(); i+) printf("-> %d ",qi); printf("n"); return 0;3. 应用实例结果输出出水口到目标点 1 的最短距离 = 0目标点 1 的路径为1出水口到目标点 2 的最短距离 = 1目标点 2 的路径为1-> 2 出水口到目标点 3 的最短距离 = 1目标点 3 的路径为1-> 3 出水口到目标点 4 的最短距离 = 1目标点 4 的路径为1-> 4 出水口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高空蹦极协议书
- 合伙开发房协议书
- 门牌授权协议书
- 兄弟私人协议书
- 单方面终止协议书
- 院外注射协议书
- 车辆共同协议书
- 工业互联网平台数字水印技术数据保护与信息安全产业生态报告
- 公司车借车协议书
- 陈泽谅解协议书
- 穿脱手术衣与戴无菌手课件
- 2024年春江苏开放大学文学概论060060第一次过程性考核作业答案
- 北京市东城区2023-2024学年八年级上学期期末数学测评卷(含答案)
- 优质课件:几代中国人的美好夙愿
- 2024老旧小区改造质量验收规范
- 被诈骗的起诉书范文
- 产品供货方案、售后服务方案
- 全球健康智慧树知到课后章节答案2023年下浙江大学
- 阿里巴巴java开发手册-阿里系
- 神经重症康复中国专家共识-医学课件
- 中国真正丹道理法及工程次第阐真
评论
0/150
提交评论