📄 ga.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -