Using genetic algorithm to minimize standard deviation

4 vues (au cours des 30 derniers jours)
Stephan Freitag
Stephan Freitag le 12 Mar 2021
Commenté : Stephan Freitag le 12 Mar 2021
Hello,
I am trying to optimize a function and its standard deviation, when the input variables are changing a little bit (Monte Carlo).
function out = fitnessfcn(Y)
disp('MonteCarlo')
X_MCS = MonteCarlo(Y);
t = @(x) x(1)^X(2)-sin(x(2)); %just an example function
temp = zeros(length(X_MCS),1);
for i=1:length(X_MCS)
temp(i,1) = t(X_MCS(i,:));
end
out = [std(temp), t(Y)];
end
[solution,Fval] = gamultiobj(@fitnessfcn,n,A,b,[],[],lb,ub,@(X)nonlin(X),optsmulti);
So I thought now in every generation the whole population runs through my Monte Carlo simulation. PopulationSize is 50, so I should see 50 times my disp 'Monte Carlo' in the command window before a new generations starts, but it looks like this:
(5x) MonteCarlo
Generation Func-count Pareto distance Pareto spread
1 51 1 1
(2x) MonteCarlo
2 101 0 1
(13x) MonteCarlo
3 151 0 1
How can I achieve that the whole population runs through my fitnessfcn, not just some random parts?

Réponse acceptée

Matt J
Matt J le 12 Mar 2021
The fitnesfcn will be called only on those population members that satisfy your constraints. That is undoubtedly why you are seeing only a subset of your population processed. But isn't that what you want?
  1 commentaire
Stephan Freitag
Stephan Freitag le 12 Mar 2021
I didn't think about this, you are so right, thank you!!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Multiobjective Optimization dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by