错误在遗传算法工具箱

1视图(30天)
b
b 2012年5月11日
我在一次又一次在遗传算法工具箱(GUI)。当我运行算法,错误发生;
优化运行。错误运行优化。太多的输入参数。
为什么出现这种情况呢?
谢谢……

接受的答案

肖恩·德Wolski
肖恩·德Wolski 2012年5月11日
你用的什么功能?你叫他们是什么代码?
如果你运行:
dbstop如果错误
停止调试器时遇到错误,然后运行代码当你正在做的事情。它会停止debugge罗恩的这条线,你会看到你喂养比它可以输入任何你要求。
2的评论
肖恩·德Wolski
肖恩·德Wolski 2012年5月11日
不。我不知道你的输入是什么,我还没有看到你'veollowed调试步骤我上面提到的。以下步骤可能会使这个简单的解决。

登录置评。

答案(1)

b
b 2012年5月11日
我用(GUI) Rastrigin函数作为目标函数有四个变量和实际值。
我认为(现在我意识到)变异遗传算法的一部分,我有一些错误。我的变异函数是:虚情假意NewChrom = mutbga (initial1、FieldDR MutOpt);
如果输入参数个数< 2、错误(没有足够的输入参数的);结束
[宁德,据Nvar] =大小(initial1);
(mF、nF) = (FieldDR)大小;
如果mF ~ = 2,错误(“FieldDR必须一个矩阵2行”);结束
如果据Nvar ~ = nF,错误(“FieldDR和OldChrom不同意”);结束
如果输入参数个数< 3,MutR = 1 /据Nvar;MutShrink = 1;
elseifisempty (MutOpt) MutR = 1 /据Nvar;MutShrink = 1;
elseifisnan (MutOpt) MutR = 1 /据Nvar;MutShrink = 1;
其他的
如果长度(MutOpt) = = 1, MutR = MutOpt;MutShrink = 1;
elseif长度(MutOpt) = = 2, MutR = MutOpt (1);MutShrink = MutOpt (2);
其他的、错误(“MutOpt太多参数”);结束
结束
如果isempty (MutR) MutR = 1 /据Nvar;
elseifisnan (MutR) MutR = 1 /据Nvar;
elseif长度(MutR) ~ = 1,错误(对突变速率的参数必须是一个标量的);
elseif(MutR < 0 | | MutR > 1),错误(对突变速率的参数必须是一个标量在[0,1]);结束
如果isempty (MutShrink), MutShrink = 1;
elseifisnan (MutShrink) MutShrink = 1;
elseif长度(MutShrink) ~ = 1,错误(萎缩的参数变异范围必须是一个标量的);
elseif(MutShrink < 0 | | MutShrink > 1),
错误(减少突变的参数必须是一个标量范围在[0,1]);
结束
FieldDR = [0 0 0 0; 20 25 5 5];
范围=代表(0.5 * MutShrink * (FieldDR (2:) -FieldDR(1,:)),[宁德1]);
% 0和1的突变与否这个变量,在范围内
范围=范围。*(兰德(宁德,据Nvar) < MutR);
范围=范围。*(1 - 2 *(兰德(宁德,据Nvar) < 0.5));
ACCUR = 20;
Vect = 2。^ (- (0: (ACCUR-1)));
δ=(兰德(宁德ACCUR) < 1 / ACCUR) * Vect;
δ=代表(δ,[1据Nvar]);
NewChrom = initial1 +范围。*δ;
NewChrom = max(代表(FieldDR(1:),[宁德1]),NewChrom);
NewChrom = min(代表(FieldDR(2:),[宁德1]),NewChrom);

类别

找到更多的在遗传算法帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!