fmincon minimum number of iterations

55 ビュー (過去 30 日間)
Shun Arahata
Shun Arahata 2020 年 4 月 5 日
コメント済み: Ameer Hamza 2020 年 4 月 5 日
Are there any way to set minimum number of iterations in fmincon.
I don't want to stop algorithm when
options.OptimalityTolerance = 0,
options.ConstraintTolerance = 0, and
options.StepTolerance = 0.
I want fmincon to stop at the desired iterations for comparing with other algorithms.
  2 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 4 月 5 日
So you want the algorithm to run even after it finds the optimal value?
Shun Arahata
Shun Arahata 2020 年 4 月 5 日
Yes. I am solving a nonconvex optimization problem.
I think fmincon stops when first order KKT condition is satisfied.
So fmincon might stop at a saddle point (not global optima value ).
However, I am comparing with another algorithm which converge to second order stationary points (i.e. algorithm does not stop at a strict saddle point).
What I want to see is given fixed iteration numbers then fmincon stops at saddle point however another algortihm does not stop at saddle point.
A good example is as follows. from https://arxiv.org/abs/1907.04450
PGD( projected gradient descent) can't escape from saddle point.
So there is no change in loss value of PGD.
On the other hand, SNAP( proposed algorithm in the paper ) can escape from saddle point.

サインインしてコメントする。

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 4 月 5 日
This shows how you can force fmincon to keep searching until a fixed number of iterations is reached. It uses a simple objective function, but fmincon still run to 1000 iterations.
opts = optimoptions('fmincon', ...
'OptimalityTolerance', 0, ...
'StepTolerance', 0, ...
'MaxFunctionEvaluations', inf,...
'MaxIterations', 1000);
[X,f,~,out] = fmincon(@(x) x.^2, 1, [], [], [], [], [], [], [], opts);
  2 件のコメント
Shun Arahata
Shun Arahata 2020 年 4 月 5 日
This is exactly what I want to do. Thanks a lot.
Ameer Hamza
Ameer Hamza 2020 年 4 月 5 日
Glad to be of help.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNonlinear Optimization についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by