How can I save parameter values while using simulated annealing?

1 view (last 30 days)
I need to globally minimize a function of several parameters using simulated annealing in batch mode. I think this means I won't be able to view any output until after the code is finished running, which could take several hours, but I want to be able to somehow check whether the parameters are converging.
Is it possible to save the algorithm's latest guess to a file while it's running? In particular, it would be great if I could save a guess once every 1000 iterations.

Answers (2)

Chaya N
Chaya N on 18 Oct 2016
Writing values into an external file is possible but you might not be able to open the file or view progress if the file is concurrently in use by your program (this is specially true if your program is computationally intensive). An alternate way to do this is to manually print your guess values into your command window, which you could achieve by inserting a fprintf or disp command into your program at the required spot.
  1 Comment
Joseph Abadi
Joseph Abadi on 18 Oct 2016
I'm running this optimization in batch mode on an external server. Is there any way I can check what's in the command window? I was under the impression that I had to wait for the log file, which is saved only after the code stops running, to see printed output.

Sign in to comment.


Alan Weiss
Alan Weiss on 19 Oct 2016
You can write an output function that logs things every 1000 iterations. Use the assignin('base',...) command.
You might also want to use a plot function to keep track of convergence.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Community Treasure Hunt

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

Start Hunting!