77范文网 - 专业文章范例文档资料分享平台

图论是应用数学的一个分支

来源:网络收集 时间:2018-12-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

最短路及其matlab求解

摘要

本文研究的是最短路问题,而最短路问题有常用的两种算法:Dijkstra算法和Floyd算法,每个算法的思路不同,而且Floyd算法比较完备,所以本文主要针对的是Floyd算法。

本文将最短路理论应用到实际生活中,当题目给定时,面对数据的难易程度,针对不同的情况,解决的思路是一致的。首先参考路线图,针对每两个节点间的路线长度,确定相应的矩阵,因为某些是无向图,有些是有向图,当没有给定两点之间的距离时,通过inf来代替;然后通过matlab软件进行程序运行,利用Floyd算法的带权邻接矩阵来解决最短路的问题;最后通过运行的结果判断结论,最后得到最短路线以及距离。

该算法可以求任意两节点之间的最短距离,通过矩阵来确定。但是当节点很多时,需要迭代的次数也很多,那就相当麻烦。所以为了改进传统的Floyd算法,通过插入点进行起始点到该点和该点到终点的距离进行比较,可以有效的进行忽略某些点,从而使算法更为直观有效。

关键词:最短路、floyd算法、matlab软件

一、问题重述

在古代有这样的难题:哥尼斯堡七桥问题、棋盘上马的行走路线问题、汉米尔顿(环游世界)数学难题等等;而在实际生活中,我们也会遇到这样的问题,当需要走的路径很多时,如何寻找最优路径,因为这样不仅耗时短,还方便。这些都和图论有所关联,图论利用图作为研究对象,从而解决一些问题、难题。而最短路问题就是图论理论上的一个经典问题,寻找最短路径就是在指定网络中两结点间找一条距离最小的路。最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等很多方面。

【1】

1.1如图所示,某人每天从住处v1开车到工地v7上班,图中各弧旁的数字表示

道路的长度/公里,试问他从家出发到工地,应选择哪条路线,才能使路上行驶的总距离最短。

图1.1 开车上班路线

【1】

v2 2 6 8 v4 3.5 v6 5 v1 9 1 4 2.5 v7 v3 3 v5 1.2如图所示,某人要从s城(图中节点1)到t城市(图中节点7)出差,

因无直通车,从换乘的火车在时间上能很好衔接考虑,可供选择的各城市如图中各节点所示,各城市间的火车通行方向及距离(km)均注于图中。确定应走哪条路总长最短。

1

425 1 475 200 520 2 440 150 4 615 485 3 650 6 490 490 150 5 425 7 图1.2各城市火车通行方向及距离/km 二、符号说明与模型假设

2.1符号说明

1.vs表示图中的某一节点(s=1,2,...,7) 2.lij表示从vi到vj的路程 2.2模型假设

(1)假设所有数据来源于题目已知,真实可靠。

三、模型的建立与求解

3.1问题一的求解 3.1.1问题一的分析

从图1.1可以知道,已经给出所有路线以及相关距离,利用最短路的中的floyd算法可以求解。 【2】

1.最短路建立模型如下: 设G=(V,E)为连通图,图中各边(vi,vj)有权lij(lij=∞表示vi,vj间无边),vs,vt为图中任意两点,求一条道路μ,使它是从vs到vt的所有路中总权最小的路。即:

L????【2】

l????vi,vj?ij最小。

2.Floyd算法:

令网络的权矩阵为D=dij??n?n,lij为从vi到vj的距离。

2

?l当(vi,vj)?E其中dij??ij

其它??算法基本步骤:

(1)输入权矩阵D(0)?D,

(k)(2)计算D(k)?(dij)n?n(k=1,2,3,...,n) (k)(k?1)(k?1)(k?1)其中dij?min[dij,dik?dkj]

(n)(n)(3)D(n)?(dij就是vi到vj的最短路长。 )n?n中元素dij3.1.2 问题一的解答

通过运行matlab程序可以得到以下结果:

028609711112.513.59310.511.54.55.53.5inf0inf6.5 2.55infinf0infinfD?infinfinfinfinfinfinfinf

inf04infinf0infinfinfinfinfinf122222202333330034545path?0000000000004000550060605 770从D矩阵可以看到从v1到v7的最短路线是v1→v2→v3→v5→v7,最短距离为13.5。

3.2 问题二的求解 3.2.1问题二的分析

和3.1.1分析的一样,利用该模型,得到运算结果。 3.2.2 问题二的解答

通过运行matlab程序可以得到以下结果:

3

0infinfD?inf475485900975112514000inf2004255206700440490640inf0infinfinfinfinfinf2331500infinf33001500inf945915575 425490infinfinfinfinfinfinfinf12302345550034555path?00000000

从D矩阵可以看到从v1到v7的最短路线是v1→v3→v5→v7,最短距离为1400。

00004000550056605 770

四、模型的评价

在求解最短路的问题中,所用的是Floyd算法,但是还有Dijkstra算法,但是这种算法只是求指定两点之间的最短距离,虽然也可以求出来,但是没有Floyd算法全面,因为Floyd算法可以求任意两点之间的距离,而Dijkstra算法是求给定的一个节点到其它节点间的最短距离。总体来说,Floyd算法比较简单,而且比较快捷,当自己手算时,是非常繁琐的,但是利用计算机就可以快速地算出来。

但是在利用Floyd算法的时候,该算法需要利用带权邻接矩阵跨接v1v2...,需要迭代n次。当节点个数很大时,迭代次数也很大。vn后得到的最短距离矩阵,

在进行n次迭代时,在起始点到终点之间会存在某些插入的节点不能使路程变短,

(k)(k)可以对其简化,降低计算过程。[3]优化思路为:构造迭代矩阵D?(dij),计算

两点vi和vj之间最短路时,对待插入的节点vr先进行路长比较,如果

(k?1)(k?1)k?1)(k?1)或d(,则说明插入节点vr后,vi经过vr到达vj的路长不dir?dij?dijrj(k?1)(k?1)会比原来的短,于是不应再考虑dir,则进入下一个节点的搜索。 ?drj五、模型的推广

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库图论是应用数学的一个分支在线全文阅读。

图论是应用数学的一个分支.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/355987.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: