• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-05
  • 语言: Matlab
  • 标签: matlab  最短路  

资源简介

利用matlab实现了网络最短路径的搜索算法,通过输入邻接矩阵和需要输出最短路径的始节点和终节点,即可得到这连点间可行的最短路。

资源截图

代码片段和文件信息

function [dindex1]=mydijkstra2(asb);
%从起点出发,寻找遍历所有点的最短路径
% 输入:a—邻接矩阵,a(i,j)是指i到j之间的距离,可以是有向的
% sb—起点的标号
% 输出:d—从起点开始便利所有标号的最短路距离 index1—从起点开始便利所有标号的最短路路径
%pb用来存放P标号信息 index1为标号顶点顺序 index2标号顶点索引
a(a==0)=inf;
pb(1:length(a))=0;pb(sb)=1;index1=sb;index2=ones(1length(a));
%d用来存放最短通路的值
d(1:length(a))=inf;d(sb)=0;
temp=sb;%最新的P标号的起点
while sum(pb)    tb=find(pb==0);
    d(tb)=min(d(tb)d(temp)+a(temptb));
    tmpb=find(d(tb)==min(d(tb)));
    temp=tb(tmpb(1));%可能有多个点同时达到最小值,只取其中一个
    pb(temp)=1;
    index1=[index1temp];
    temp2=find(d(index1)==d(temp)-a(tempindex1));
    index2(temp)=index1(temp2(1));
end
end

    
        tle>鏈皢瀵硅薄寮曠敤璁剧疆鍒板璞$殑瀹炰緥銆?/title>
        ta name=“viewport“ content=“width=device-width“ />
  

评论

共有 条评论