How to loosen equation constaints in my fmincon process?

1 次查看(过去 30 天)
My objective function (including analytical gradients) and equality constaints are a bit too bulky to present them here.
I start fmincon process from various initial infeasable points using all available algorithms and always observe the same behavior. fmincon always finds a fesable point (each time different) and stops without any noticable reduction in objective function and with:
Optimization completed because the objective function is non-decreasing in ↵feasible directions, to within the value of the optimality tolerance,
↵and constraints are satisfied to within the value of the constraint tolerance.↵↵<stopping criteria details>↵↵Optimization completed:
The first-order optimality measure, 1.230569e-17, is less↵than options.OptimalityTolerance = 1.000000e-06, and the maximum constraint violation,↵9.663546e-30, is less than options.ConstraintTolerance = 1.000000e-02.↵↵'
All found feasable points render almost the same minimal objective function values. Taking contours by various parameter pair in the areas around my initial points show that the objective function values differ in times.
Here I have loosened ConstraintTolerance to 1e-2 as above, but fmincon seems to be obsessed with oversatisfying constraints. I tried to reduce OptimalityTolerance. I took a square of the ceq (there are 7 equations) in order to achieve constraints satisfaction ealier. All in attempt to loosen constraints and force objective function minimization. It does not happen.
I appreciate that somehow all feasable points may have very narrow range of the objective function, but I would find it very suprising. Any suggestions on how to effectively reduce the effect of the constraints.
  5 个评论
Valeri Aronov
Valeri Aronov 2021-12-6
There is none. The observations prompt rather that there is perhaps a manifold where the objective function has near-minimal values. Very strange.
Here is the set problem in a few words.
The objective function is an integral sensitivity of transfer function magnitude sensitivities to linear system parameters. The constraints are the conditions of polynomial identity of parameters to a known good solution for minimal sensitivities. 7 equations express equality of every coefficient in the numerator and the denominator polynomials to their counterparts in the targeted transfer function. I am trying to improve on the known solution.
Matt J
Matt J 2021-12-7
The observations prompt rather that there is perhaps a manifold where the objective function has near-minimal values. Very strange.
Nothing strange about that. Any convex function with non-unique minima has such a manifold, at least locally.

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2021-12-6
编辑:Matt J 2021-12-6
It doesn't sound like you need to loosen your tolerances. It sounds like you need to tighten them or, more preferably, rescale your objective and constraints to more natural units.
Judging from these numbers 1.230569e-17 and 9.663546e-30, it looks like your objective and constraint functions are scaled to produce very small scale values (<1e-17) at just about any input point x that you supply. Therefore, the stopping tolerances can't distinguish well between points that are optimal/feasible and those that aren't.
You need to scale up your objective and constraints by about 17 orders of magnitude. Or you can scale down your tolerance parameters, though I prefer the former.
  3 个评论
Matt J
Matt J 2021-12-7
Then another possibility is that you have discontinuities or non-differentiabilities in your objective function. It's hard to diagnose anything without at least a mathematical description of the objective and constraints.
Valeri Aronov
Valeri Aronov 2021-12-8
The functions involved are all differentiable, with no discontinuities. The gradient of the objective function is checked and approved by fmincon itself.
May I dare to attach two files for your review: the script to generate the obj function and the constraints (Schoeffler_Script) and the function to run the fmincon process. I run the latter by calling this:
Optimize_Schoeffler(logspace(log10(3500),log10(4500),15), 1.1*targetX, @Schoeffler_and_Grad_Func, @SchoefflerConstraintsFunc)
I was changing the coefficient of the second parameter to 1.05, 2, 2.8 (for example) for using a variety of initial points. I observed fmincon inability to reach feasibility when this coefficient was much greater than those mentioned.

请先登录,再进行评论。

类别

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

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by