Why does my optimization stop after the first iteration?

4 次查看(过去 30 天)
I do not know much about numerical optimization. My question is, what are possible reasons for fmincon to stop after 0 iterations. Here are the clues:
  • I do not provide a gradient or hessian.
  • It stops because:"size of the current step is less thanthe default value of the step size tolerance and constraints are satisfied to within the default value of the constraint tolerance"
  • feasibility is 0.0000,First-order optimality is 1.206e+09
  • Using patternsearch works and it finds the optimum
Another question: I suspect, that patternsearch is much slower than fmincon when the number of arguments increases, right?
Thank you for your time.
  3 个评论
Rosi Marungu
Rosi Marungu 2016-1-25
Thank you for your answer. Some follow up questions: Isn't it odd that it stops even though First-order optimality is 1.206e+09? This should be a number as small as possible, right? So shouldn't there be a threshold above which the solver cannot declare to have found a solution?
Does that give a clue about what the function looks like at that point?
Thank you very much.
Matt J
Matt J 2016-1-26
编辑:Matt J 2016-1-26
This should be a number as small as possible, right?
First order optimality isn't the only criterion that can trigger a stop. Also, to be considered small, a value for the first-order optimality measure need only be small relative to typical magnitudes of the function's derivative. Try this simple problem, for instance,
[x,fval,ef,out]=fmincon(@(x) 1e18*x^2,.5,[],[],[],[],0,1)
You will see that out.firstorderopt is ~1e9.
Bottom line -- we really need to see your code.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surrogate Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by