floyd算法matlab

【floyd算法matlab】

floyd算法matlab

文章插图
a矩阵是邻接矩阵,对角线上为o,其余位置数字表示的是两点之间距离,比如a(1,2)=2,表示从第一个点到第二个点的距离为2.inf是无穷大的意思,这里表示没有直接沟通这两点的路 。n=length(d);设定n为d矩阵的长度 。接下来的两重循环,得到的r矩阵是n*n的矩阵,它每个数据表示的是路径,比如:r(1,3)=1;表示路径为:1-1-3.这里是初始化路径了 。后面的三重循环是floyd算法的关键所在,就是更新路线了 。里面的那个判断指的是:假设有3个点,123;如果我从1-2-3之间总距离小于1-3的距离,那么我r(1,3)=2;这就是选取更近的路线了 。最后的两个判断是为了不让曾经走过的点再次被遍历 。就是不回头的意思了,这个一般都可以忽略了,你照打上去就是了 。不知道这样的解释你是否满意 。

    推荐阅读