声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6409|回复: 26

[编程技巧] 请教一个关于遗传算法的问题

[复制链接]
发表于 2006-5-19 17:49 | 显示全部楼层 |阅读模式

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

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

x
小弟在参看实例(http://www.itcnw.com/Article/Net/ordertools/200511/77490.html)中,照着例题输入到这句话时,initPop=initializega(10,[0 9],'fitness'),出现警告:??? Undefined command/function 'initializega'. 是不是说工具箱里没有这个函数呀??
我好像已经安装了遗传算法工具箱了,我用which ga.m命令能找到 ga.m的路径。
有哪位大侠能指点一下呢?
我是先编写目标函数
function[sol,eval]=fitness(sol,options)
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
%把上述函数存储为fitness.m文件并放在工作目录下
然后在matlab命令窗口下输入:
initPop=initializega(10,[0 9],'fitness');
一回车就出现:??? Undefined command/function 'initializega'
什么意思呀?initializega函数难道不是工具箱自带的,系统不认识这个内部函数呀!!
回复
分享到:

使用道具 举报

发表于 2006-5-19 18:02 | 显示全部楼层

回复:(apaul193)请教一个关于遗传算法的问题

which initializega看看有没有不就行了?
 楼主| 发表于 2006-5-20 10:22 | 显示全部楼层
谢谢happy!的确是只是少了这个m文件!
[此贴子已经被作者于2006-5-20 10:56:14编辑过]

发表于 2006-5-20 19:52 | 显示全部楼层

回复:(apaul193)请教一个关于遗传算法的问题

可是运行ga函数后
??? Error using ==> ==
Matrix dimensions must agree.

Error in ==> F:\安装程序\work\GAOT\ga.m
On line 87 ==> if opts==[]

Error in ==> F:\安装程序\work\Untitled3.m
On line 2 ==> [x,endPop,bPop,traceInfo]=ga([0 9],'fitness',[],intpop,[1e-6 1 1],...
这是怎么回事呢?就是照例题的写法做的啊?
希望指点一下下!
 楼主| 发表于 2006-5-20 22:08 | 显示全部楼层

f

楼上的,你可能是在复制程序的时候把矩阵的维数搞错了,有可能是写向量的时候忘了空格或者逗号了。
我在算这个例题的时候最后是出现了:
??? Error using ==> ga
Too many input arguments.
我个人觉得是不是
[x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
[0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3])
这个函数参数太多了?
我查看了matlab7.0里面的help里的内容。那里面说明的关于ga.m函数的格式应该是为:
x = ga(fitnessfun, nvars)
x = ga(fitnessfun, nvars, options)
x = ga(problem)
[x, fval] = ga(...)
[x, fval, reason] = ga(...)
[x, fval, reason, output] = ga(...)
[x, fval, reason, output, population] = ga(...)
[x, fval, reason, output, population, scores] = ga(...)
里面没有这么多参数呀!!
x = ga(fitnessfun, nvars) applies the genetic algorithm to an optimization problem, where fitnessfun is the objective function to minimize and nvars is the length of the solution vector x, the best individual found.
希望有高人进来看看呀!!
发表于 2006-5-21 00:12 | 显示全部楼层
呵呵 楼上的
我是因为7.0版本中自带的工具箱没有办法设置变量的范围所以才用的这个 呵呵
matlab7.0中自带的工具箱函数挺简单的
就象你说的 不用这么多参数 呵呵
发表于 2006-5-21 00:30 | 显示全部楼层

回复:(apaul193)请教一个关于遗传算法的问题

呵呵 还有 你可以研究一下7.0怎么设置变量范围?
我不知道该怎么设置
gatool 里只有 initial range
 楼主| 发表于 2006-5-21 09:32 | 显示全部楼层
因为我也是刚刚学这种遗传算法,而且也是急用,所以我还是下载一个有多参数的遗传工具箱算了。如果谁有现成的多参数的遗传工具箱不妨弄一个在这供下载。
发表于 2006-5-21 12:16 | 显示全部楼层

回复:(apaul193)请教一个关于遗传算法的问题

两个遗传工具箱 我用的是gaot
另外一个看不懂有什么作用
你不妨试一下
我也是做毕设急用 可是总是出问题还没有解决
 楼主| 发表于 2006-5-21 15:46 | 显示全部楼层
我用了你的gaot.rar,算那个例子的确也出现了
??? Error using ==> unknown
Matrix dimensions must agree.

Error in ==> ga at 87
if opts==[]
这样的警告!会不会是这个源程序也有问题!
我用这个函数做别的例题的时候也出现了同样的警告,看来要请高手了
发表于 2006-5-21 16:19 | 显示全部楼层

回复:(apaul193)请教一个关于遗传算法的问题

应该就是源程序问题
楼主讨论一下
QQ:94587561
发表于 2006-5-22 12:01 | 显示全部楼层

回复:(happy)回复:(apaul193)请教一个关于遗传算...

下了它装到哪个子文件中呀,谢了
发表于 2006-5-22 12:06 | 显示全部楼层

回复:(zlj)回复:(apaul193)请教一个关于遗传算法...

以前从论坛上下载的两个遗传工具箱 我用的是gaot
另外一个看不懂有什么作用
你不妨试一下
我也是做毕设急用 可是总是出问题还没有解决

下了它装到哪个子文件中,我是做免疫遗传算法的,输入老是有
function pop =initialize(popsizi,genelen)
??? function pop =initialize(popsizi,genelen)
|
Error: Function definitions are not permitted at the prompt or in scripts.
搞不懂,谁帮解释下更好,多谢拉
发表于 2006-5-22 15:06 | 显示全部楼层

回复:(apaul193)请教一个关于遗传算法的问题

如果你用的是7.0就不要装论坛上的遗传算法工具箱了,有部分函数冲突的

如果是6.5安装方法参考
http://forum.vibunion.com/forum/viewthread.php?tid=492
发表于 2006-5-22 19:05 | 显示全部楼层
谢谢教授,我的是7.0的,但不装工具箱的话,我在运行>> which initializega
'initializega' not found时找不到initializega,请问一下,如果安装initializega.m,它的装入路径,
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-21 22:21 , Processed in 0.058564 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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