ga.m

来自「自编遗传算法程序」· M 代码 · 共 26 行

M
26
字号
clear
m=10; %群体规模
s=[-pi,pi]; %搜索空间
c=1; %估计的函数最大值
G=Code(m,24);% 产生初始群体
e=0.0001;
i=1;

while(1)
    B=GrayToBit(G); %将格雷码转换成二进制码
    x=DeCode(B,s); %解码, 将二进制码转换成实值
    Fit=1./(1+fun(x).^2); %计算适应度值
    [FM(i),MI]=max(Fit);
    if(abs(fun(x(MI)))<e),break;end
    In=OpSelect(Fit,4); %选择
    G=G(In,:); %复制
    [G(1:m/2,:),G(m/2+1:end,:)]=UCross(G(1:m/2,:),G(m/2+1:end,:),0.5); %交叉
    G=SimpleMutation(G,0.1);% 变异
    i=i+1;
end
plot(FM);

x(MI,:)
fun(x(MI,:))

⌨️ 快捷键说明

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