aimfunc.m

来自「量子遗传算法对标准函数的优化」· M 代码 · 共 34 行

M
34
字号
function ret=Aimfun(x)
% shubert function 

global sizepop  lenchrom  
 
bound=[-10 10;-10 10];   % 函数自变量的范围

% 将binary数组转化成十进制数组
n=1;
for i=1:length(lenchrom)
    data(i)=0;
    for j=lenchrom(i)-1:-1:0
        data(i)=data(i)+x(n).*2.^j;
        n=n+1;    
    end
end
data=bound(:,1)'+data./(2.^lenchrom-1).*(bound(:,2)-bound(:,1))';
        
% 计算适应度
temp1=0;
temp2=0;
for j=1:5
    temp1=temp1+j*cos((j+1)*data(1)+j);
    temp2=temp2+j*cos((j+1)*data(2)+j);
end
fitness=temp1*temp2;    % -10<=xi<=10, i=1,2;  

% 对适应度进行变换,使其越大越好
if fitness>=0
    fitness=1;
else fitness=1-0.05*fitness;
end
    
ret=fitness; 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?