Obtaining a matrix of all the values the optimizer tried

2 Ansichten (letzte 30 Tage)
Hi there, I have this optimizer minimizing f. The optimizer is trying various values for x variable. Would you maybe have an idea how I can obtain when the optimizer finishes a matrix with the x values the optimizer tried?
clearvars
f = @(x) x.^2;
x0=5;
x_min = -10;
x_max = 10;
TimeLimit_SA = 20;
options = optimoptions(@simulannealbnd,'TimeLimit',TimeLimit_SA);
[x_best,f_best,exitflag,output]=simulannealbnd(f,x0,x_min,x_max,options);

Akzeptierte Antwort

Matt J
Matt J am 25 Sep. 2018
You would have to write an OutputFcn to do this.
  8 Kommentare
Spyros Polychronopoulos
Spyros Polychronopoulos am 25 Sep. 2018
That's it! Thank you very much. I will try to do it with simulannealbnd now.
Spyros Polychronopoulos
Spyros Polychronopoulos am 26 Sep. 2018
Bearbeitet: Spyros Polychronopoulos am 26 Sep. 2018
I have done the same thing for simulated annealing but the history matrix comes up empty, plus the time constrain is not working. Any ideas?
main
zz = @(x) x; %objective function
z0=5; %starting value
LB=-20; %low bound
UB=20; %upper bound
TimeLimit_SA = 1; %time constrain
[x, fval, history] = sa_store(zz, z0 ,LB,UB,TimeLimit_SA);
sa_store
function [x, fval, history] = sa_store(objfun,x0,LB,UB,t_Lim)
history = [];
options = optimset('MaxTime',t_Lim,'OutputFcn', @myoutput);
[x, fval] = simulannealbnd(objfun,x0,LB,UB,options);
function stop = myoutput(x,~,state)
stop = false;
if isequal(state,'iter')
history = [history; x];
end
end
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by