資源簡介
用遺傳算法對f(x,y)=x^2+y^2進(jìn)行測試,其中x在[-5,5]內(nèi)。得出測試函數(shù)的平均值和最優(yōu)值。
代碼片段和文件信息
close?all;
clc;
%?遺傳算法參數(shù)設(shè)定和初始化
M=50;?%?種群大小
T=1000;?%?遺傳運算得終止進(jìn)化代數(shù)
Length=16;?%?二進(jìn)制編碼長度
pc=0.9;?%?交叉概率
pm=0.04;?%?變異概率
Max=2048;?%?輸入值的取值上限
Min=-2048;?%?輸入值的取值下限
G=round(rand(MLength*2));?%?初始化數(shù)值使其成為布爾型
NG=zeros(MLength*2);
?
for?k=1:1:T
????T(k)=k;
????for?s=1:1:M
????????N=G(s:);
????????y1=0;
????????y2=0;
????????
????????N1=N(1:Length);?%?對x1進(jìn)行解碼
????????for?i=1:Length
????????????y1=y1+N1(i)*2^(i-1);
????????end
????????x1=(Max-Min)*y1/(2^Length-1)+Min;
????????x1_G(k)=x1;?%?為了便于最后圖形輸出,而引進(jìn)的類似指針型變量
????????
????????N2=N(Length+1:2*Length);?%?對x2進(jìn)行解碼
????????for?i=1:Length
????????????y2=y2+N2(i)*2^(i-1);
????????end
????????x2=(Max-Min)*y2/(2^Length-1)+Min;
????????x2_G(k)=x2;?%?為了便于最后圖形輸出,而引進(jìn)的類似指針型變量
????????
????????F(s)=-[x1.^2+x2.^2];?%?目標(biāo)函數(shù)表達(dá)
評論
共有 條評論