xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 7KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-23
  • 語(yǔ)言: Matlab
  • 標(biāo)簽: 蟻群??路徑??規(guī)劃??

資源簡(jiǎn)介

這是一份關(guān)于蟻群算法的源代碼,主要用于路徑規(guī)劃,親測(cè)可以運(yùn)行

資源截圖

代碼片段和文件信息

%%?---------------------------------------------------------------

%??輸入?yún)?shù)列表
%??G????????地形圖為01矩陣,如果為1表示障礙物
%??Tau??????初始信息素矩陣(認(rèn)為前面的覓食活動(dòng)中有殘留的信息素)
%??K????????迭代次數(shù)(指螞蟻出動(dòng)多少波)
%??M????????螞蟻個(gè)數(shù)(每一波螞蟻有多少個(gè))
%??S????????起始點(diǎn)(最短路徑的起始點(diǎn))
%??E????????終止點(diǎn)(最短路徑的目的點(diǎn))
%??Alpha????表征信息素重要程度的參數(shù)
%??Beta?????表征啟發(fā)式因子重要程度的參數(shù)
%??Rho??????信息素蒸發(fā)系數(shù)
%??Q????????信息素增加強(qiáng)度系數(shù)
%
%??輸出參數(shù)列表
%??ROUTES???每一代的每一只螞蟻的爬行路線
%??PL???????每一代的每一只螞蟻的爬行路線長(zhǎng)度
%??Tau??????輸出動(dòng)態(tài)修正過(guò)的信息素
%%?--------------------變量初始化----------------------------------
function?m_main()
tic
G=[0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0;
???0?1?1?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0;
???0?1?1?0?0?0?1?1?1?0?0?0?0?0?0?0?0?0?0?0;
???0?0?0?0?0?0?1?1?1?0?0?0?0?0?0?0?0?0?0?0;
???0?0?0?0?0?0?1?1?1?0?0?0?0?0?0?0?0?0?0?0;
???0?1?1?1?0?0?1?1?1?0?0?0?0?0?0?0?0?0?0?0;
???0?1?1?1?0?0?1?1?1?0?0?0?0?0?0?0?0?0?0?0;
???0?1?1?1?0?0?1?1?1?0?1?1?1?1?0?0?0?0?0?0;
???0?1?1?1?0?0?0?0?0?0?1?1?1?1?0?0?0?0?0?0;
???0?0?0?0?0?0?0?0?0?0?1?1?1?1?0?0?0?0?0?0;
???0?0?0?0?0?0?0?0?0?0?1?1?1?1?0?0?0?0?0?0;
???0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0;
???0?0?0?0?0?0?0?0?0?0?0?1?1?1?0?1?1?1?1?0;
???0?0?0?0?0?0?0?0?0?0?0?1?1?1?0?1?1?1?1?0;
???0?0?1?1?0?0?0?0?0?0?0?1?1?1?0?1?1?1?1?0;
???0?0?1?1?0?0?1?1?1?0?0?0?0?0?0?0?0?0?0?0;
???0?0?0?0?0?0?1?1?1?0?1?1?0?0?0?0?0?1?1?0;
???0?0?0?0?0?0?0?0?0?0?1?1?0?0?1?0?0?1?1?0;
???0?0?0?0?0?0?0?0?0?0?0?0?0?0?1?0?0?0?0?0;
???0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0;];?%利用矩陣來(lái)表示柵格
MM=size(G1);??????%?G?地形圖為01矩陣,如果為1表示障礙物?返回矩陣G的行數(shù)(有幾行)
Tau=ones(MM*MMMM*MM);%?Tau?初始信息素矩陣,在這里設(shè)置所有位置初始信息素都相同(400*400矩陣)
Tau=8.*Tau;
K=100;??????????%?K?迭代次數(shù)(指螞蟻出動(dòng)多少波)
M=50;?????????%?M?螞蟻個(gè)數(shù)(每一波螞蟻有多少個(gè))
S=1?;?????????%?S?起始點(diǎn)(最短路徑的起始點(diǎn))
E=MM*MM;?????????%?E?終止點(diǎn)(最短路徑的目的點(diǎn))
Alpha=1;????%?Alpha?表征信息素重要程度的參數(shù)
Beta=7;?????%?Beta?表征啟發(fā)式因子重要程度的參數(shù)
Rho=0.3;?????%?Rho?信息素蒸發(fā)系數(shù)
Q=1;??????????%?Q?信息素增加強(qiáng)度系數(shù)
minkl=inf;
mink=0;
minl=0;

D=G2D(G);
N=size(D1);%N表示問(wèn)題的規(guī)模??
a=1;%小方格象素的邊長(zhǎng)
Ex=a*(mod(EMM)-0.5);%終止點(diǎn)橫坐標(biāo)?mod求余函數(shù)
if?Ex==-0.5
Ex=MM-0.5;
end
Ey=a*(MM+0.5-ceil(E/MM));%終止點(diǎn)縱坐標(biāo)?cell返回大于或者等于指定表達(dá)式的最小整數(shù)
Eta=zeros(N);%啟發(fā)式信息,取為至目標(biāo)點(diǎn)的直線距離的倒數(shù)
%下面構(gòu)造啟發(fā)式信息矩陣
for?i=1:N
?ix=a*(mod(iMM)-0.5);
???if?ix==-0.5
???ix=MM-0.5;
???end
iy=a*(MM+0.5-ceil(i/MM));?
???if?i~=E?%不等于
???Eta(i)=1/((ix-Ex)^2+(iy-Ey)^2)^0.5;
???else
???Eta(i)=100;
???end
end
ROUTES=cell(KM);%用細(xì)胞結(jié)構(gòu)存儲(chǔ)每一代的每一只螞蟻的爬行路線里面的元素可以是任意類型的變量(屬性變量,用戶自己創(chuàng)建的變量),而不必是統(tǒng)一的類型
PL=zeros(KM);%用矩陣存儲(chǔ)每一代的每一只螞蟻的爬行路線長(zhǎng)度
%%?-----------啟動(dòng)K輪螞蟻覓食活動(dòng),每輪派出M只螞蟻--------------------
for?k=1:K
for?m=1:M
%%?第一步:狀態(tài)初始化
W=S;%當(dāng)前節(jié)點(diǎn)初始化為起始點(diǎn)
Path=S;%爬行路線初始化
PLkm=0;%爬行路線長(zhǎng)度初始化
TABUkm=ones(N);%禁忌表初始化
TABUkm(S)=0;%已經(jīng)在初始點(diǎn)了,因此要排除
DD=D;%鄰接矩陣初始化
%%?第二步:下一步可以前往的節(jié)點(diǎn)
DW=DD(W:);
DW1=find(DW);
for?j=1:length(DW1)
???if?TABUkm(DW1(j))==0
??????DW(DW1(j))=0;
??end
end
LJD=find(DW);
Len_LJD=length(LJD);%可選節(jié)點(diǎn)的個(gè)數(shù)

%%?覓食停止條件:螞蟻未遇到食物或者陷入死胡同
while?W~=E&&Len_LJD>=1
%%?第三步:轉(zhuǎn)輪賭法選擇下一步怎么走
PP=zeros(Len_LJD);
??for?i=1:Len_LJD
????PP(i)=(Tau(WLJD(i))^Alpha)*((Eta(LJD(i)))^Beta);??
??end
sum

評(píng)論

共有 條評(píng)論