Genetic Algorithm - Vectorized Mode - Reg
1 回表示 (過去 30 日間)
古いコメントを表示
'Position' is a (68,6) array of doubles representing the population of Genetic algorithm. 'classGA1 ' is a (68,1) cell array of the type of population class ( inventory class A,B or C) . 'ClassDM1 ' is a (68,1) cell array of the inventory class(A,B, or C)given by the decision maker (materials manager).
[Fitness] = InvClassifyGAFitnessFunc(Position,classGA1,ClassDM1);
is the Fitness is a (68,1) double array determining the fitness of population.
I want to operate the GA in vectorized mode.
[Fitness] = @(Position)InvClassifyGAFitnessFunc(Position(':',1:6),classGA1{':',1},ClassDM1{':',1});
% vff = @(Position) InvClassifyGAFitnessFunc(Position(':',1:6), classGA1{':'},CDM1{':'});
A=[0,0,0,0,-1,1];
b=[0];
Aeq=[1,1,1,1,0,0];
beq=[1];
lb=[0,0,0,0,0,0];
ub=[1,1,1,1,1,1];
options= gaoptimset('PlotFcn',@gaplotbestf,'Vectorized','on');
[x,fval]=ga(Fitness,6,A,b,Aeq,beq,lb,ub,[],options);
The genetic algorithm is giving the error message
Error using InvClassifyGAFitnessFunc
Too many input arguments.
How to run my genetic algorithm in vectorized mode.
0 件のコメント
回答 (2 件)
Walter Roberson
2018 年 12 月 30 日
'classGA1 ' is a (68,1) cell array of the type of population class
When that is the case, then
classGA1{':',1}
expands into 68 different arguments, equivalent to classGA1{:}
4 件のコメント
Stephen23
2018 年 12 月 30 日
編集済み: Stephen23
2018 年 12 月 30 日
@madhan ravi: indexing using parentheses, curly braces, etc, is just a convenience notation for subsref. You can see examples in its help:
And also some threads on this forum, showing how this is useful:
This is also why those tutors who give assignments which boldly state "inbuilt functions cannot be used" really are making life very hard for their pupils!
madhan ravi
2018 年 12 月 29 日
Your function requires only two inputs whereas you have stuffed in 3 .
参考
カテゴリ
Help Center および File Exchange で Genetic Algorithm についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!