用matlab实现寻找最短路

用matlab实现寻找最短路

ID:9365723

大小:23.74 KB

页数:11页

时间:2018-04-29

用matlab实现寻找最短路_第1页
用matlab实现寻找最短路_第2页
用matlab实现寻找最短路_第3页
用matlab实现寻找最短路_第4页
用matlab实现寻找最短路_第5页
资源描述:

《用matlab实现寻找最短路》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用matlab寻找赋权图中的最短路中的应用1引言图论是应用数学的一个分支,它的概念和结果来源都非常广泛,最早起源于一些数学游戏的难题研究,如欧拉所解决的格尼斯堡七桥问题,以及在民间广泛流传的一些游戏的难题,如迷宫问题,博弈问题等。这些古老的难题,吸引了很多学者的注意。1847年,图论应用于分析电路网络,这是它最早应用于工程科学,以后随着科学的发展,图论在解决运筹学,网络理论,信息论,控制论,博弈论以及计算机科学等各个领域的问题时,发挥出很大的作用。在实践中,图论已成为解决自然科学,工程技术,社会科学,军事等领域中许多问题的有力工具之一。最短路问题是图论理论中

2、的经典问题,寻找最短路径就是在指定网络中两节点间找一条距离最小的路。2最短路2.1最短路的定义(short-pathproblem)对最短路问题的研究早在上个世纪60年代以前就卓有成效了,其中对赋权图的有效算法是由荷兰著名计算机专家E.W.Dijkstra在1959年首次提出的,该算法能够解决两指定点间的最短路,也可以求解图G中一特定点到其它各顶点的最短路。后来海斯在Dijkstra算法的基础之上提出了海斯算法。但这两种算法都不能解决含有负权的图的最短路问题。因此由Ford提出了Ford算法,它能有效地解决含有负权的最短路问题。但在现实生活中,我们所遇到的问

3、题大都不含负权,所以我们在的情况下选择Dijkstra算法。若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点(通常是源节点和阱节点)之间总权和最小的路径就是最短路问题。最短路问题是网络理论解决的典型问题之一,它不仅可以直接应用于解决生产实际的许多问题,如管路铺设、线路安装、厂区布局和设备更新等,而且经常被作为一个基本的工具,用于解决其他的做优化问题。定义1:若图G=G(V,E)中个边[vi,vj]都赋有一个实数wij,则称这样的图G为赋权图,wij称为边[vi,vj]上的权。定义2:给定一个赋权有向图,即给一个有向图D=(V,A),对每一个弧

4、a=(vi,vj),相应地有权w(a)=wij,又给定D中的两个顶点vs,vt。设P是D中从vs到-11-vt的一条路,定义路P的权是P中所有弧的权之和,记为w(P)。最短路问题就是要在所有从vs到vt的路中,求一条权最小的路,即求一条从vs到vt的路P0,使w(P0)=w(P)式中对D中所有从vs到vt的路P最小,称P0是从vs到vt的最短路。2.2最短路问题算法的基本思想及其基本步骤在求解网络图上节点间最短路径的方法中,目前国内外一致公认的比较好的算法有Dijkstra和Floyd算法。这两种算法,网络被抽象为一个图论中定义的有向图或无向图,并利用图的节

5、点邻接矩阵记录点的关联信息。在进行图的遍历搜索最短路径时,以该矩阵为基础不断进行目标值的最小性判别,知道获得最后的优化路径。鉴于课本使用Dijkstra算法,下面用Floyd算法进行计算:设A=(a)n*n为赋权图G=(V,E,F)的矩阵,当ViVj∈E时,aij=F(vi,vj),否则,取aij=0,aij=+∞(i≠j),dij表示从vi到vj的点的距离,rij表示从vi到vj的点的最短路中的一个点的编号。①赋初值。对所有i,j,dij=aij,rij=j,k=1,转向②;②更新dij,rij,对所有i,j,若dik+dkj

6、dkj,rij=k,转向;③终止判断。若dij<0,则存在一条含有顶点vi的负回路,终止;或者k=n,终止;否则,另k=k+1,转向②。最短路线可由rij得到。2.3用matlab程序实现上述算法编写程序函数程序如下:functionf=shortpath(n,A)clear;n=input('请输入矩阵的阶n=');A=input('请输入赋权图对应的n阶矩阵A=');%顶点之间不通时,用inf表示(MATLAB中,inf表示无穷)D=A;%赋初值for(i=1:n)for(j=1:n)R(i,j)=j;end;-11-end%赋路径初值for(k=1:n

7、)for(i=1:n)for(j=1:n)if(D(i,k)+D(k,j)

8、6538V08V21V56v717243V39V5用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。