資源簡(jiǎn)介
遺傳算法求解Rastrigin函數(shù)遺傳算法求解Rastrigin函數(shù)遺傳算法求解Rastrigin函數(shù)遺傳算法求解Rastrigin函數(shù)
代碼片段和文件信息
function?ga
%遺傳算法極小值問(wèn)題
clear
clc
bn=50;?????%個(gè)體串長(zhǎng)度
inn=50;????%初始種群大小
gnmax=600;?%最大迭代次數(shù)
pc=0.8;???%交叉概率
pm=0.1;???%變異概率
%產(chǎn)生初始種群
fps=10.24*(rand(innbn)-0.5*ones(innbn));??%十進(jìn)制編碼,使初始解在[-5.12,5.12]范圍內(nèi)
select=fps;
gn=0;
%第一代解
n?=?30;
fr?=?4000;
while?gn %分別將種群代入目標(biāo)函數(shù)計(jì)算適應(yīng)度
q?=?0;
p?=?0;
for?i?=?1:50
???for?j?=?1:50
???????x(j)=select(ij:j);
???????q?=?q+x(j)^2+10;
???????p?=?p+10*cos(2*pi*x(j));
???end
???????y(i)=q-p;
???????q=0;
???????p=0;????
end
[pmini]=min(y);%將當(dāng)前種群中最優(yōu)解保存在pmin
pmin1=pmin;
vari=mean(select(i:));%計(jì)算最優(yōu)染色體的平均值并送給vari,變異自適應(yīng)調(diào)節(jié)域值
l=i;%將最優(yōu)染色體行坐標(biāo)傳送給l
[pmaxz]=max(y);%求取適應(yīng)度最差的染色體
select(z:)=select(l:);%將最優(yōu)染色體引入種群參與競(jìng)爭(zhēng)
%進(jìn)行交叉,進(jìn)一步選擇優(yōu)秀的解
for?i=1:2:50
????pcc=pro(pc);%根據(jù)交叉概率判斷是否進(jìn)行交叉
????if?pcc==1
????????if?0<=l-i<=1%判斷是不是最優(yōu)染色體,如果是不進(jìn)行交叉
?????cross(i:)=select(i:);
?????cross(i+1:)=select(i+1:);
????????else
????%將30個(gè)變量分為五個(gè)范圍,相臨兩個(gè)染色體分別從五位進(jìn)行交叉
????crb1=round(rand*(bn/5-1))+1;??%在[16]范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)交叉位
????cross(icrb1:crb1)=0.1*select(icrb1:crb1)+0.9*select(i+1crb1:crb1);
????for?j=1:9
???cross(i+1j*crb1:j*crb1)=0.1*select(ij*crb1:j*crb1)+0.9*select(i+1j*crb1:j*crb1);
????cross(i(j+1)*crb1:(j+1)*crb1)=0.1*select(i(j+1)*crb1:(j+1)*crb1)+0.9*select(i+1(j+1)*crb1:(j+1)*crb1);
???
????end
??????%??%%%%
???%??cross(i+1crb1:crb1)=0.1*select(icrb1:crb1)+0.9*select(i+1crb1:crb1);
?????%cross(i2*crb1:2*crb1)=0.1*select(i2*crb1:2*crb1)+0.9*select(i+12*crb1:2*crb1);
?????%cross(i+12*crb1:2*crb1)=0.1*select(i2*crb1:2*crb1)+0.9*select(i+12*crb1:2*crb1);
?????%cross(i3*crb1:3*crb1)=0.1*select(i3*crb1:3*crb1)+0.9*select(i+13*crb1:3*crb1);
?????%cross(i+13*crb1:3*crb1)=0.1*select(i3*crb1:3*crb1)+0.9*select(i+13*crb1:3*crb1);
?????%cross(i4*crb1:4*crb1)=0.1*select(i4*crb1:4*crb1)+0.9*select(i+14*crb1:4*crb1);
?????%cross(i+14*crb1:
評(píng)論
共有 條評(píng)論