Genetic Algorithm - Vectorized Mode - Reg

조회 수: 1 (최근 30일)
Kallam Haranadha Reddy
Kallam Haranadha Reddy 2018년 12월 29일
편집: Stephen23 2018년 12월 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.

답변 (2개)

Walter Roberson
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
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
madhan ravi 2018년 12월 30일
Thank you!

댓글을 달려면 로그인하십시오.


madhan ravi
madhan ravi 2018년 12월 29일
Your function requires only two inputs whereas you have stuffed in 3 .
  댓글 수: 4
Kallam Haranadha Reddy
Kallam Haranadha Reddy 2018년 12월 30일
i combined the two input arguments to the fitness function into a single argument and ran the GA. but the same error message too many input arguments in the fitness function is coming.
Stephen23
Stephen23 2018년 12월 30일
편집: Stephen23 2018년 12월 30일
"Your function requires only two inputs whereas you have stuffed in 3 ."
There are actually 137 inputs to InvClassifyGAFitnessFunc:
Three inputs is probably the correct number, judging by this earlier thread:

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Genetic Algorithm에 대해 자세히 알아보기

제품


릴리스

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by