Effacer les filtres
Effacer les filtres

How do you fix error when run genetic algorithm in matlab?

5 vues (au cours des 30 derniers jours)
KHANH NGUYEN
KHANH NGUYEN le 14 Mai 2015
Commenté : KHANH NGUYEN le 21 Mai 2015
Hi everyone, I have used GA in matlab to solve my problem. I created a constraint function and fitness function for this problem.
When I ran the algorithm, It was error and didn't run.
Can you help me fix it?
I show you in below.
Undefined function 'fameanalysis' for input arguments of type 'double'.
Error in createAnonymousFcn>@(x)fcn(x,FcnArgs{:}) (line 11)
fcn_handle = @(x) fcn(x,FcnArgs{:});
Error in constrValidate (line 23)
[cineq,ceq] = nonlcon(Iterate.x');
Error in gacommon (line 136)
[LinearConstr, Iterate,nineqcstr,neqcstr,ncstr] = constrValidate(NonconFcn, ...
Error in ga (line 327)
[x,fval,exitFlag,output,population,scores,FitnessFcn,nvars,Aineq,bineq,Aeq,beq,lb,ub, ...
Error in threebayfifteenthstoryframeoptimization (line 58)
[xbest, fbest, exitflag] = ga(@framecost, 34, [], [], [], [], ...
Caused by:
Failure in initial user-supplied nonlinear constraint function evaluation.

Réponses (2)

Walter Roberson
Walter Roberson le 14 Mai 2015
We need to see the complete line of your call to ga()
It appears that in the 9th parameter, you passed in the string 'fameanalysis', and MATLAB is then trying to find a function named 'fameanalysis' to act as a constraint function.
Might I suggest that what you wanted was 'frameanalysis', that you were missing the 'r' ?

KHANH NGUYEN
KHANH NGUYEN le 15 Mai 2015
Modifié(e) : Walter Roberson le 15 Mai 2015
Hi,
Thanks for your support.
I can talk with you that It's not error!
I show you how I call to ga:
opts = gaoptimset(...
'PopulationSize', 300, ...
'Generations', 300, ...
'EliteCount', [], ...
'TolFun', 1e-8, ...
'PlotFcns', @gaplotbestf);
%-----Call |ga| to Solve the Problem-------------------------------------
rng(0, 'twister');
[xbest, fbest, exitflag] = ga(@framecost, 34, [], [], [], [], ...
lb, ub, @fameanalysis,[], opts);
display(xbest);
fprintf('\nCost function returned by ga = %g\n', fbest);*
Could you explain me about something?
% InitialPenalty - Initial value of penalty parameter
% [ positive scalar | {10} ]
% PenaltyFactor - Penalty update parameter
% [ positive scalar | {100} ]
% Vectorized - Objective function is vectorized and it can evaluate
% more than one point in one call
% [ 'on' | {'off'} ]
% UseParallel - Use PARFOR to evaluate objective and nonlinear
% constraint functions.
% [ logical scalar | true | {false} ]
Thank you so much
  3 commentaires
Walter Roberson
Walter Roberson le 15 Mai 2015
What is it you would like to know about those options?
KHANH NGUYEN
KHANH NGUYEN le 21 Mai 2015
Hi Walter,
Something's my confuse. It's another approach that I'm trying.
I still use the genetic algorithm not constraint. I have a bit problem with it. If you can help, I'll send that problem to you.
Thank for your supporting.
Thank you so much

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by