码迷,mamicode.com
首页 > 其他好文 > 详细

图论之最短路03——任意指定点到所有其它点的最短路径及距离

时间:2015-08-21 13:36:17      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:图论   最短路算法   路径问题   任意指定点到所有其它点的最短路径及距离   

========================================================
重要程度 *****
求任意点到其它点间最短距离及其路径。
输入:权值矩阵,起点
输出如下:
      点i—>点j
      路径  ¥¥¥
      距离  ¥¥¥

说明:必须调用E:\matlab M文件\liangdianzuiduanlu.m,请查看网址:

http://blog.csdn.net/lzx19901012/article/details/47832213《图论之最

短路02-1——任意两点间最短距离及路径》

========================================================
function yiduiduozuiduanlu(W)
qidian=input(‘请输入起点:‘);
n=size(W,1);
D=zeros(1,n);
for zhongdian=1:n
    [p d]=liangdianzuiduanlu(W,qidian,zhongdian);
    Pm{zhongdian}=p;
    D(zhongdian)=d;
end
clc
fprintf(‘点%d到其他点的路径和最短距离如下:‘,qidian)
for zhongdian=1:n
     fprintf(‘\n            点%d->点%d\n‘,qidian,zhongdian)
    disp(‘================================‘)
    lujing=Pm{zhongdian}
    juli=D(zhongdian)
    disp(‘================================‘)
end
================================================================
评:类似于C语言中的函数调用,本程序中调用了《liangdianzuiduanlu.m》,
调用时要求两函数位于同一目录下(可自定义)。

================================================================

例:求下图中点3到其他所有点的最短路径及距离(想想消防路径规划时是不是可以用呢?)

技术分享

解:

(1)写权值矩阵

quanzhijuzhen=[ 0     2     8     1   Inf   Inf   Inf   Inf
     2     0     6   Inf     1   Inf   Inf   Inf
     8     6     0     7     5     1     2   Inf
     1   Inf     7     0   Inf   Inf     9   Inf
   Inf     1     5   Inf     0     3   Inf     8
   Inf   Inf     1   Inf     3     0     4     6
   Inf   Inf     2     9   Inf     4     0     3
   Inf   Inf   Inf   Inf     8     6     3     0]

(2)带入程序(格式整理后输出如下)

yiduiduozuiduanlu(quanzhijuzhen)

点3到其他点的路径和最短距离如下:
                          点3->点1
================================
lujing =     3     6     5     2     1     1
juli =     7
================================


                         点3->点2
================================
lujing =     3     6     5     2     2
juli =     5
================================


                         点3->点3
================================
lujing =     3
juli =     0
================================


                         点3->点4
================================
lujing =     3     4
juli =     7
================================


                        点3->点5
================================
lujing =     3     6     5     5
juli =     4
================================


                          点3->点6
================================
lujing =     3     6
juli =     1
================================


                         点3->点7
================================
lujing =     3     7
juli =     2
================================


                        点3->点8
================================
lujing =     3     7     8
juli =     5
================================


版权声明:博主文章可以被非商用转载,但请务必注明出处,因水平有限,难免出错,在此免责。

图论之最短路03——任意指定点到所有其它点的最短路径及距离

标签:图论   最短路算法   路径问题   任意指定点到所有其它点的最短路径及距离   

原文地址:http://blog.csdn.net/lzx19901012/article/details/47832579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!