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

7 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)

Categorie

Scopri di più su App Building in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by