yixiu4199 发表于 2007-5-18 23:46

这个程序怎么运行?

利用遗传算法计算函数,f(x)= x+10*sin(5x)+7*cos(4x)的最大值,其中x∈。[分析]选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为0.95。变异概率为0.08。采用GOAT的程序编写如下:(1)编写目标函数文件opt.m,文件存放在工作目录下。function=opt(sol,options);x=sol(1);eval=x+10*sin(5*x)+7*cos(4*x);(2)生成初始种群,大小为10。initPop=inifializega(10,, ‘opt’ );(3)调用遗传算法主函数ga.m程序。=ga(,‘opt’,[],initPop,‘maxGenTerm ‘,25,‘normGeomSelect ‘,,[‘arithXover’ ],,’nonUnifMutation’ ,);经过25次遗传迭代,运算结果的最优解为:X =7.8566;fx=24.8554.
上面的是我在资料中看到的,但是我不知道以上的程序是怎么运行算出X和fx,有谁知道的可以帮帮我解决困惑吗。

pengweicai 发表于 2007-5-19 08:23

再编一个主程序调用opt函数就可以了。

lxq 发表于 2007-5-19 10:00

如何算出X 和fx 是在自己定义的ga函数中

其算法就是根据遗传算法的计算过程得到的最大值.

pengweicai 发表于 2007-5-19 10:31

函数的输出参数就是了
sol    --对应X
,eva1   ----fx

yixiu4199 发表于 2007-5-19 15:05

原帖由 pengweicai 于 2007-5-19 08:23 发表 http://www.chinavib.com/forum/images/common/back.gif
再编一个主程序调用opt函数就可以了。

我是菜鸟也。这个怎么编??
是在
=ga(, ‘opt’ ,[],initPop,‘maxGenTerm ‘,25,‘normGeomSelect ‘,,[‘arithXover’ ],,’nonUnifMutation’ ,);之后加什么呢?
页: [1]
查看完整版本: 这个程序怎么运行?