Using genetic algorithm to minimize standard deviation
5 views (last 30 days)
Show older comments
Stephan Freitag
on 12 Mar 2021
Commented: Stephan Freitag
on 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?
0 Comments
Accepted Answer
Matt J
on 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?
More Answers (0)
See Also
Categories
Find more on Multiobjective Optimization in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!