How do I help quadprog converge?

12 Ansichten (letzte 30 Tage)
Leigh Sneddon
Leigh Sneddon am 15 Aug. 2019
Bearbeitet: Matt J am 16 Aug. 2019
Quadprog quits with exitFlag = -2, and the message below. How do I help it converge to a feasible point?
"quadprog optimization failed: Converged to an infeasible point.
quadprog stopped because the size of the current step is less than the default value of the step size tolerance but constraints are not satisfied to within the selected value of the constraint tolerance.
Stopping criteria details:
Optimization stopped because the relative changes in all elements of x are less than options.StepTolerance = 1.000000e-12, but the relative maximum constraint violation, 1.902013e-14, exceeds options.ConstraintTolerance = 1.000000e-06.
Optimization Metric Options
max(abs(delta_x./x)) = 1.82e-13 StepTolerance = 1e-12 (default)
relative max(constraint violation) = 1.90e-14 ConstraintTolerance = 1e-06 (selected)"
  9 Kommentare
Walter Roberson
Walter Roberson am 15 Aug. 2019
I cannot find the information on the problem that came to mind; unfortunately the bug reports are now difficult to search :(
Leigh Sneddon
Leigh Sneddon am 15 Aug. 2019
OK. Thanks.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Matt J
Matt J am 15 Aug. 2019
Bearbeitet: Matt J am 15 Aug. 2019
Is checking that the constraints are satisfied and the optimality measure is low a good rule of thumb for making this decision?
Checking the first order KKT conditions would be the best test, assuming your quadratic is convex. The final output argument of quadprog gives the solver's idea of the optimal Lagrange multipliers,
[x,fval,exitflag,output,lambda] = quadprog(___)
But I would first recommend upgrading to a Matlab version that doesn't have this bug.
  2 Kommentare
Leigh Sneddon
Leigh Sneddon am 16 Aug. 2019
Optimizer precision limitations will mean that none of the conditions is satisfied exactly. Is there a way of knowing, given the tolerances used, how much mismatch is consistent with a correct solution?
Matt J
Matt J am 16 Aug. 2019
Bearbeitet: Matt J am 16 Aug. 2019
What does "consistent with a correct solution" mean to you? Even if quadprog's exit message had been a proper one, what is the deviation distance from the true optimum that your application can tolerate, and how would you have known that the result is within that distance if quadprog had behaved normally?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Multiobjective Optimization finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by