Red de conocimiento informático - Conocimiento sistemático - Encuentre el programa para encontrar el camino más corto de v1 a v8 usando los algoritmos de Dijkstra y Floyd en matlab. .

Encuentre el programa para encontrar el camino más corto de v1 a v8 usando los algoritmos de Dijkstra y Floyd en matlab. .

función?[?distancia,?ruta]?=?Dijkstra(?W,st,e?)?

n=longitud(W);

D?=?W(st,:);?

visita=?ones(1:n);?

visita(st)=0;?

padre?=?zeros(1,n);?

ruta?=[];?

for?i=1:n-1?

temp?=?[];?

para?j=1:n?

si?visita(j)?

temp?= [temp?D(j)];?

otro?

temp?=[temp?inf];?

fin

fin

[~, índice]?=?min(temp);?

visita(índice)?=?0;? para?k=1:n?

if?D(k)gt;D(índice) W(índice,k)?

D(k)?=?D(índice) W(índice,k);?

padre(k)?=?index;?

¿final?

final?

final?

distancia?=?D(e);

t?=?e;?

mientras?t~=st?amp;amp;?tgt;0?

ruta?=[t, ruta];?

p=parent(t);t=p;?

fin?

ruta ?=[st, ruta]; ruta más corta?

endW?=?[0310?Inf?Inf?Inf?Inf?Inf 30Inf?5Inf?Inf?Inf?Inf; ?Inf?Inf?Inf?Inf?5604Inf?Inf?Inf?10?5306; distancia, camino]=Dijkstra(W, 1, 8); ?distancia

distancia?=

23

gt;gt;? ruta

ruta?= 1?2?4?5?7?8