First-Order Optimality Measure

7 次查看(过去 30 天)
Devin
Devin 2019-2-8
编辑: Matt J 2019-2-8
Greetings,
Currently, I am working on a nonlinear constraint optimization problem and expect to use MultiStart function to search for possible local minimum.
Here is one simple example I got.
Capture.PNG
Q1: Although these solutions in the list have exitflags 2, yet the first-order optimality is nonzero. Necessary condition for local minimum is zero (My problem is constaint optimization. So I think here is necessary condition in KKT form. https://www.mathworks.com/help/optim/ug/first-order-optimality-measure.html). Are these solutions local minimum?
Q2: It is noticed that most first-order optimality of solutions are very large and only one solution's is small at 23.32. Does it mean that the optimization problem is very nonsmooth? For a nonsmooth nonlinear constraint optimization problem, what algorithm should be adopted for efficiency?
Thank you very much!

回答(1 个)

Matt J
Matt J 2019-2-8
编辑:Matt J 2019-2-8
Q1: Although these solutions in the list have exitflags 2, yet the first-order optimality is nonzero.
It is an iterative solver. It tries to converge to a local minimum, but typically will not land on one exactly. The solver has various stopping criteria which it uses to try to decide when it is close enough to a local minimum. In your case, because exitflag=2, it means that the algorithm stopped because it found it was taking very small steps, which can be an even better indication of proximity to a minimum than the absolute size of the gradient (or first order optimality measure).
One reason small steps may occur, even though the gradient is large in absolute numbers, is that the gradient is nevertheless small in relation to the local curvature. Many/most solvers in Matlab use curvature-weighted gradient steps a la Newton's method. So, for example, the single variable function f(x)=10^9*x^2/2 may appear at x=.00001 to have a large derivative (10^4), but really the derivative is quite small when compared to the curvature (10^9) and so curvature-weighted algorithms will take small steps. And, this is appropriate to do in this case, since x=.00001 is quite close to the minimum at x=0, assuming you consider x=1 to be far away.
Q2: It is noticed that most first-order optimality of solutions are very large and only one solution's is small at 23.32. Does it mean that the optimization problem is very nonsmooth
It could mean many things and not showing us your code leaves a lot of room for guessing. For example, continuing from the above example, it may mean that solutions of both very high and very low curvature were found.

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by