GA calculates wrong penalty
Afficher commentaires plus anciens
I have a GA problem with the optimization file Lowest. I set the initial population using a set of parameters X:
optim.options.InitialPopulationMatrix = X;
I check the result:
Lowest(X,[5 15], 1)
or indeed
Lowest(optim.options.InitialPopulationMatrix,[5 15], 1)
both yield
ans = 0.16.
I now define and run the following:
fopt = @(x)Lowest(x,[5 15],1);
[x,fval]=ga(fopt,optim.nvars,optim.Aineq,optim.bineq,[],[],optim.lb,optim.ub,[],optim.intcon,optim.options);
With optim.options.Display = 'iter'; The first values the GA run generates for me are always much higher than 0.16.
Why??!?
Any help greatly appreciated.
Réponse acceptée
Plus de réponses (2)
Alan Weiss
le 26 Mar 2019
0 votes
You are probably seeing the result of the integer-constrained solver. The fitness function is modified by a penalty term. It is possible that your initial population matrix is not integer-feasible.
Also, since you seem to like making a struct for your problem, why not go all the way and use a real problem structure?
Alan Weiss
MATLAB mathematical toolbox documentation
Tom Brenner
le 26 Mar 2019
Modifié(e) : Tom Brenner
le 26 Mar 2019
0 votes
Catégories
En savoir plus sur Surrogate Optimization dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!