📄 sga.m
字号:
clear
clf
popsize=50; %设置初始参数,群体大小
chromlength=5;%字符串长度(个体长度),染色体长度
pc=0.6; %设置交叉概率
pm=0.01; %设置变异概率,同理也可设置为变化的变异概率
pop=initpop(popsize,chromlength);%运行初始化函数,随机产生初始群体
x1=[];
y=[];
for i=1:20
%30为迭代次数
[objvalue]=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue);%复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pm); %变异
[bestindividual,bestfit]=best(pop,fitvalue);%求出群体中适应值最大的个体及其适应值
% y(i)=max(bestfit);
y=[y bestfit];
n(i)=i;
pop5=bestindividual;
x=1+decodechrom(pop5,1,chromlength)*11/(2^chromlength-1);
x1=[x1 x];
pop=newpop;
end
fplot('10*cos(3*x)-4*x',[1 12]);
grid on
hold on
plot(x1,y,'go')
hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -