Obtaining a matrix of all the values the optimizer tried

2 次查看(过去 30 天)
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);

采纳的回答

Matt J
Matt J 2018-9-25
You would have to write an OutputFcn to do this.
  8 个评论
Spyros Polychronopoulos
That's it! Thank you very much. I will try to do it with simulannealbnd now.
Spyros Polychronopoulos
编辑:Spyros Polychronopoulos 2018-9-26
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Particle Swarm 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by