有人能帮我如何Dijkstra算法多路径的伪代码转换为MATLAB代码?我不能翻译明星线通过下面的伪代码

5视图(30天)
(1:n) = 0, dist (1: n) =正无穷,上一页(1:n) = n + 1;
dist (s) = 0, indmatcan = [], tt = 1, prevmat = [];
在((s) < > n)
候选人= [];
i = 1到n
如果s (i) = = 0
候选人(i) = dist (i);
其他的
候选人(i) =正;
如果
结束了
% minind =指数候选人数组的最小值;
如果| minind | > 1
为r = 1 | minind |
indmatcan (tt, r) = minind (r);
结束了
tt = t + 1;
如果
s (u) = 1;
i = 1到n
如果dist (u) + dismat (u,我)< dist (i)
dist (i) = dist (u) + dismat (u,我);
上一页(i) = u;prevmat (i) = (u);
else if dist (u) + dismat (u, i) < dist (i) & dist (i) < >正无穷
加上u prevmat(我)
如果
结束了
结束时
pathmat(年代,d)。assignpathmath = [], sp = [d], spt = [];
而sp(1) < >年代
如果| prevmat (sp (1) | = = 1
sp =[上一页周效磺胺-乙胺嘧啶(sp (1))];
其他的
j = 2 | prevmat (sp (1) |
spt = recusive_path_s_d(年代,prevmat (sp (1), j), n,上一页);* * * * * *
spt = (spt sp);sptcost =评估(spt);* * * * * * * * * * * * * *
如果sptcost < =距离(d)
添加spt pathmat .assignppathmat (s、d)
如果
结束了
sp = [prevmat (sp (1), 1) sp);
如果
结束时
spcost = dist (d);
pathmat(年代,d)。成本= spcost,加上sp pathmat (s、d) .assignpathmat;* * * * * * * * * * *
m = indmatcan的行数;
因为我= 1 m
v =非零元素的数量indmatcan i行;
j = 2 v
spt = [];(spt sptcost] = dijkstra_s_d (dismat indmatcan (i, j), d);
如果sptcost < = spcost
虽然spt (1) < > s &上一页(spt(1))不属于spt
spt =[上一页(spt (1)) spt];
结束时
添加最优路径spt pathmat (s、d) .assignpathmat;
如果
结束(j)
结束(我)
pathmat(年代,d) .cost = spcost;
输出:pathmat(年代,d)

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!