Primitive objects for the O3 probe #
This file fixes the finite-dimensional real model, genuine-real ℓ_p
functional, exact pair oracle, and an explicit deterministic interaction
machine. In particular, a method can obtain objective information only by a
query transition; the smoothness constant, solution radius, optimum value,
and an optimizer are not fields of MethodInput.
Package a query point with its exact objective value and gradient.
Instances For
The only numerical/problem data supplied to the O3 state machine.
- p : ℝ
The exponent specifying the primal norm geometry.
- eps : ℝ
The target bound on the dual norm of the returned gradient.
- x0 : Vec d
The initial optimization point.
- z0 : Vec d
The second point supplied for secant initialization.
- M0 : ℝ
The observable initial scale obtained from the supplied secant data.
Instances For
An explicit deterministic first-order method. Its transition function is
fixed before the oracle is supplied and can inspect the objective only through
the observations delivered to Action.query.
- State : Type
The internal states of the deterministic first-order method.
- initial : MethodInput d → self.State
Construct the initial internal state from the permitted method inputs.
Select the next oracle query or terminal action from an internal state.
Instances For
Result of a fuel-bounded execution. queries contains every counted
post-initialization pair-oracle call, including rejected and terminal calls.
- returned : Vec d
The point returned when the bounded execution succeeds.
- queries : List (Observation d)
Every counted oracle response in the completed execution.
Instances For
Execute at most the given number of machine steps while accumulating query responses.
Equations
Instances For
Run a first-order method from its initial state with an empty query history.
Instances For
The returned point really was queried; a bare unobserved terminal point is not enough for the frozen theorem.
Equations
- result.returnedWasQueried = (result.returned ∈ List.map O3.Observation.point result.queries)
Instances For
The coordinate gradient represents the Frechet derivative. The ambient norm used by Mathlib for differentiability is immaterial in finite dimension.
Equations
- O3.IsCoordinateGradient f grad = ∀ (x : O3.Vec d), DifferentiableAt ℝ f x ∧ ∀ (h : O3.Vec d), (fderiv ℝ f x) h = O3.pairing (grad x) h
Instances For
Exact nondegenerate secant initialization and its observable scale.
Equations
Instances For
One complete admissible instance. The algorithm never receives this structure; it is used only by the correctness theorem.
The objective function of the admissible optimization instance.
The coordinate gradient of the objective.
- L : ℝ
The positive smoothness bound used in the instance's analytic certificate.
- eps : ℝ
The requested terminal gradient tolerance.
- x0 : Vec d
The point from which the method starts.
- z0 : Vec d
The second point in the nondegenerate secant initialization.
- M0 : ℝ
The initial scale witnessed by the secant data.
- gradient_spec : IsCoordinateGradient self.f self.grad
- convex : IsConvexObjective self.f
- minimizer_nonempty : (MinimizerSet self.f).Nonempty
- smooth : IsLpSmooth p (conjugateExponent p) self.L self.grad
- secant : SecantWitness p (conjugateExponent p) self.M0 self.grad self.x0 self.z0
Instances For
The exact value-gradient oracle associated with an admissible instance.
Instances For
Extract the observable numerical inputs supplied to the method.
Instances For
The primal-norm distance from the initial point to the minimizer set.
Equations
- P.radius = O3.minimizerDistance p P.f P.x0
Instances For
The condition quantity truncated below at one.
Equations
- P.conditionBar = max 1 P.condition
Instances For
The returned point's gradient satisfies the prescribed dual-norm tolerance.
Equations
- O3.RunResult.hasTargetGradient P result = (O3.lpNorm (O3.conjugateExponent p) (P.grad result.returned) ≤ P.eps)