Stochastic dynamic programs with extended-real rewards #
LeanEconomics.DynamicProgramming.Extended allows a reward of -∞ but has a deterministic
law of motion; LeanEconomics.DynamicProgramming.Stochastic has finitely many shocks but a
real-valued reward. This file is the combination, and it is what a stochastic model with
log or CRRA utility needs if it is not to carry a floor.
Why the combination is routine #
The expectation ∑ z, p z * v (g z) is a sum of real numbers, since value functions stay
real-valued. So the objective is again reward + ↑(real): an extended real plus a finite
coercion, exactly the shape Extended already handles. Neither half has to be redone --
the reward's -∞ never meets the expectation's arithmetic, and ⊥ + ⊤ never arises.
Accordingly the two facts about the expectation are the same two as in the real stochastic
file: prob_nonneg gives monotonicity, prob_sum gives discounting.
Main results #
LeanEconomics.ExtendedStochasticProgram.blackwell: the operator is a contraction.LeanEconomics.ExtendedStochasticProgram.exists_optimal_policy: the stochastic Bellman equation, with the reward an extended real and no floor.
A stochastic dynamic program whose reward may be -∞.
- feasible : S → Set A
The actions available at each state.
- upperHemicontinuous_feasible : UpperHemicontinuous self.feasible
- lowerHemicontinuous_feasible : LowerHemicontinuous self.feasible
The reward, possibly
-∞.- rewardMax : ℝ
An upper bound on the reward, needed only on the feasible graph.
A continuous feasible policy whose reward is bounded below.
- rewardMin : ℝ
A uniform one-period payoff available through the feasible policy
select. The state reached when shock
zoccurs.The probability that shock
zoccurs.- discount : NNReal
The factor applied to next-period value.
Instances For
The expected continuation value: a sum of reals, so it never meets the reward's -∞.
Equations
- D.expect v p = ∑ z : Z, (D.prob z) p * v ((D.transition z) p)
Instances For
The objective, in the extended reals.
Instances For
The value of the one-period problem, in the extended reals.
Equations
- D.maxE v s = LeanEconomics.maxValueE (D.objectiveE v) D.feasible s
Instances For
The upper bound on the one-period value.
Instances For
The lower bound on the one-period value.
Instances For
An average of values of v is no larger than the size of v.
The Bellman operator as a bare real-valued function.
Instances For
The stochastic Bellman operator with an extended-real reward.
Equations
Instances For
Adding a constant to the continuation value adds exactly that constant to the
expectation: this is prob_sum.
Blackwell's conditions hold.
The supremum is attained: an optimal action exists at every state.
The maximiser correspondence is upper hemicontinuous.
The value function of the program.
Equations
- D.valueFunction = ⋯.valueFunction ⋯
Instances For
An explicit bound on the value function, in terms of the reward bounds alone.
The right-hand side mentions no state and no fixed point, which is exactly what is needed to
make bounds derived from ‖valueFunction‖ uniform across a FAMILY of programs: the reward
bounds of a family are typically easy to control, whereas its value functions are not.
The constant plan is not improved on by the operator, so value function iteration started there stays below it.
The value function never exceeds the best constant plan. Unlike norm_valueFunction_le
this is one-sided, and the pair of bounds caps the OSCILLATION of the value function by
(rewardMax - rewardMin) / (1 - β) -- a quantity that does not move when a constant is added to
the reward, which the sup norm does. That matters for CES: c ^ (1-γ) / (1-γ) differs from log
by the constant 1 / (1-γ), so any bound built from ‖V‖ blows up as γ → 1 while the model it
describes does not.
A dominated operator has a dominated value function, on an invariant class. The
domination need only hold on a class of continuation values that contains 0 and that the
dominated operator preserves, since value function iteration from 0 never leaves it. That is
what lets the discount factor be compared: a more patient agent's operator dominates only on
NONNEGATIVE continuation values, which is exactly the class the iteration stays in when the
reward is nonnegative.
Nonnegative rewards give a nonnegative value.
A dominated operator has a dominated value function. The comparative-statics workhorse, at the level the models use: comparing two economies reduces to comparing their Bellman operators at a common continuation value.
The stochastic Bellman equation, with the reward an extended real and no floor.