遗传算法工具箱二进制编码和浮点数编码的问题
了解到遗传算法有二进制编码和浮点数编码这两种编码方法,一直在探索如何在遗传算法工具箱中实现这两种编码。在网上下了一个工具箱函数,是雷英杰那本书里面用到的,创建种群的函数有crtbase,crtbp和crtrp,如果我没有理解错的话,crtbp应该就是指二进制编码,crtrp就是指浮点数编码,但是我用GUI工具(因本人编程基础很弱,所以用GUI工具方便一些)却无法顺利运行。适应度函数我确定没有问题(9个自变量),用crtrp这个函数创建种群的时候,出错代码是:
Error: File: C:\Program Files\MATLAB71\toolbox\genetic\crtrp.M Line: 34 Column: 19
"nargin" previously appeared to be used as a function or command, conflicting with its use here as the name of a variable.
A possible cause of this error is that you forgot to initialize the
variable, or you have initialized it implicitly using load or eval.
我按着提示,把crtrp里面的nargin改了改,没用,我又把它给改回来了,再运行的时候出错提示变成:
GA running.
Error using ==> crtrp
Too many input arguments.
适应度函数我用默认设置运行过,没有问题(1个自变量),然后用crtbp创建种群的时候,出错代码是:
GA running.
Function 'mtimes' is not defined for values of class 'struct'.
我找了一下crtbp文件中并没有mtimes和struct这两个东西,这两个东西的路径分别是
which mtimes
built-in (C:\Program Files\MATLAB71\toolbox\matlab\ops\@logical\mtimes)% logical method
>> which struct
built-in (C:\Program Files\MATLAB71\toolbox\matlab\datatypes\struct)
究竟是什么错误呢?百思不得其解啊,请各位大侠指教!谢谢!
附上我用的GUI工具给大家以直观的理解,请指教! 补充说明一下,我用的是MATLAB7.1 怎么没有人回答啊,快帮帮忙啊,谢谢啦! 自己编啦,不要依赖工具箱 固定变量varargin和varargout可以用来输入任意个参数给函数,也能够返回任意多个输出。函数varargin和varargout把实际的函数调用时传递的参数值封装成一个元胞数组。
不知道你的nargin是否应该为varargin? huhuanzhuo 发表于 2010-5-9 10:02 static/image/common/back.gif
自己编啦,不要依赖工具箱
求教,我自己编写了一个程序,但是只能用来求解无约束的问题,在求解有约束问题时,用到了那个罚函数法来求解有约束问题,但是总是得不到收敛解,也就是罚因子一直在变大,一直不收敛。请问这是为什么呢? 求解有约束问题时,问题的关键是如何产生符合约束条件的解,以及遗传过程中把非法解改成合法解,罚函数个人认为效果很不好!
页:
[1]