A Numerically Stable Dual Method for Solving Strictly Convex Quadratic Programs: The Dual Algorithm Solves the QP or Detects Its Infeasibility in Finitely Many StepsResearch Paper
Motivation
Strictly convex quadratic programs — minimize a positive definite quadratic subject to linear inequalities — are the subproblems solved at every iteration of successive quadratic programming (SQP) methods for nonlinear optimization, and they arise directly in least-squares estimation with constraints, portfolio selection and model predictive control. In SQP the unconstrained minimizer of the quadratic model is available at no cost, while a feasible point is not.
D. Goldfarb and A. Idnani (Math. Programming 27 (1983) 1–33) proposed a dual active-set method that exploits this asymmetry. It starts at the unconstrained minimizer, which is optimal for the problem with all constraints removed, and adds violated constraints one at a time while keeping the current point optimal for the subproblem defined by the current active set. No phase 1 is needed. The method, usually called the Goldfarb–Idnani algorithm, is the basis of widely used solvers (for example the quadprog package in R and QuadProg++), and the paper proves that it terminates finitely with a correct answer.
Earlier dual methods for quadratic programming include the modified-simplex methods of Lemke (Management Science 8 (1962) 442–453) and of Van de Panne and Whinston (1964), which the paper compares with its own in Section 7.
Setting
Fix , a vector , a symmetric positive definite matrix , an matrix with columns , and . The quadratic program (1.1) is
The gradient is . For , the subproblem keeps only the constraints indexed by ; is solved by . A set is linearly independent if the normals , , are.
For an independent , let be the matrix with columns , , and define
The multipliers are ; for a constraint with normal the infeasibility multipliers are ; a superscript denotes the same objects for .
An S-pair is an independent active set with for and optimal for . A V-triple has , independent, , for , and .
The dual algorithm starts from . In Step 1 it stops if is feasible; otherwise it picks any violated constraint . In Step 2 it moves along the primal direction and the dual direction with step , where is the largest step that keeps the multipliers nonnegative and makes constraint active. If both are infinite it reports infeasibility. A full step () adds and returns to Step 1. A partial step (), or a dual step (), drops a constraint attaining and repeats Step 2.
Formalization targets
Goal: Theorem 3 (p. 11)
For every choice of the violated constraint and of the dropped constraint :
Milestones, in attack order
- Properties (2.6)–(2.9) (p. 5): ; ; ; .
- Optimality conditions (2.3)–(2.4) (p. 5): on the manifold of , solves iff and .
- Lemma 1 (p. 8): along from a V-triple, , the constraints of stay active, and .
- Theorem 1 (pp. 8–9): the step increases and ; a partial step yields a V-triple, a full step an S-pair.
- Theorem 2 (p. 10): if and at an S-pair, then means is infeasible; otherwise dropping a minimizing gives a V-triple.
- One round of Step 2 (p. 11): from an S-pair and a violated , at most partial or dual steps and one final step end either in infeasibility of (1.1) or in a new S-pair with and .
Significance
Theorem 3 is the correctness certificate of the Goldfarb–Idnani method: whatever rule an implementation uses to choose the entering and leaving constraints, it cannot cycle and its answer is right. In particular the infeasibility verdict is a proof that (1.1) has no feasible point, which matters in SQP where infeasible subproblems trigger a different branch of the outer method. The intermediate results (the operator identities, Lemma 1, Theorems 1–2) are the standard analysis of dual active-set methods for quadratic programming.
The result is proved in the paper; to our knowledge it has not been machine-checked. A formal development produces verified projector identities for and , a verified KKT characterization for equality-active subproblems, and a verified finite-termination proof for a nondeterministic algorithm with an explicit step relation. The platform already has a proved KKT sufficiency theorem for general convex programs (ConvexOptimization.kkt_sufficient_for_convex), stated over EuclideanSpace with general convex functions and gradient fields; it can serve as background for the sufficiency half of milestone 2, but it is not stated in this mission's matrix objects.
Difficulty
The obvious termination argument is that increases strictly at every iteration and there are finitely many active sets. It fails as stated: partial steps may leave unchanged (the dual steps of Step 2(c)(ii)), so is only nondecreasing between consecutive states. A termination proof therefore needs a measure that also decreases along steps that do not move . Any such argument relies on invariants (independence of , nonnegativity of the multipliers, along partial steps) that hold only on reachable states, and the operators and are meaningful only while those invariants hold. Correctness of the infeasibility verdict requires the dependent case (Theorem 2), not only Theorem 1.
Formalization scope
Vectors are Fin n → ℝ, is Matrix (Fin n) (Fin n) ℝ with G.PosDef, is Matrix (Fin n) (Fin m) ℝ, and active sets are Finset (Fin m). Multiplier vectors are indexed by constraint index (Fin m → ℝ, zero off the active set), not by position in . Lean's matrix inverse returns for singular matrices, so every statement about and assumes and an independent active set (directly, or through an S-pair or V-triple).
The algorithm is the inductive relation Step on states step1 x A u, step2 x A p u⁺, stopOptimal x, stopInfeasible, with one transition per admissible choice of and . Infinite step lengths are separate transitions; a tie takes the full step, as the paper tests first. The running value of and the factorizations of Section 4 are not part of the state.
Explicit readings of the paper's words:
- "solves the QPP or indicates infeasibility in a finite number of steps" is: no infinite sequence of
Steptransitions from the Step-0 state, and every reachable state without a successor is a STOP whose verdict is correct (optimal for (1.1), or (1.1) infeasible); - "S-pair" is: independent and active at , with optimal for (the reading every use in the paper needs);
- in Theorem 1 the partial-step clause carries (as in its proof), and the multiplier printed in (3.16) is , the entry belonging to ;
- "an S-pair can never reoccur" is expressed as the strict increase in milestone 6.
Property (2.10), printed , is false unless and is not formalized. Equality constraints (1.2), Section 4 (numerically stable implementation), Sections 5–6 (computations), Section 7 (comparisons) and the Appendix example are out of scope.
A trivializing formalization is ruled out: the goal quantifies over every run of the relation (not one selection rule, not "some run terminates"), the infeasibility verdict is about (1.1) itself, and the algorithm is a relation that always has a successor until a STOP, so correctness cannot hold because a run gets stuck.
Needed infrastructure: Schur-complement and projector identities for and ; first-order optimality for convex quadratics on affine subspaces with inequality multipliers; well-foundedness arguments for a nondeterministic relation. The operator identities and the KKT characterization are reusable for other active-set and SQP analyses. Contributions of proofs of any milestone, and of reusable lemmas about and , are welcome.
Selected references
- D. Goldfarb and A. Idnani, A numerically stable dual method for solving strictly convex quadratic programs, Mathematical Programming 27 (1983) 1–33. https://doi.org/10.1007/BF02591962
- C. E. Lemke, A method of solution for quadratic programs, Management Science 8 (1962) 442–453. https://doi.org/10.1287/mnsc.8.4.442
- J. Nocedal and S. J. Wright, Numerical Optimization, 2nd ed., Springer, 2006, Chapter 16. https://doi.org/10.1007/978-0-387-40065-5