資源簡(jiǎn)介
matlab編制的dijkstra算法,輸入為圖矩陣(N個(gè)節(jié)點(diǎn),N*N),源節(jié)點(diǎn)編號(hào)和目的節(jié)點(diǎn)編號(hào),輸出為節(jié)點(diǎn)路徑和距離
代碼片段和文件信息
function?[mydistancemypath]=dijkstra(asbdb);
%?輸入:a鄰接矩陣(aij)是指i到j(luò)之間的距離,可以是有向的
%?sb?起點(diǎn)的標(biāo)號(hào)?db終點(diǎn)的標(biāo)號(hào)
%?輸出:mydistance最短路的距離?mypath最短路的路徑
n=size(a1);?visited(1:n)?=?0;
a(find(a==0))=inf;
distance(1:n)?=?inf;?%?保存起點(diǎn)到各頂點(diǎn)的最短距離
distance(sb)?=?0;?parent(1:n)?=?0;
for?i?=?1:?n-1
????temp=distance;
????id1=find(visited==1);?%查找已經(jīng)標(biāo)號(hào)的點(diǎn)
????temp(id1)=inf;?%已標(biāo)號(hào)點(diǎn)的距離換成無窮
????[t?u]?=?min(temp);?%找標(biāo)號(hào)值最小的頂點(diǎn)
????visited(u)?=?1;?%標(biāo)記已經(jīng)標(biāo)號(hào)
評(píng)論
共有 條評(píng)論