Borrar filtros
Borrar filtros

Obtaining a matrix of all the values the optimizer tried

1 visualización (últimos 30 días)
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);

Respuesta aceptada

Matt J
Matt J el 25 de Sept. de 2018
You would have to write an OutputFcn to do this.
  8 comentarios
Spyros Polychronopoulos
Spyros Polychronopoulos el 25 de Sept. de 2018
That's it! Thank you very much. I will try to do it with simulannealbnd now.
Spyros Polychronopoulos
Spyros Polychronopoulos el 26 de Sept. de 2018
Editada: Spyros Polychronopoulos el 26 de Sept. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Particle Swarm en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by