用matlab寻找赋权图中的最短路
专业:
小组:第22小组
小组成员:
课题:用matlab寻找赋权图中的最短路
采用形式:集体讨论,并到图书馆搜集相关资料,进行编程,运行。
最后以论文的形式表现出来。
1引言
图论是应用数学的一个分支,它的概念和结果来源都非常广泛,最早起源于一些数学游戏的难题研究,如欧拉所解决的格尼斯堡七桥问题,以及在民间广泛流传的一些游戏的难题,如迷宫问题,博弈问题等。
这些古老的难题,吸引了很多学者的注意。
1847年,图论应用于分析电路网络,这是它最早应用于工程科学,以后随着科学的发展,图论在解决运筹学,网络理论,信息论,控制论,博弈论以及计算机科学等各个领域的问题时,发挥出很大的作用。
在实践中,图论已成为解决自然科学,工程技术,社会科学,军事等领域中许多问题的有力工具之一。
最短路问题是图论理论中的经典问题,寻找最短路径就是在指定网络中两节点间找一条距离最小的路。
2 最短路
2.1 最短路的定义(short-path problem)
对最短路问题的研究早在上个世纪60年代以前就卓有成效了,
若网络中的每条边都有一个数值(长度、成本、时间等),则找出两节点(通常是源节点和阱节点)之间总权和最小的路径就是最短路问题。
最短路问题是网络理论解决的典型问题之一,它不仅可以直接应用于解决生产实际的许多问题,如管路铺设、线路安装、厂区布局和设备更新等,而且经常被作为一个基本的工具,用于解决其他的做优化问题。
定义1:若图G=G(V,E)中个边[v i,v j]都赋有一个实数w ij ,则称这样的图G为赋权图,w ij 称为边[v i,v j]上的权。
定义2:给定一个赋权有向图,即给一个有向图D=(V,A),对每一个弧a=(v i,v j),相应地有权w(a)=w ij,又给定D中的两个顶点v s ,v t 。
设P是D中从v s 到v t 的一条路,定义路P的权是P中所有弧的权之和,记为w(P)。
最短路问题就是要在所有从v s到v t 的路中,求一条权最小的路,即求一条从v s
min w(P)式中对D中所有从v s到v t 的路P最小,到v t 的路P0 ,使w(P0)=
P
称P0 是从v s到v t 的最短路。
2.2最短路问题算法的基本思想及其基本步骤
在求解网络图上节点间最短路径的方法中,目前国内外一致公认的比较好的算法有Dijkstra和Floyd算法。
这两种算法,网络被抽象为一个图论中定义的有向图或无向图,并利用图的节点邻接矩阵记录点的关联信息。
在进行图的遍历搜
索最短路径时,以该矩阵为基础不断进行目标值的最小性判别,知道获得最后的优化路径。
鉴于课本使用Dijkstra 算法,下面用Floyd 算法进行计算: 设A=(a )n*n 为赋权图G=(V ,E ,F )的矩阵,当V i V j ∈E 时,a ij =F (v i ,v j ),否则,取a ij =0,a ij =+∞(i ≠j ),d ij 表示从v i 到v j 的点的距离,r ij 表示从v i 到v j 的点的最短路中的一个点的编号。
① 赋初值。
对所有i ,j ,d ij = a ij ,r ij =j ,k=1,转向②;
② 更新d ij ,r ij ,对所有i ,j ,若d ik + d kj < d ij ,则令d ij = d ik + d kj ,r ij =k ,转向; ③ 终止判断。
若d ij <0,则存在一条含有顶点v i 的负回路,终止;或者k=n ,终止;否则,另k=k+1,转向②。
最短路线可由r ij 得到。
2.3 用matlab 程序实现上述算法
编写程序函数程序如下:
function f=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 ;
end %赋路径初值
for (k=1:n)
for (i=1:n)
for (j=1:n)
if (D(i,k)+D(k,j)<D(i,j))
D(i,j)=D(i,k)+D(k,j); %更新dij
R(i,j)=k; %更新rij
end ;
end ;
end
k %显示迭代步数
D %显示每步迭代后的路长
R %显示每步迭代后的路径
pd=0;
for (i=1:n) %含有负权
if (D(i,j)<0)
pd=1;
break ;
end ;
end %存在一条含有顶点的vi 的负回路
if (pd)
break;
end %存在一条负回路,终止程序
end%程序结束
3 最短路的实际应用
●最短路问题在交通网络结构的分析,交通运输路线(公路、铁路、河流航运线、航空线、管道运输路线等)的选择,通讯线路的建造与维护,运输货流的最小成本分析,城公共交通网络的规划等,都有直接应用的价值。
●最短路问题在实际中还常用于汽车导航系统以及各种应急系统等(110报警、119火警以及120医疗救护系统),这些系统一般要求计算出到出事地点的最佳路线的时间最短。
利用最短路还需要实际计算出前方的行驶路线,这就决定了最短路径问题的实现应该是高效率的。
●根据现在发展的要求,在城乡一体化的总体思路中,为实现农村村村通的目标,针对农村地理分布,进行合理规划,对与优化农村交通网络,促进农村发展有重要的内容。
4 结语
本文将最短路理论与实际相联系,尤其是对与当前热点问题的应用,具有很重要的意义。
将实际生活中出现的安全隐患尽量降低。
同时也凸显出学习与应用最短路原理的重要性。
要在平时的生活中,注意学习中的相关联系,以此可以提高学生学习知识的兴趣。
【参考文献】:
[1] 甘应爱、田丰等. 运筹学(第三版). 北京. 清华大学出版社2006.
[2] 蒲俊等. MATLAB6.0数学手册. 上海. 浦东电子出版社2002。