sunbojun0130 发表于 2010-5-3 17:27

遗传算法工具箱使用问题

求助各位高手
我要对视频编码后的信息进行保护,保护数据的多少要通过遗传算法来搞定,现在写了初始群落和适应性函数的代码,而且也调试好了,但使用GA工具箱进行求解,可是为什么我让它运行以后总是出现Optimization running.Too many input arguments?这些实际的函数我都是通过工具箱的Option设定的啊,怎么还有问题?我应该改哪里?
(我看了看MATLAB的帮助,感觉对我的这个问题也没什么帮助)
多谢各位了哈

zuohaoyi 发表于 2010-5-8 15:44

看看目标函数里面待定参数个数与遗传算法界所设参数个数是否一致。

sunbojun0130 发表于 2010-5-9 14:51

问题备注

根据zuohaoyi老师的指导,我不知是不是这个问题导致的,具体公式见附件
实际上我在目标函数中要求Ki,j使得目标函数最小,矩阵Ki,j的维度为1*15,其中每个元素都在0~255范围内,那我的函数 = ga(ObjectiveFunction,nvars,[],[],[],[],LB,UB,ConstraintFunction)中的nvars是要设1呢还是设15呢,相应的LB和UB是要设、还是相应维度的矩阵呢

zuohaoyi 发表于 2010-5-9 15:58

兄弟,一般不直接操作 ga(ObjectiveFunction,nvars,[],[],[],[],LB,UB,ConstraintFunction)函数吧,参数都是通过遗传算法界面设置啊。遗传算法界面中的各个选项你设置的参数是什么?何不一一道来?如果nvars对应的是界面中的“number of variables"的话,那就应该设为15,因为你要优化的是Ki,j,而根据你的描述,Ki,j应该包含了15个待定参数。
其实我也是刚刚学会使用遗传算法工具箱,只能一知半解地给一些个人简介。希望对你有用。

对了,忘了说了,你要求每个元素都在0~255之间,这个对于matalab自带遗传算法工具箱来说似乎无法做到,因为他里面没有严格限制变量取值范围,即使你在“initial range"里面设置了也不行,运行的时候也会超出这个范围,不知道你的错误是不是出在这里。要严格限制元素取值范围,必须对工具箱源代码做一些修改,具体你可以上网搜索一下,我曾经搜索到过。

[ 本帖最后由 ChaChing 于 2010-5-9 20:26 编辑 ]

sunbojun0130 发表于 2010-5-10 18:28

回复 地板 zuohaoyi 的帖子

大哥 用这个ga(ObjectiveFunction,nvars,[],[],[],[],LB,UB,ConstraintFunction)函数是我参考帮助的“Constrained Minimization Using ga”的,其实我刚开始用的就是通过算法界面设置的,但是有些设置我不太明白,比如说如果我要自己设定initial population的话,Option中的population应该怎么设置,说实话我看完帮助后还是很晕
下附我的代码:
function x = my_initial_population
T = 5;      % number of temporal layers
Q = 3;      % number of quality layers
x = zeros(T,Q);   % initial population matrix x
页: [1]
查看完整版本: 遗传算法工具箱使用问题