Can anybody help me to find the global minima?

9 views (last 30 days)
I am struggling with finding the global minimum of a function with 12 variables and two objectives. I have used fminmax and gamultiobj, the latest gives better results. When I optimize the function manually I get better numbers than when using gamultiobj. Thus I would like to find a way to improve the code. See below: the options and function I am using. When I do the optimization manually, the best results are obtained with this vector. X0=[0 0 0 0.1 .65 .7 .5 .7 .7 0 .4 0];
Can anybody help me in improving my algorithm and find a global minima?
Thanks,
Vittorio
options = optimoptions('ga',...
,'MaxStallGenerations',15000,'MaxGenerations',15000,'HybridFcn','fminunc');
cash_opt_mtx=gamultiobj(@NEXT_alpha,length(cash_mtx),[],[],[],[],zeros(length(cash_mtx),1),ones(length(cash_mtx),1),options);
function objective_next_alpha=NEXT_alpha(X_variables)
load original_mtx.mat
coeff=[];
for i0=1:length(X_variables)
coeff=[coeff X_variables(i0).*ones(length(dY0_MTX),1)];
end
dY00_MTX=prod((1-coeff).*dY0_MTX+coeff,2);
Y00_MTX=cumprod(dY00_MTX);
%X_variables
objective_next_alpha(1)=1/Y00_MTX(end);
%Y00_MTX(end)
objective_next_alpha(2)=maxdrawdown(Y00_MTX);
if objective_next_alpha(2)>0.15
objective_next_alpha(1)=inf;
end
end
  4 Comments
Walter Roberson
Walter Roberson on 9 May 2021
You need to define the tradeoff equation. For example is it better for one of the two to be its minimum and the other to be 3 above its minimum (total error 3, sum of squares 9) or for both to be 2 above their minimum (total error 4, sum of squares 4)?
Vittorio
Vittorio on 9 May 2021
It is better now, thank you. I have tried most of the algos available (particleswarm being the best) but still the manual optimization gives better results than the one does using all these optimizers.
Puzzling...

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!