Witam, mam problem z algorytmem Djikstry w Matlabie.
Mam problem z dodaniem 1. ścieżki w grafie (zaznaczonej na czerwono) w Matlabie. Byłby ktoś w stanie pomóc?
Pozdrawiam.
To jest kod na graf bez tej czerwonej ścieżki.
clear
clc
W=[0 15 inf inf 9 inf,
inf 0 35 3 inf inf,
inf 16 0 6 inf 21,
inf inf inf 0 2 7,
inf 4 inf 2 0 inf,
inf inf 5 inf inf 0];
s=6;
t=1;
dist=[];
final=[];
pred=[];
n=size(W,1);
for v = 1: n
dist(v)=inf;
final(v)=false;
pred(v)=-1;
end
dist(s)=0;
final(s)=true;
path=true;
recent=s;
while final(t)==false;
for v=1:n
if (W(recent,v)<inf) && (~final(v))
newlabel=dist(recent)+W(recent,v);
if newlabel< dist(v)
dist(v)=newlabel;
pred(v)=recent;
end
end
end
temp=inf;
for u=1:n
if (~final(u) && dist(u) <temp)
y=u;
temp=dist(u);
end
end
if temp <inf
final(y)=true;
recent=y;
else
path=false;
final(t)=true;
end
end
if (path)
odleglosc=dist(t);
poprzednik=t;
h=2;
g(1)=poprzednik;
while (true)
g(h)=pred(poprzednik);
if (pred(poprzednik)==s)
break;
end
d=poprzednik;
poprzednik=pred(d);
h=h+1;
end
droga=g(end:-1:1);
droga
odleglosc
else
'Nie znaleziono drogi'
end