声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1665|回复: 4

[编程技巧] 这个程序怎么运行?

[复制链接]
发表于 2007-5-18 23:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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);
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
(2)生成初始种群,大小为10。
initPop=inifializega(10,[0 9], opt );
(3)调用遗传算法主函数ga.m程序。
[x endPop bPoptrace]=ga([0 9],opt,[],
initPop[1e-6 1 1],maxGenTerm ,25,normGeomSelect ,[0.08],[arithXover ],[2],nonUnifMutation
[2 25 3]);
经过25次遗传迭代,运算结果的最优解为:X =7.8566;fx=24.8554.

上面的是我在资料中看到的,但是我不知道以上的程序是怎么运行算出X和fx,有谁知道的可以帮帮我解决困惑吗。
回复
分享到:

使用道具 举报

发表于 2007-5-19 08:23 | 显示全部楼层
再编一个主程序调用opt函数就可以了。
发表于 2007-5-19 10:00 | 显示全部楼层
如何算出X 和fx 是在自己定义的ga函数中

其算法就是根据遗传算法的计算过程得到的最大值.
发表于 2007-5-19 10:31 | 显示全部楼层
函数的输出参数就是了
sol    --对应X
,eva1   ----fx
 楼主| 发表于 2007-5-19 15:05 | 显示全部楼层


我是菜鸟也。这个怎么编??
是在
[x endPop bPoptrace]=ga([0 9], opt ,[],
initPop[1e-6 1 1],maxGenTerm ,25,normGeomSelect ,[0.08],[arithXover ],[2],nonUnifMutation
[2 25 3]);
之后加什么呢?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 09:23 , Processed in 0.062847 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表