資源簡(jiǎn)介
MATLAB 用基本蟻群算法進(jìn)行二維路徑規(guī)劃,后面還有畫(huà)圖顯示。

代碼片段和文件信息
function?path?=?DijkstraPlan(positionsign)
%%?基于Dijkstra算法的路徑規(guī)劃算法
%position????input?????%節(jié)點(diǎn)位置
%sign????????input?????%節(jié)點(diǎn)間是否可達(dá)
?
%path????????output????%規(guī)劃路徑
?
%%?計(jì)算路徑距離
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
?
%%?路徑開(kāi)始點(diǎn)
dist?=?cost(1:);?????????????%節(jié)點(diǎn)間路徑長(zhǎng)度???????????
s?=?zeros(size(dist));????????%節(jié)點(diǎn)經(jīng)過(guò)標(biāo)志
s(1)?=?1;dist(1)?=?0;
path?=?zeros(size(dist));?????%依次經(jīng)過(guò)的節(jié)點(diǎn)
path(1:)?=?1;
?
%%?循環(huán)尋找路徑點(diǎn)
for?num?=?2:n???
????
????%?選擇路徑長(zhǎng)度最小點(diǎn)
????mindist?=?10000;
????for?i?=?1:length(dist)
????????if?s(i)?==?0
????????????if?dist(i)????????????????mindist?=?dist(i);
????????????????u?=?i;
????????????end
????????end
????end
????
????%?更新點(diǎn)點(diǎn)間路徑
????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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????190??2009-09-04?09:54??chapter23\barrier.txt
?????文件???????1158??2010-11-17?08:41??chapter23\DijkstraPlan.m
?????文件??????????0??2010-11-17?08:29??chapter23\DijstraPlan.m
?????文件????????122??2009-07-19?18:08??chapter23\lines.txt
?????文件???????5601??2010-12-29?10:43??chapter23\main.m
?????文件????????989??2009-08-05?18:33??chapter23\matrix.txt
?????目錄??????????0??2011-08-28?11:14??chapter23
-----------?---------??----------?-----??----
?????????????????8060????????????????????7
- 上一篇:低秩表示模型
- 下一篇:布拉格光柵MATLAB反射譜仿真
評(píng)論
共有 條評(píng)論