Theorem 4.2 — the binding set is identified in finitely many steps
ProvedCalamaiMore.ActiveSet.bindingSet_eventually_eqLet be a polyhedral set in a finite-dimensional real inner product space with active sets , and let be continuously differentiable on . Let be a consistent Lagrange multiplier estimate, with binding sets , whose value at is the Kuhn–Tucker multiplier vector:
Let be an arbitrary sequence in converging to . If and is nondegenerate, then
An algorithm that uses a multiplier estimate to decide which constraints to keep therefore makes the right decision after finitely many iterations.
Formalization Note The displayed condition on is implicit in the source, which writes for the Kuhn–Tucker multipliers of (4.3) (as the least-squares estimate (4.5) gives). Without it the statement is false: a consistent estimate may have while alternates in sign. By linear independence it makes on .
import Mathlib import Definitions.Def_CalamaiMore_ActiveSet_projGrad import Definitions.Def_CalamaiMore_ActiveSet_bindingSet
namespace CalamaiMore.ActiveSet
/-- Calamai–Moré, Theorem 4.2 (p. 107): let `Ω` be the polyhedral set of (4.1), `f` continuously
differentiable on `Ω`, and `{x_k}` an arbitrary sequence in `Ω` converging to `x*`. If the binding
sets (4.4) are defined by a consistent multiplier estimate `λ(·)` whose value at `x*` is the
Kuhn–Tucker multiplier vector of (4.3) (`∇f(x*) = ∑_{j ∈ A(x*)} λ_j(x*) c_j`, the hypothesis the
paper leaves implicit), if `‖∇_Ω f(x_k)‖ → 0`, and if `x*` is nondegenerate, then
`B(x_k) = B(x*)` for all `k` sufficiently large. -/
theorem bindingSet_eventually_eq {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] {m : ℕ} (c : Fin m → E) (δ : Fin m → ℝ)
(f : E → ℝ) (hfd : ∀ x ∈ polyhedron c δ, DifferentiableAt ℝ f x)
(hfc : ContinuousOn (gradient f) (polyhedron c δ))
(lam : E → Fin m → ℝ) (hcons : IsConsistentEstimate c δ f lam)
(x : ℕ → E) (xs : E) (hx : ∀ k, x k ∈ polyhedron c δ)
(hlim : Filter.Tendsto x Filter.atTop (nhds xs))
(hpg : Filter.Tendsto (fun k => ‖projGrad f (polyhedron c δ) (x k)‖) Filter.atTop (nhds 0))
(hnd : IsNondegenerate c δ f xs)
(hlamxs : gradient f xs = ∑ j ∈ activeSet c δ xs, lam xs j • c j) :
∀ᶠ k in Filter.atTop, bindingSet c δ lam (x k) = bindingSet c δ lam xs := by sorry
end CalamaiMore.ActiveSet
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.