OLFC beats open-loop control (Prop. 6.2.1)
ProvedBertsekasDP.olfc_performanceProposition 6.2.1 (the open-loop feedback controller uses measurements advantageously). Consider the basic stochastic model with state-independent control constraint sets, in the perfect state information case. The open-loop feedback controller (OLFC) acts as follows: at stage in state , it solves the open-loop problem over the remaining horizon starting from — optimizing over control sequences, as if no further measurements were to be received — and applies the first control of an optimal such sequence. Then for every initial state ,
That is, the closed-loop cost of the OLFC is at most the cost of the best fixed control sequence.
The point is that a suboptimal scheme should at least not waste the information it receives. The OLFC selects each control as if the future were unobservable, yet because it re-optimizes at every stage from the state actually reached, it dominates every policy that ignores observations altogether. This guarantee is what distinguishes it from the certainty equivalent controller, which, as the source notes, can be strictly worse than the optimal open-loop policy.
Formalization Note The constraint sets are assumed independent of the state, matching the open-loop framework of §6.2 in which a single sequence must be feasible along all trajectories. The OLFC is characterized by a hypothesis — at each stage and state there exists an optimal admissible sequence whose first control the policy plays — rather than constructed, so the statement is about any policy with that property. The perfect-information case is the one formalized here; the source's general version additionally propagates the conditional state distribution.
import Mathlib import Definitions.Def_BertsekasDPModel import Definitions.Def_BertsekasDPOpenLoopCost
namespace BertsekasDP
theorem olfc_performance {S C W : Type} [Fintype W]
(M : BertsekasDPModel S C W)
(hUconst : ∀ k x x', M.U k x = M.U k x')
(π : ℕ → S → C)
(holfc : ∀ k, k < M.N → ∀ x, ∃ useq : ℕ → C,
(∀ i, k ≤ i → i < M.N → useq i ∈ M.U i x) ∧
π k x = useq k ∧
(∀ useq' : ℕ → C, (∀ i, k ≤ i → i < M.N → useq' i ∈ M.U i x) →
BertsekasDPOpenLoopCost M useq (M.N - k) x ≤
BertsekasDPOpenLoopCost M useq' (M.N - k) x)) :
∀ (x₀ : S) (useq₀ : ℕ → C), (∀ i, i < M.N → useq₀ i ∈ M.U i x₀) →
BertsekasDPPolicyCost M π M.N x₀ ≤
BertsekasDPOpenLoopCost M useq₀ M.N x₀ := by sorry
end BertsekasDPRead-back
What the Lean code literally says, in plain math · claude-fable-5
Same setting: types with finite, a term of the not-provided structure BertsekasDPModel, the not-provided opaque policy-cost , and the open-loop cost of BertsekasDPOpenLoopCost as unfolded above (steps indexed by truncated subtraction from ; terminal value ). Hypotheses:
- (hUconst) for every stage and all states : — the constraint set at each stage does not depend on the state;
- is a policy such that: (holfc) for every and every state , there exists a control sequence with
- for every with (admissibility, checked against the constraint sets at the state , and only on stages ; values of outside that range are unconstrained),
- (the policy plays the first control of that sequence), and
- for every competing sequence satisfying the same admissibility condition (1),
i.e. minimizes the -step open-loop cost from among all sequences admissible at on stages . (Since here, involves no truncation, and unfolding the recursion these steps use exactly the stage data followed by the terminal cost .)
Conclusion: for every initial state and every control sequence satisfying for all ,
i.e. the (opaque) policy cost of over steps from is at most the -step open-loop cost of any admissible-at- control sequence. When both hypotheses (holfc) and the admissibility premise are vacuous and the conclusion compares two applications at step count . The proof is left as sorry.
Confirmed by the mission captain (proposal self-audit).