傻蛋天天 发表于 2012-11-7 21:10

求助:关于遗传算法的问题!!!

大家请看一下这个程序:
clear ;clf
popsize=20; %群体大小
chromlength=10; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.001; %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体
for i=1:20 %20为迭代次数
=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
=selection(pop,fitvalue); %复制
=crossover(pop,pc); %交叉
=mutation(pop,pc); %变异
=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值
y(i)=max(bestfit);
n(i)=i;
pop5=bestindividual;
x(i)=decodechrom(pop5,1,chromlength)*10/1023;
pop=newpop;
end
fplot('10*sin(5*x)+7*cos(4*x)',)
hold on
plot(x,y,'r*')
hold off
%%%%%%%%%%%%
这是遗传算法的主程序。我想问的是:在进行复制、交叉、变异处理时,为什么不代入新的群体矩阵newpop,而使用旧的pop呢?如果按照原程序,那么复制、交叉处理岂不是没有了任何意义?
当我将pop改为newpop时,程序编译时就会出现错误!!!
真搞不懂这到底是为什么,希望各位大侠不吝指教,谢谢!!!

页: [1]
查看完整版本: 求助:关于遗传算法的问题!!!