- function [distance,path]=Dijkstra(W,s,d)
- %20190117 by Asterghost,in Beijing
- N=length(W);
- for i=1:N
- W(i,find(W(i,:)==0))=inf;
- W(i,i)=0;
- end
- short_path_val=1./zeros(1,N);
- pre_dot=zeros(1,N);
- neighbor=W(s,:);
- neighbor(s)=inf;
- short_path_val(s)=0;
- dot=zeros(1,N);
- dot(:,:)=s;
- while sum(neighbor(:,:)~=inf)
- [xx,x]=min(neighbor);
- x=x(1);
- neighbor(x)=inf;
- short_path_val(x)=xx;
- pre_dot(x)=dot(x);
- val_copy=xx+W(x,:);
- yy=find(short_path_val==inf);
- y=find(val_copy<neighbor);
MATALB 复杂网络最短路径及最短距离Dijkstra算法源码
最新推荐文章于 2023-11-08 20:44:01 发布
这是一个MATLAB编写的Dijkstra算法源码,用于计算复杂网络中的最短路径和最短距离。作者Asterghost在2019年1月17日于北京编写。算法首先初始化权重矩阵,然后通过循环找到并更新最短路径,最终得出从源节点到目标节点的路径及其总距离。

最低0.47元/天 解锁文章
4487

被折叠的 条评论
为什么被折叠?



