马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
利用遗传算法计算函数,f(x)= x+10*sin(5x)+7*cos(4x) 的最大值,其中x∈[0 9]。[分析]选择二进制编码, 种群中的个体数目为10,二进制编码长度为20,交叉概率为 0.95。变异概率为0.08。采用GOAT的程序编写如下: (1)编写目标函数文件opt.m,文件存放在工作目录下。 function[sol,eva1]=opt(sol,options); eval=x+10*sin(5*x)+7*cos(4*x); initPop=inifializega(10,[0 9], ‘opt’ ); [x endPop bPoptrace]=ga([0 9],‘opt’,[], initPop[1e-6 1 1],‘maxGenTerm ‘,25,‘normGeomSelect ‘,[0.08],[‘arithXover’ ],[2],’nonUnifMutation’ , 经过25次遗传迭代,运算结果的最优解为:X =7.8566;fx=24.8554. 上面的是我在资料中看到的,但是我不知道以上的程序是怎么运行算出X和fx,有谁知道的可以帮帮我解决困惑吗。 |