zz_main.asv

来自「遗传算法。此程序给出了遗传算法来求解函数最值的一个例子。」· ASV 代码 · 共 33 行

ASV
33
字号
% 2.8 主程序 
%遗传算法主程序 
%Name:genmain05.m 
clear 
clf 
popsize=20; %群体大小 
chromlength=10; %字符串长度(个体长度) 
pc=0.6; %交叉概率 
pm=0.08; %变异概率 

pop=initpop(popsize,chromlength); %随机产生初始群体 
for i=1:20 %20为迭代次数 
[objvalue]=calobjvalue(pop); %计算目标函数 
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度 
[newpop]=selection(pop,fitvalue); %复制 
[newpop]=crossover(pop,pc); %交叉 
[newpop]=mutation(pop,pc); %变异 
[bestindividual,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值 
y(i)=max(bestfit); 
n(i)=i; 
pop5=bestindividual; 
x(i)=decodechrom(pop5,1,chromlength)*10/1023; 
pop=newpop; 
end 

fplot('x+10*sin(5*x)+7*cos(4*x)',[0 9]) %所要计算的函数,以及自变量的范围
hold on 
plot(x,y,'r*') 
hold off 

[z index]=max(y); %计算最大值及其位置 
x5=x(index)%计算最大值对应的x值 
y=z 

⌨️ 快捷键说明

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