|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<P>目标函数代码如下:<BR>function [sol,eval]=f553(sol,options)<BR>m(1)=sol(1);<BR>m(2)=sol(2);<BR>m(3)=sol(3);</P>
<P>q=[0.01 0.05 0.10 0.18;0.08 0.02 0.15 0.12;0.04 0.05 0.20 0.10];<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=[1 4;1 7;1 7];<BR>options=[1e-6 1];<BR>initPop=initializega(80,bounds,'f553',[],options);<BR>[p,endPop,bestSols,trace]=ga(bounds,'f553',[],initPop,[1e-6 1 1],'maxGenTerm',100,'normGeomSelect',[0.08],['arithXover'],[2],'nonUnifMutation',[2 5 3])<BR>%[p,endPop,bestSols,trace]=ga(bounds,'f553')<BR>为什么options里面的1设为2 运行会出错而并不会得到二进制的初始种群呢.请指教~,非常感谢!</P> |
|