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

12 vues (au cours des 30 derniers jours)
Michael
Michael le 23 Nov 2012
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

Réponse acceptée

Matt J
Matt J le 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 commentaire
Michael
Michael le 26 Nov 2012
Modifié(e) : Michael le 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by