資源簡介
用遺傳算法對f(x,y)=x^2+y^2進行測試,其中x在[-5,5]內。得出測試函數的平均值和最優值。
代碼片段和文件信息
close?all;
clc;
%?遺傳算法參數設定和初始化
M=50;?%?種群大小
T=1000;?%?遺傳運算得終止進化代數
Length=16;?%?二進制編碼長度
pc=0.9;?%?交叉概率
pm=0.04;?%?變異概率
Max=2048;?%?輸入值的取值上限
Min=-2048;?%?輸入值的取值下限
G=round(rand(MLength*2));?%?初始化數值使其成為布爾型
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進行解碼
????????for?i=1:Length
????????????y1=y1+N1(i)*2^(i-1);
????????end
????????x1=(Max-Min)*y1/(2^Length-1)+Min;
????????x1_G(k)=x1;?%?為了便于最后圖形輸出,而引進的類似指針型變量
????????
????????N2=N(Length+1:2*Length);?%?對x2進行解碼
????????for?i=1:Length
????????????y2=y2+N2(i)*2^(i-1);
????????end
????????x2=(Max-Min)*y2/(2^Length-1)+Min;
????????x2_G(k)=x2;?%?為了便于最后圖形輸出,而引進的類似指針型變量
????????
????????F(s)=-[x1.^2+x2.^2];?%?目標函數表達
- 上一篇:BP神經網絡函數模擬
- 下一篇:基于Simuli
nk 的脈沖多普勒雷達系統建模仿真
評論
共有 條評論