![]() |
遗传算法求极值
Griewangk函数的Matlab代码:
function [eval]=griewangk(sol) numv=size(sol,2); x=sol(1:numv); multi=1; for i=1:numv multi=multi*cos(x(i)/sqrt(i)); end eval=sun(x.^2/4000)-multi+1; 计算Griewangk函数适值的Matlab代码: function [sol,eval]=griewangkmin(sol,options) numv=size(sol,2)-1; x=sol(1:numv); eval=griewangk(x); eval=-eval; 遗传算法求解的Matlab代码: %维数n=6 %设置参数边界 bounds=ones(6,1)*[-512 512]; %遗传算法优化 [p,endPop,bestSols,trace]=ga(bounds,'griewangkmin'); %性能跟踪 plot(trace(:,1),trace(:,3),'b-') hold on plot(trace(:,1),trace(:,2),'r-') xlabel('Generation'); ylabel('Fittness'); legend('解的变化','种群平均值的变化'); 运行时提示: ??? Error using ==> ga at 238 Fitness function must be a function handle. 请高手帮忙看看是哪里出了问题,如何解决? 谢谢! |
所有时间均为北京时间。现在的时间是 11:33。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.