收藏 分销(赏)

最短路径算法在物流运输中的应用.doc

上传人:精**** 文档编号:3013322 上传时间:2024-06-13 格式:DOC 页数:29 大小:883KB
下载 相关 举报
最短路径算法在物流运输中的应用.doc_第1页
第1页 / 共29页
最短路径算法在物流运输中的应用.doc_第2页
第2页 / 共29页
最短路径算法在物流运输中的应用.doc_第3页
第3页 / 共29页
最短路径算法在物流运输中的应用.doc_第4页
第4页 / 共29页
最短路径算法在物流运输中的应用.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 本科生毕业设计(论文)题 目: 线性表的设计和实现 学生姓名: 张三 学 号: 201107011153 院 系: 基础科学学院信息技术系 专业年级: 2012级信息与计算科学专业 指导教师: 李四 注:1.论文封面单独打印一张纸;中英文摘要正反打印一张纸;目录、正文、参考文献、致谢、附录均独立正反打印!2.部分专业对格式有特殊要求的,教学院(系)可自行商定。年 月 日摘 要随着现代物流业的发展,如何优化和配置物流的运输路径成为了一个热点的问题。其中,最具代表性的问题就是如何在一个道路网络中选择两点之间的合适路径,使其距离最短。为了解决这个问题,本文介绍了两种最常用的最短路径求解方法DIJK

2、STRA算法与FLOYD算法,分析了它们的适用范围以及时间复杂度。最后,对一个具体的航空公司物流配送问题进行了求解,得到了理论最优路径。关键词:最短路径问题;DIJKSTRA算法;物流运输ABSTRACTWith the development of modern logistics industry, how to optimize and configure the transport path of logistics has become a hot issue. Among them, the most representative problem is how to select

3、the appropriate path between two points in a road network to minimize the distance. In order to solve this problem, this paper introduces two most common shortest path solutions Dijkstra algorithm and Floyd algorithm, and analyzes their application range and time complexity. Finally, a specific airl

4、ine logistics distribution problem is solved, and the theoretical optimal path is obtained.Keywords:Minimum path problem;Dijkstra algorithm;Logistics transportation目 录第一章 引言11.1 研究背景11.2 研究现状11.2.1 最短路径算法研究现状11.2.2 最短路径算法分类2第二章 最短路径问题的基本理论知识32.1 最短路问题的定义32.2 最短路问题的Dijkstra算法32.2.1 Dijkstra算法的局限性32.2

5、.2 Dijkstra算法求解步骤32.2.3 Dijkstra算法的时间复杂度42.2.4 简单案例分析42.3 最短路问题的Floyd算法52.3.1算法定义52.3.2 算法思想原理52.3.3 算法过程描述62.3.4 算法适用范围62.3.5 算法简单实例6第三章 实际案例分析73.1 问题描述73.1.1 问题的背景及假设73.1.2 符号说明73.2 模型的建立与求解83.2.1 模型一83.2.2 模型二10第四章 总结154.1 优点154.2 缺点15参考文献16致 谢17附 录18附录A 实际案例背景数据18第一章 引言1.1 研究背景在现实生活中中,我们经常会遇到图类问

6、题,图是一种有顶点和边组成,顶点代表对象,在示意图中我们经常使用点或者原来表示,边表示的是两个对象之间的连接关系,在示意图中,我们使用连接两点G点直接按的下端来表示。顶点的集合是V,边的集合是E的图记为GV,E ,连接两点u和v的边用e(u,v)表示。最短问题是图论中的基础问题,也是解决图类问题的有效办法之一,在数学建模中会经常遇到,通常会把一个实际问题抽象成一个图,然后来进行求的接任意两点之间的最短距离。因此掌握最短路问题具有很重要的意义。1.2 研究现状本节主要讨论两个方面的问题,首先简要回顾最短路径算法研究现状,然后概要总结最短路径算法分类。1.2.1 最短路径算法研究现状最短路径问题一

7、直是计算机科学、运筹学、地理信息科学等学科领域的研究热点。国内外大量专家学者对此问题进行了深入研究。经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。常用的路径规划方法有:平行最短路径搜索算法,蚁群算法,基于矩阵负载平衡的启发算法, EBSP*算法和Dijkstra算法等。创门在空间复杂度、时间复杂度、易实现性及应用范围等方面各具特色但是因为Dijkstra算法可以给出最可靠的最短路径,并且容易实现,所以备受青睐和并被广泛应用。经典的Dijkstra算法的时间复杂度为,直接应用到大规模城市路网时,最短路径查询时间难以令人接受,专家学者纷纷开展Dij kstr

8、a优化算法研究,概括起来,以往研究者主要是从5个方面对最短路径算法进行性能优化:(1)基于数据存储结构的优化,以空间换取时间;( 2 )基于路网规模控制的优化;(3)基于搜索策略的优化;( 4 )优先级队列结构的优化;( 5 )基于双向搜索的并行计算优化。1.2.2 最短路径算法分类由于问题类型、网络特性的不同,最短路径算法也表现出多样性。(1) 按照最短路径问题分类,最短路径问题通常可分为2个基本类型:一是单源最短路径问题,即查找某一源点到其余各点的最短路径;另一类是查找某个节点对之间的最短路径。最短路径问题具体可细分为以下几种,单源最短路径问题,单对节点间最短路径、所有节点间最短路径、k则

9、最短路径、实时最短路径、指定必经节点的最短路径以及前N条最短路径问题等,本文的研究范畴属于单对节点间最短路径问题。(2) 按照网络类型和表示方法分类,网络可以分为稀疏网络和非稀疏网络,常用的表示方法有邻接矩阵和邻接表。邻接矩阵方法能够在时间内查询到任意两个节点之间是否有一条边,它的空间复杂度为。现实生活中网络节点往往很多,动辄上万,而且是稀疏网络居多,比如城市路网,所以用邻接矩阵表示既不现实,又浪费空间。邻接表是另一种存储网络拓扑的数据结构,它是一种链式存储结构,对于交通网络等稀疏图,采用邻接表数据结构存储网络拓扑数据空间复杂度仅为,不存在存储空间的浪费。邻接表数据结构已被证明是网络表达中最有

10、效率的数据结构,在最短路径算法中得到了广泛应用。第二章 最短路径问题的基本理论知识2.1 最短路问题的定义最短路问题(short-path problem):若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点,(通常是源节点和目标节点)之间总权和最小的路径就是最短路问题。最短路问题是网络理论解决的典型问题之一,可用来解决管道铺设,线路安装,厂区布局和设备更新等实际问题。2.2 最短路问题的Dijkstra算法2.2.1 Dijkstra算法的局限性在了解和使用某种算法之前,我们先要明白这种算法有怎样的局限性。只有深入理解来每一种算法的局限性,才能根据具体的问题选择合适的算法来求解

11、。Dijkstra算法最大的局限性在于不能够处理带有负边的图,即图中任意两点之间的权值必须非负。如果某张图中存在长度为负数的边,那么Dijkstra算法将不再适用,需要寻找其他算法求解。2.2.2 Dijkstra算法求解步骤(1) 先给图中的点进行编号,确定起点的编号。(2) 得到图的构成,写出图的矩阵(3) 根据要求求出发点S到终点E的最短距离,那么需要从当前没被访问过的结点集合中找到一个距离已经标记的点的集合中的最短距离,得到这个顶点;(4) 利用这个顶点来松弛其它和它相连的顶点距离S的值(5) 重复步骤(2)和(3),直到再也没有点可以用来松弛其它点,这样我们就得到了由起点S到其它任意

12、点的最短距离。2.2.3 Dijkstra算法的时间复杂度我们可以用大符号将Dijkstra算法的时间复杂度表示成边数m与顶点数n的函数。Dijkstra算法最简单的实现方法是用一个链表或者数组来存储所有顶点的集合Q,因此搜索Q中最小元素的运算(Extract-Min(Q)只需要线性搜索Q中的所有元素,据此我们可以知道算法的时间复杂度是。对于边数少于n2稀疏图而言,我们可以用邻接表来更有效的实现Dijkstra算法。为了达到这一目的,需要将一个二叉堆或者斐波纳契堆用作优先队列来寻找最小的顶点(Extract-Min)。当用到二叉堆的时候,算法所需的时间为,斐波纳契堆能稍微提高一些性能,使得算法

13、运行时间达到。2.2.4 简单案例分析给出对应的结点之间的关系(表2-1为对应的结点之间的关系)长度ABCDEA02151010B201115C15111207D10102003E105730表2-1需要注意的是,其中(A,B)= 2 表示结点A到B 的长度为2第一步:进行编号,假定A点即为起点。第二步:得到图 第三步:首先从起点A开始找到距离A最近的点,那就是A点了;第四步:把A点标记到已经用过的的集合用A来更新其它点到起点的距离得到的集合表示起点到B,C,D,E的距离分别为2,15,10,10第五步:重复上述步骤:得到,继续重复上述步骤,最后的到,得到的 ,即最短路求解完毕。2.3 最短路

14、问题的Floyd算法2.3.1算法定义除了Dijkstra算法,另外一种简单的最短路算法是floyd算法,它也经常被用于解决含有有向图或者是负权的最短路径问题,并且能够用于计算有向图的传递闭包。该算法的时间复杂度为,空间复杂度为。2.3.2 算法思想原理 Floyd算法是非常常见的使用动态规划来寻找最优路径的算法。如果我们用简单的语言解释,总体要实现的目标是找到从点i到点j的最短路径。如果我们换一个角度,从动态规划的角度观察,那就必须得要对这个目标进行一个重新的诠释。 从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j

15、)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置,这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。2.3.3 算法过程描述 (1)从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。 (2)对于每一对顶点u和v,看看是否存在一个顶点w使得从u到w再到v比己知的路径更短,如果是的话需要更新它。2.3.4 算法适用范围 无向图最短路问题; 稠密图效果最佳; 边权可正可负。2.3.5 算法简单实例图3-2 无向图根据图3-2,用Floy

16、d算法找出任意两点的最短路径步骤如下表3-2:distk1distk2distk3MINA-B1371A-C135*1A-D3353B-C2262B-D*44*4C-D2462表3-2 Floyd算法步骤流程第三章 实际案例分析3.1 问题描述 3.1.1 问题的背景及假设网上购物一直是常见的消费方式,其依托于物流业逐渐蓬勃发展,每个送货人员都需要以最快的速度送货,而且往往会发送多个地方,所以有必要设计耗时最小的路线。现在考虑一个快递公司,总部在地图上的O点,派送人员需要将货物发往城市很多,如何设计交货方案,以便花费最少的时间。物流地图如图1所示,下表中显示了每个点的信息,假设托运人只能沿着这

17、些连接的线行进,而不采取任何其他路线。(1)最大承载能力为50公斤,货量最大为1立方米。(2)调度员的平均速度为24公里/小时。假设每件货物要交出需要3分钟,为了简单起见,在同一地点有几件商品,这些货物只需每3分钟一次交割即可。现在派送者将向50个地点发送100件货物。问题要求如下:1. 假设货物从1到30到指定地点并返回。设计最快的路线和方式来求出结果。要求标记送货线路。2. 假设送货人员从上午8点开始交货,1到30天货物交货时间不能超过规定的时间,请设计最快的路线和方式。要求标记送货线。具体数据请参见附录。3.1.2 符号说明 所载货物的质量总和; 所载货物的体积总和; 第i件货物的质量;

18、 第i件货物的体积; 从i点到j点的距离权值; 任意两节点之间最短路径距离矩阵;3.2 模型的建立与求解3.2.1 模型一我们首先对题中所给的数据进行汇总分析,得出=48.5公斤,V30=0.88立方米,所以均未超出送货员的载重,所以送货员可以一次性将货物送完。而题中数据显示送货员需到达的节点数位22个(包括出发点O)如下表0131416171821232426273132343638394042434549表3-1 节点数利用程序用Floyd算法我们可以得出任意两点之间最短路径的距离矩阵其中(i,j=122),(1)先根据题目数据给初始矩阵赋值,其中没有给出距离的赋inf,以便于更新。(2)

19、进行迭代计算。对任意两点,若存在,使,则更新。(3)直到所有点的距离不再更新停止计算。则得到最短路距离矩阵 。由旅行售货员问题(TSP)建立矩阵,;其中表示点i到点j的距离权值。d为对称矩阵,令=0。现求节点0到各节点再到节点0的最短距离,要求各线路上的权值最小。设立变量, 其关系如下:当节点和节点连通,=1;当节点和节点不连通,=0;目标函数为寻找一条从起点0到各节点再到节点0的最短距离,要求各线路上的权值和最小,故目标函数为:最短路径 (3-1) (1) 对起始点0至少有一条路径出去,故有 (3-2) (2) 对其余各节点,恰有一条路径进去,故有 (3-3) (3) 所有节点不出现闭合回路

20、,约束为; 总的线性规划模型为: (3-4)(1) (2) 约束条件s.t. (3) (4) 利用lingo软件编程算出在各约束条件下的最短路径距离、最短路径所经过的各节点的顺序得:最短距离 .最短时间 各节点行进路线为:026273936384342494540342413181416322317210图3-1 节点路线表3.2.2 模型二问题2题目增加了时间约束,所以我们需要在模型一的基础上进行改进。送货员从早上8:00出发,需要分别在9:00、9:30、10:15、12:00之前件货物送到各指定点。根据“时间要求越早,先送的原则”,将22个节点按时间限制划分为四个区域,然后分阶段依次解决

21、各区域的最短路径,得出各出发点和各终点。从而得出总距离最短路径。首先我们在图中描出各节点坐标,找到各节点位置。如下图:图3-2 节点位置表阶段1:要求9:00送到:限制在此时间段的节点为三个:13、18、24,送货员8:00从O点出发,需选择最短路径在9:00之前将货物送达。根据各节点之间的距离和上图,我们很容易得出此段最短路径出发点为18,终点为24,从而路线为181324,再根据示以及问题1所得数据,确定最优线路为18131924。最后验证结果:根据路径我们算得此路径距离:2182.0289+3113.4627+5704.3372=10999.83 m.从而得出此段用去的时间=10999.

22、83*3/20=27.50min60min,从而可以知道按此路径送货员能按时将货物送到。阶段2:要求9:30送到: 根据题中信息知,限制在此时间的点为:31,34,40,45。同上阶段相同,结合数据和上图分析的出发点为31,终点为45,从而我们可以得到两种行程路线:31344045或31403445。需要对两条路线进行对比优化。两种路线的行程总路程如下:路线12431313434404045路程(m)1780.14752324.74731630.7823217.0056路线22431314040343445路程(m)1780.14753954.92931630.7824847.7876表3-2

23、 行程路线表对比两组数据,可以选定线路1为最佳方案。按此路径行进距离=1780.1475+3954.9293+1630.782+4847.7876=12213.6464米。得出耗时=12213.6464*3/20=30.53min30min+60min-27.50min。即得出满足时间要求。阶段3:要求10:15送到:此时间要求共有四个指定地点:49,42,43,38。分析可得起点为42,终点为38,从而得到两种送货路线:42494338或42434938。两种路线的总路程如下:路线14542424949434338各段路程(m)2351.72281971.37642889.05012618.

24、4442路线24542424343494938各段路程(m)2351.7228917.67372889.05015507.4943表3-3 总路程表分析比较两组数据,可以选定线路1为最佳方案。同上对数据进行验证:按此路径行进距离=2351.7228+1971.3764+2889.0501+2618.4442=9830.5935米得出耗时=9830.5935*3/20=24.58min45min.即能够按时件货物送到。阶段4:要求12:00到达:此时间段共有十个指定地点:26,21,14,17,23,32,39,36,27,16。分析可确定36为起点。起点确定终点不确定。对此我们进行迭代算法:即

25、从出发点开始,找出到出发点的最近距离的一个点,然后依次迭代计算,再以找出的点为出发点,找出到该点的最短距离的点,如此进行下去,则可以找出一条较短的行进路线。首先以36为起点,具体计算过程如下:点36 到其他点的距离(单位:m)如下:36272139321726231416距离2203.9172880.1783983.844061.1444704.0894808.6965373.0136176.9117470.654表3-4 点36距离表所以确定27为第二次所到地点。点27到其他点的距离(单位:m)如下: 273926213217231416距离17799232604.7814796.52162

26、65.066620.4327576.938093.2549674.571表3-5 点27距离表所以确定39为第三次所到地点。由线路图可知,离开39后需要回到27,才能送货到其它地点,则再根据上述表格选取除39外距离27最近的地点的,即是第四次所到地点,易知26为第四次所到地点(途经31)。点26到其他点的距离(单位:m)如下:26211714233216距离2191.744015.6515488.4735790.1657102.0347887.806表3-6 点26距离表可得21为第五次所到地点。点21到其他点的Euclid距离(单位:m)如下:211714233216距离1823.91132

27、96.7333598.4254910.2945696.066表3-7 点21距离表可得17为第五次所到地点。点17到其他点的Euclid距离(单位:m)如下:1723143216距离1774.5149215.7233086.3833872.156表3-8 点17距离表理论上讲应该选取点23,但根据线路图以及剩余送货的地点,综合考虑后选取次优解即14为第六次送货地点。点14到其他点的Euclid距离(单位:m)如下:14162332距离2607.6813970.2375282.106表3-9 点14距离表可得16为第七次所到地点。点16到其他点的距离(单位:m)如下:162332距离2097.6

28、3409.5表3-10 点17距离表可得23为第八次所到地点,32为终点。由以上结果可得最佳送货路线如下:362739(27)(31)26211714162332在图中标出路线: 图3-3 路线表所以综上考虑将各阶段的路径连接起来形成的最终最短路径为:0181319243134404542494338362739273126211714182332。得出最短路径距离minZ=54629.65m时间minT=2.276h第四章 总结4.1 优点 对于题中各数据的处理,采用的工具、方法比较先进,各种计算方法精确,误差较小。在解决问题时,我们把原图变为完全图,利用全局线性规划法充分发挥lingo软件

29、包求最优解功能。并且成功地对01变量进行了使用和约束,简化了模型建立难度,同时给出了在各种约束条件下的最短路径的计算方法,具有较强的实用性和通用性,在日上生活中经常可以用到。4.2 缺点由于数据较多,难以对模型结果进行验证,只能一步一步的对模型进行优化。参考文献1 朱道立. 运筹学M. 高等教育出版社, 2006.2 周建兴. MATLAB从入门到精通.第2版M. 人民邮电出版社, 2012.3 徐立华. 求解最短路问题的一个计算机算法J. 系统工程, 1989(5):46-51.4 林澜, 闫春钢, 蒋昌俊,等. 动态网络最短路问题的复杂性与近似算法J. 计算机学报, 2007, 30(4)

30、:608-614.5 牛学勤, 王炜. 基于最短路搜索的多路径公交客流分配模型研究靠J. 东南大学学报(自然科学版), 2002, 32(6):917-919.6 马良河, 刘信斌, 廖大庆. 城市公交线路网络图的最短路与乘车路线问题J. 数学的实践与认识, 2004, 34(6):38-44.7 魏航, 李军, 刘凝子. 一种求解时变网络下多式联运最短路的算法J. 中国管理科学, 2006, 14(4):56-63.8 张运河, 林柏梁, 梁栋,等. 优化多式联运问题的一种广义最短路方法研究J. 铁道学报, 2006, 28(4):22-26.9 李帮义, 姚恩瑜. 最短路网络及应用J. 系

31、统工程理论与实践, 2000, 20(6):104-107.10 龙光正, 杨建军. 改进的最短路算法J. 系统工程与电子技术, 2002, 24(6):106-108.11 周经伦, 吴唤群. 受顶点数限制的最短路问题及其算法J. 系统工程, 1996(5):37-44.12 贺国先. 集装箱公铁联运的费用加权最短路计算机算法J. 铁道学报, 2006, 28(1):1-5.一级标题,中间空4格。致 谢空1行大学四年的学习生活即将结束,在此,我要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助。本文能够成功的完成,要特别感谢我的导师XXX教授的关怀和教导。附

32、录附录A 实际案例背景数据图1 快递公司送货地点示意图O点为快递公司地点,O点坐标(11000,8250),单位:米表1 各货物号信息表货物号送达地点重量(公斤)体积(立方米)不超过时间1132.500.03169:002180.500.03549:003311.180.02409:304261.560.035012:005212.150.030512:006141.720.010012:007171.380.010912:008231.400.042612:009320.700.048112:0010381.330.021910:1511451.100.02879:3012430.950.0

33、22810:1513392.560.059512:0014452.280.03019:3015422.850.019010:1516431.700.078210:1517320.250.041212:0018361.790.018412:0019272.450.044512:0020242.930.04209:0021310.800.01089:3022272.250.001812:0023261.570.021012:0024342.800.01039:3025401.140.01559:3026450.680.03829:3027491.350.014410:1528320.520.002

34、012:0029232.910.048712:0030161.200.042912:003111.260.02503221.150.05013331.630.04833441.230.00063551.410.03873660.540.00673770.700.01293880.760.03463992.140.008740101.070.012441111.370.051042122.390.042843130.990.004844141.660.049145150.450.020946162.040.009847171.950.032448182.120.055449193.870.026

35、250202.010.032451211.380.041952220.390.000153231.660.050254241.240.053455252.410.001256261.260.005957270.420.022458281.720.058059291.340.037260300.060.040261310.600.027462322.190.050363331.890.049464341.810.032565351.000.005566361.240.017767372.510.036168382.040.011069391.070.044070400.490.032971410

36、.510.009472421.380.045573431.310.012174441.260.000575450.980.041376461.350.024177472.120.023078480.540.054279491.010.056680501.120.028481250.790.001182462.120.049283322.770.003484232.290.005485200.210.049086251.290.008887191.120.024988410.900.003889462.380.043490371.420.002091321.010.030092332.510.0

37、13393361.170.002094381.820.030895170.330.034596110.300.017297154.430.053698120.240.005699101.380.017510071.980.0493表2 50个位置点的坐标位置点X坐标(米)Y坐标(米)19185500214455603727057043735670526209956100801435710025228087160252591384526801011935305011785035451265854185137630520014134055325152125597516153657045171416

38、573851888258075195855816520780835521127708560222200883523147659055247790933025443595252610860963527103851050028565976529258098653015659955319395101003214835103653312501090034728011065351530511375361239011415376410115103813915116103995101205040834512300414930136504213265141454314180142154430301506045

39、10915142354623301450047773514550488851488049115751516050801015325表3 相互到达信息序号位置点1位置点21132183220424538634742851595210611171812711381214914159101610181710718111219121320122521121522131823131924131125141826141627141728142129152230152531162332172333183134192435202236212637213638211739223040231741243142254143251944252945273146283347292248302849304150312651

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 物流/供应链

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服