91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

輸入參數列表 G 地形圖為01矩陣,如果為1表示障礙物 Tau 初始信息素矩陣(認為前面的覓食活動中有殘留的信息素) K 迭代次數(指螞蟻出動多少波) M 螞蟻個數(每一波螞蟻有多少個) S 起始點(最短路徑的起始點) E 終止點(最短路徑的目的點)

資源截圖

代碼片段和文件信息

function?[ROUTESPLTau]=ACASP(GTauKMSEAlphaBetaRhoQ)
%%?---------------------------------------------------------------
%??ACASP.m
%??蟻群算法動態尋路算法
%??ChengAihuaPLA?Information?Engineering?UniversityZhengZhouChina
%??Email:aihuacheng@gmail.com
%??All?rights?reserved
%%?---------------------------------------------------------------
%??輸入參數列表
%??G????????地形圖為01矩陣,如果為1表示障礙物
%??Tau??????初始信息素矩陣(認為前面的覓食活動中有殘留的信息素)
%??K????????迭代次數(指螞蟻出動多少波)
%??M????????螞蟻個數(每一波螞蟻有多少個)
%??S????????起始點(最短路徑的起始點)
%??E????????終止點(最短路徑的目的點)
%??Alpha????表征信息素重要程度的參數
%??Beta?????表征啟發式因子重要程度的參數
%??Rho??????信息素蒸發系數
%??Q????????信息素增加強度系數
%
%??輸出參數列表
%??ROUTES???每一代的每一只螞蟻的爬行路線
%??PL???????每一代的每一只螞蟻的爬行路線長度
%??Tau??????輸出動態修正過的信息素
%%?--------------------變量初始化----------------------------------
%load
D=G2D(G);
N=size(D1);%N表示問題的規模(象素個數)
MM=size(G1);
a=1;%小方格象素的邊長
Ex=a*(mod(EMM)-0.5);%終止點橫坐標
if?Ex==-0.5
????Ex=MM-0.5;
end
Ey=a*(MM+0.5-ceil(E/MM));%終止點縱坐標
Eta=zeros(1N);%啟發式信息,取為至目標點的直線距離的倒數
%下面構造啟發式信息矩陣
for?i=1:N
????if?ix==-0.5
????????ix=MM-0.5;
????end
????iy=a*(MM+0.5-ceil(i/MM));???
????if?i~=E
????????Eta(1i)=1/((ix-Ex)^2+(iy-Ey)^2)^0.5;
????else
????????Eta(1i)=100;
????end
end
ROUTES=cell(KM);%用細胞結構存儲每一代的每一只螞蟻的爬行路線
PL=zeros(KM);%用矩陣存儲每一代的每一只螞蟻的爬行路線長度
%%?-----------啟動K輪螞蟻覓食活動,每輪派出M只螞蟻--------------------
for?k=1:K
????disp(k);
????for?m=1:M
%%?????第一步:狀態初始化
????????W=S;%當前節點初始化為起始點
????????Path=S;%爬行路線初始化
????????PLkm=0;%爬行路線長度初始化
????????TABUkm=ones(1N);%禁忌表初始化
????????TABUkm(S)=0;%已經在初始點了,因此要排除
????????DD=D;%鄰接矩陣初始化
%%?????第二步:下一步可以前往的節點
????????DW=DD(W:);
????????DW1=find(DW);
????????for?j=1:length(DW1)
????????????if?TABUkm(DW1(j))==0
????????????????DW(j)=inf;
????????????end
????????end
????????LJD=find(DW);
????????Len_LJD=length(LJD);%可選節點的個數
%%?????覓食停止條件:螞蟻未遇到食物或者陷入死胡同
????????while?W~=E&&Len_LJD>=1
%%?????????第三步:轉輪賭法選擇下一步怎么走
????????????PP=zeros(1Len_LJD);
????????????for?i=1:Len_LJD
????????????????PP(i)=(Tau(WLJD(i))^Alpha)*(Eta(LJD(i))^Beta);
????????????end
????????????PP=PP/(sum(PP));%建立概率分布
????????????Pcum=cumsum(PP);
????????????Select=find(Pcum>=rand);
%%?????????第四步:狀態更新和記錄
????????????Path=[Pathto_visit];%路徑增加
????????????PLkm=PLkm+DD(Wto_visit);%路徑長度增加
????????????W=to_visit;%螞蟻移到下一個節點
????????????for?kk=1:N
????????????????if?TABUkm(kk)==0
????????????????????DD(Wkk)=inf;
????????????????????DD(kkW)=inf;
????????????????end
????????????end
????????????TABUkm(W)=0;%已訪問過的節點從禁忌表中刪除
????????????for?j=1:length(DW1)
????????????????if?TABUkm(DW1(j))==0
????????????????????DW(j)=inf;
????????????????end
????????????end
????????????LJD=find(DW);
????????????Len_LJD=length(LJD);%可選節點的個數
????????end
%%?????第五步:記下每一代每一只螞蟻的覓食路線和路線長度
????????ROUTES{km}=Path;
????????if?Path(end)==E
????????????PL(km)=PLkm;
????????else
????????????PL(km)=inf;
????????end
????end
%%?第六步:更新信息素
????Delta_Tau=zeros(NN);%更新量初始化
????for?m=1:M
?????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6472??2011-11-28?09:48??ACASP.m

評論

共有 條評論