Can I impose a time limit on fmincon without editing the m-file?

12 visualizzazioni (ultimi 30 giorni)
I'm trying to compare different algorithms by imposing a time limit, however one of my algorithms calls fmincon and it seems impossible to terminate this based on a timer. For everything else I've been using
t = tic
while toc(t) < time_limit
[put code loop here]
end
But for my fmincon algorithm, the required code loop seems to be buried deep inside a helper function and I'd rather not get into the business of editing matlab codes if there are any simpler approaches.
Any suggestions? Thanks Mike

Risposta accettata

Matt J
Matt J il 24 Nov 2012
Supply an Output Function. The output argument of an Output Function is a boolean stop flag which can force the optimization to terminate. You can set this flag based on tic...toc info if you want the optimization to stop based on time.
  1 Commento
Michael
Michael il 26 Nov 2012
Modificato: Michael il 27 Nov 2012
Do you know how I can pass the tic value/time_limit into the output function? The documentation says that all the function can call is information about the current iteration.
For example I'm trying to test the minimisation for a varying number of times, so I don't want to have to manually edit this output function every single time.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by