資源簡(jiǎn)介
通過(guò)編寫雜草算法來(lái)尋找到一個(gè)二元函數(shù)的最小值
代碼片段和文件信息
clear;
close?all;
N0=30;??????????%%%%初始種群個(gè)數(shù)%%
itmax=500;??????%%%迭代次數(shù)%%%%
dim=2;??????????%%%%維數(shù)%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???1???定義參數(shù)????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pmax=50;????????%%%%種群最大范圍%%%
smax=5;?????????%%%最大種子數(shù)%%%%
smin=0;?????????%%%最小種子數(shù)%%%%
n=3;????????????%%%%調(diào)和指數(shù),計(jì)算方差使用,為固定好的值%%%
delta_initial=3;???%%%方差最大值%%%
delta_final=0.001;????%%%方差最小值%%%?
xini=-100+200*rand(N02);??%%%隨機(jī)產(chǎn)生初始種群,在[01]之間%
???????????????????????????%rand函數(shù)返回一個(gè)30*2的隨機(jī)矩陣,并且在1-200之間
???????????????????????????%本身函數(shù)關(guān)系為X=xmin+(xmax-xmin)*rand(N0dim)
???????????????????????????%這里定義xmin=-100xmax=100
plot(xini(:1)xini(:2)‘b*‘)???%%%%畫出產(chǎn)生初始雜草種群圖像(藍(lán)色)
title(‘產(chǎn)生初始雜草種群‘);??????%%%%定義標(biāo)題%%
xlabel(‘z1‘);?????%%%定義橫坐標(biāo)%%%
ylabel(‘z2‘);??????%%%%定義縱坐標(biāo)%%%%
hold?on;???????????%%%%保持%%%
FB=zeros(itmax1);???%%%生成itmax=500行*1列的0矩陣%%%
iter=1;???%%%%定義初始迭代次數(shù)為1??%%%
while?(iter ??????????????????????%%%%循環(huán)迭代%%
%%%%%%%%%%%%%%%%%%%%5%%%%%%%%??2???生產(chǎn)繁殖,產(chǎn)生種子??%%%%%%%%%%%%%%%%%%%%%5%%%%%%%%%%%%%%%%%%%%%%%%%%
????Niter=N0;???%%%%定義此時(shí)的種群范圍Niter=N0=30?剛剛開(kāi)始等于初始種群個(gè)數(shù)%%%
????fitness=xini(:1).^2+xini(:2).^2;??%%%計(jì)算種群適應(yīng)度函數(shù)%%%%
????Nseed=round(-5/(max(fitness)-min(fitness))*(fitness-min(fitness))+5);
?????????????????????????????%%%產(chǎn)生種子??round函數(shù)輸入任何一個(gè)數(shù)組,對(duì)這個(gè)數(shù)組
?????????????????????????????%%%里每個(gè)元素進(jìn)行四舍五入取整
?????%%%原公式??Nseed=round(-(smax-smin)/max(fitness)-min(fitness))*(fitness-min(min(fitness)))+smax)
?????
%%%%%%%%%%%%%%%%%%%%%%%%%%%%???3??空間擴(kuò)散,以正態(tài)隨機(jī)分布??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????delta_iter=(itmax-iter)^n/(itmax)^n*(delta_initial-delta_final)+delta_final;
??????????????????????????????%%%%%%%%%%%??計(jì)算每一代的標(biāo)準(zhǔn)差???%%%%%%%%%%%
?????%%原公式為?delta_iter=(delta_initial-delta_final)*((itmax-iter)^n)/((itmax)^n)+delta_final????????????????????
????M=size(Nseed);???%%%%?size函數(shù)返回Nseed矩陣的行數(shù)?%%%
????m1=[];
????m2=[];
????a=[];
????b=[];????????????%%%%%??定義m1?m2?a?b四個(gè)空矩陣??%%%%
????for?i=1:M(11)????%%%?對(duì)于每個(gè)個(gè)體???M=[501]?即i從1到50循環(huán)??%%%%
????????x1_iter=no
評(píng)論
共有 條評(píng)論