The unscaled two-update direction is a descent direction
ProvedShannoCG.SCONB.bconDirection_descentbfgsconjugate-gradientp2o-batch-p200bp2o-gran-per-chapterp2o-plan-paperp2o-v1quasi-newton
Let with , and , and let be the unscaled two-update direction ( from (31), its BFGS update (32) with ). Then
This is the same descent guarantee as for the self-scaled method, for the algorithm (34)–(36).
Formalization Note The curvature condition is assumed for both pairs and ; "descent direction" is read as with .
Preamble
import Mathlib import Definitions.Def_ShannoCG_SCONB_bconDirection open Matrix
Formal statement
namespace ShannoCG.SCONB
/-- Shanno, *Conjugate Gradient Methods with Inexact Searches*, Math. Oper. Res. 3(3) (1978), §IV, p. 250 (PDF 7), the paragraph after (39): as the method uses two sequential
quasi-Newton updates, `p_k'y_k > 0` is sufficient to ensure that the search direction `d_{k+1}` is
always a descent direction. Stated here for the unscaled algorithm (34)–(36), i.e.
`d_{k+1} = −Ĥ_{k+1} g_{k+1}` with `Ĥ_k` from (31) and `Ĥ_{k+1}` from (32).
**Formalization Note.** "`p_k'y_k > 0`" is assumed for both pairs `(p_t, y_t)` and `(p_k, y_k)`.
"Descent direction" is `g_{k+1}' d_{k+1} < 0`, which requires `g_{k+1} ≠ 0`. Generic vectors. -/
theorem bconDirection_descent {n : ℕ} (pt yt pk yk g : Fin n → ℝ) (hpyt : 0 < pt ⬝ᵥ yt)
(hpyk : 0 < pk ⬝ᵥ yk) (hg : g ≠ 0) :
g ⬝ᵥ bconDirection pt yt pk yk g < 0 := by sorry
end ShannoCG.SCONB
Source
Shanno, Conjugate Gradient Methods with Inexact Searches, Math. Oper. Res. 3(3) (1978) 244–256, DOI 10.1287/moor.3.3.244, p. 250 (PDF p. 7), §IV, the paragraph after eq. (39) (algorithm (34)–(36))
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.