資源簡介
資源包括了史峰等人編著的【MATLAB智能算法30個案例分析】課本以及對應的源代碼,對學習和運用智能算法的人有很大參考價值。
代碼片段和文件信息
function?path?=?DijkstraPlan(positionsign)
%%?基于Dijkstra算法的路徑規劃算法
%position????input?????%節點位置
%sign????????input?????%節點間是否可達
?
%path????????output????%規劃路徑
?
%%?計算路徑距離
cost?=?ones(size(sign))*10000;
[nm]?=?size(sign);
for?i?=?1:n
????for?j?=?1:m
????????if?sign(ij)?==?1
????????????cost(ij)?=?sqrt(sum((position(i:)-position(j:)).^2));
????????end
????end
end
?
%%?路徑開始點
dist?=?cost(1:);?????????????%節點間路徑長度???????????
s?=?zeros(size(dist));????????%節點經過標志
s(1)?=?1;dist(1)?=?0;
path?=?zeros(size(dist));?????%依次經過的節點
path(1:)?=?1;
?
%%?循環尋找路徑點
for?num?=?2:n???
????
????%?選擇路徑長度最小點
????mindist?=?10000;
????for?i?=?1:length(dist)
????????if?s(i)?==?0
????????????if?dist(i)????????????????mindist?=?dist(i);
????????????????u?=?i;
????????????end
????????end
????end
????
????%?更新點點間路徑
????s(u)?=?1;
????for?w?=?1:length(dist)
????????if?s(i)?==?0
????????????if?dist(u)+cost(uw)?????????????????dist(w)?=?dist(u)+cost(uw);
????????????????path(w)?=?u;
????????????end
????????end
????end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2113??2010-10-31?21:25??example2.m
?????文件???????1909??2010-10-31?21:26??example1.m
-----------?---------??----------?-----??----
?????????????????4022????????????????????2
評論
共有 條評論