遗传算法工具箱的编码问题(请教)
<P>目标函数代码如下:<BR>function =f553(sol,options)<BR>m(1)=sol(1);<BR>m(2)=sol(2);<BR>m(3)=sol(3);</P><P>q=;<BR>g1=51-(m(1)+3).^2+m(2).^2+m(3).^2;<BR>g2=20*sum(m+exp(-m))-120;<BR>g3=20*sum(m.*exp(-m/4))-65;</P>
<P>if((g1>=0)&(g2>=0)&(g3>=0))<BR> multi=1;<BR> for i=1:3<BR>summ=0;<BR>for j=2:4<BR> summ=summ+q(i,j).^(m(i)+1);<BR>end<BR>multi=multi*(1-(1-(1-q(i,1)).^(m(i)+1))-summ);<BR> end<BR> eval=multi;<BR>else<BR> eval=-500;<BR>end<BR>求解部分代码如下:<BR>bounds=;<BR>options=;<BR>initPop=initializega(80,bounds,'f553',[],options);<BR>=ga(bounds,'f553',[],initPop,,'maxGenTerm',100,'normGeomSelect',,['arithXover'],,'nonUnifMutation',)<BR>%=ga(bounds,'f553')<BR>为什么options里面的1设为2 运行会出错而并不会得到二进制的初始种群呢.请指教~,非常感谢!</P> <P>还有一个疑问 如果我要得到一个最优向量,向量中每一位的值为0或者1,应该在程序中怎么表示?<BR>我是把initializega子程序中的options(2)=1部分改为<BR>xZomeLength = numVars+1; %Length of string is numVar + fit<BR>pop = zeros(num,xZomeLength);%Allocate the new population<BR>pop(:,1:numVars)=(ones(num,1)*rng).*(rand(num,numVars))+...<BR> (ones(num,1)*bounds(:,1)');<BR>for i=1:1:numVars<BR> for j=1:1:num<BR> if pop(j,i)<=0.5<BR> pop(j,i)=0;<BR> else<BR> pop(j,i)=1;<BR> end<BR> end<BR>end<BR>但是不知道在ga程序中其他部分如交叉,变异等部分是不是不能保证每一位的值为0或者1.<BR>应该怎么改啊</P>
页:
[1]