基于Floyd算法与最短距离问题的分析
更新时间:2023-12-19 18:31:01 阅读量: 教育文库 文档下载
- 弗洛伊德算法求出最短距离推荐度:
- 相关推荐
基于Floyd算法最短距离的问题分析
贺增增 武昌理工学院
摘要
本文主要是通过借助Floyd算法来求解任意两点间的最短路问题,进而解决货物最快运送,合理设立燃料补给点以及消防站的最佳选址问题。 针对问题一:问题一是有关最短运输路线问题,可以将该问题转化为求最短距离对应的路径问题,利用Floyd算法通过编程可以得到最快地到达目的地的路径为v1v8v9v10v11。
针对问题二:本问题是要设计一个简易的公路建设方案,要求燃料补给点到油库之间的公路建设花费最少,也即是燃料补给点到油库的距离最小。借助Floyd算法编程求解得到所有将要设立的燃料补给点到油库的最小距离和,最后给出了7个燃料补给点的修建方案图。
针对问题三:要求在已给出的10个消防重点单位中选择1个消防重点单位设立消防站。通过Floyd算法编程可以求解得到10组消防重点单位到其它的消防单位的距离,再分别取10组中各自的最大距离作对比,得到其中最小值对应的消防单位,最后确定了把消防单位v8作为消防站的修建地。
一、问题重述
最短运输路线问题: 每条弧上的数字代表车辆在该路段行驶所需的时间,有向边表示单行道,无向边表示可双向行驶。若有一批货物要从1号顶点运往11号顶点,问运货车应沿哪条线路行驶,才能最快地到达目的地?
简易公路建设方案: 某合同战术训练基地为保障即将进行的联合军事演习,准备在原有的1个油库的基础上,再设立7个固定的燃料补给点,为了使联合军事演习正常进行,请为即将新建的7个固定燃料补给点确定合理的修建地址。 消防站选址问题: 某城市的开发区中要建一个消防站,其中v1,v2,L,v10表示开发区中10个消防重点单位,考虑到交通路况,部分单位之间往返的距离不完全相同,请帮助消防站做出合理的选址。
二、问题分析
对于问题一,若有一批货物要从1号顶点运往11号顶点,问运货车应沿哪条线路行驶,才能最快地到达目的地?将问题简化为直接求1号顶点到11顶点的最短距离的路径。
1
对于问题二,设立燃料补给点需要考虑到,当联合军事演习的飞机或战车没油时,补充燃料用掉的时间最短。而补充燃料的用时最短,无非就是燃料补给点到油库的距离最短。现在要求设立七个固定燃料点,那么这七个燃料点必须都满足到油库的距离最短,即各燃料点到油库的距离和最短。
对于问题三,在10个消防重点单位中,选择一个消防重点单位建立消防站,应该考虑到当火灾发生时,消防站可以及时赶到火灾发生区,即消防站应到最远的消防重点单位的距离也是最小的。可以将问题转化先求每个消防重点单位到其它的消防单位的距离,取它们各自的最大距离作对比,然后得到其中最小值对应的消防单位,最后确定把该消防单位作为消防站。
三、符号说明
A:邻接矩阵 D:距离矩阵 R:路径矩阵
四、模型建立与求解
1. 问题1 模型——最短运输路线问题 (1)假设
1)假设运输路线交通网络图中数据都是准确的, 2)货车正常运输,不考虑意外情况的发生, 3)忽略在误差范围内的计算误差。 4)将运出地与运入地均理想化成点。 (2)模型
已知运输路线交通网络图如下所示:
2
运输路线交通网络图
由网络图可得邻接矩阵A如下
骣0???∞????∞????∞???∞???∞A=????∞????8????∞???∞????∞?桫80∞∞∞∞∞∞∞∞∞∞30∞6∞∞∞∞∞∞∞∞50∞∞∞∞∞∞∞∞∞6102∞∞7∞10∞∞∞∞209∞∞∞∞7∞5∞∞90∞∞∞∞8∞∞∞∞∞∞09∞∞∞∞∞∞∞3∞902∞∞∞∞∞∞∞∞∞20∞∞÷÷÷∞÷÷÷÷∞÷÷÷÷12÷÷÷÷10÷÷÷÷∞÷ ÷÷÷∞÷÷÷÷∞÷÷÷÷÷∞÷÷÷÷2÷÷÷÷∞÷通过matlab软件编程(源程序见附件1),借助Floyd算法求出距离矩阵D
如下:
?0???31????28????23???22???20D=????29????8????17???19?????è328036313028371625274011307681719131516161716788911823568520013121511021114132224182021211167910091891112901518202112210911241714116521?÷÷÷18÷÷÷÷15÷÷÷÷10÷÷÷÷9÷÷÷÷357÷ ÷÷÷121416÷÷÷÷91113÷÷÷÷÷024÷÷÷÷202÷÷÷÷15170÷?19161387求得路径矩阵如下:
3
骣1???3????5????5???6???9R=????6????1????8???9????5?桫225569618952335356159523443561595235555695957355666959573753771595÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷9999÷ ÷÷÷6666÷÷÷÷8999÷÷÷÷÷891010÷÷÷÷991011÷÷÷÷55511÷83556835568355683556(3)结果解释与分析
1号顶点到11号顶点的距离对应的距离矩阵D的第1行第11列即R111, ,而d111,因此说明1号顶点到11 顶点的最短距离为21,由路径矩阵R中,=21r1,11=8可知,1号顶点到11号之间插入了8号顶点,由r1,8=8可知1号顶点到8号顶点之间没有值插入,由r8,11=9可知8号顶点到11号之间插入了9号顶点,由r8,9=9可知8号顶点到9号顶点之间没有值插入,由r9,11=10可知9号顶点到11号之间插入了10号顶点,r9,10=10可知9号顶点到10号顶点之间没有值插入,r10,11=11可知10号顶点到11号顶点之间没有值插入。 综上所述可以得到最短距离的路径 即:18
91011
2. 问题2 模型——简易公路建设方案 (1)假设
1)假设公路花费图给出的数据都是真实有效的, 2)忽略在误差范围内的计算误差。
3)仅仅只考虑已给定的花费,忽略其他的费用。 4)将油库与燃料补给点均理想化成点。
4
(2)模型
记油库为v1,并记7个燃料补给点分别为v2,v3,v4,v5,v6,v7,v8。修建公路花费图如下所示:
修建公路花费图
由公路花费图可写出邻接矩阵A如下
骣0???1????2????∞?A=??7????4???8????∞?桫1023∞∞7∞2∞748∞÷÷÷23∞∞7∞÷÷÷÷015∞∞∞÷÷÷÷103∞∞6÷÷÷÷ 5303∞4÷÷÷÷∞∞3026÷÷÷÷∞∞∞204÷÷÷÷∞64640÷÷通过matlab软件编程(源程序见附件2),借助Floyd算法求出距离矩阵D如
下:
骣0???1????2????3?D=??6????4???6????9?桫求得路径矩阵R如下:
1236469÷÷÷0236579÷÷÷÷2014687÷÷÷÷3103686÷÷÷÷ 6430354÷÷÷÷5663026÷÷÷÷7885204÷÷÷÷9764640÷÷5
正在阅读:
基于Floyd算法与最短距离问题的分析12-19
山西省计划生育条例2022年 山西省计生条例2022年07-31
宜昌建设监理统一用表04-13
WatchGuard安全VPN解决方案10-18
信用证习题02-02
我的妈妈是“神探”作文600字07-03
秋冬季疫情防控工作部署会议领导讲话范文09-07
2020国庆放假通知的范文_通知03-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 短距离
- 算法
- 基于
- 分析
- 问题
- Floyd