Reference · Algorithm guarantees
rainbow.algorithms.proofs.sparse-sampling
AHoF D35 Sparse Sampling: the sample-complexity count of the sparse-sampling MDP planner (Kearns-Mansour-Ng). To estimate the value at a state to horizon H, the planner recurses, drawing C sampled next-states for each of the |A| actions at every node, so the sampled look-ahead tree has node-count |A| C H = (|A| * C) ^ H leaves -- exponential in the horizon but INDEPENDENT of the (possibly infinite) state-space size, which is the defining property that makes sparse sampling a tractable planner for large MDPs. Proved native and axiom-free using exact natural exponentiation (nat/power): the count is the branching factor |A|*C raised to the horizon. The value backup and the sampling itself are executable concerns; what is proved here is the sample-complexity count and worked instances. Requires nat, nat/multiply, and nat/power (nat/power added alongside). Scope (measured by the kernel): this module has 2 worked instances (statements about specific values) and 2 definitional unfoldings (true by unfolding a definition). None of its theorems is a guarantee about the algorithm for all inputs; `lein verify rainbow.algorithms.proofs.sparse-sampling` prints this classification.
sparse-sampling/node-count
sparse-sampling/node-count : (x₁ x₂ x₃ : ℕ) → ℕ
ℕ = data/Nat
sparse-sampling/node-count-is-power
sparse-sampling/node-count-is-power : (actions samples horizon : ℕ) → sparse-sampling/node-count actions samples horizon = nat/power (nat/multiply actions samples) horizon
= = equality/Eqℕ = data/Nat
sparse-sampling/horizon-zero-single-node
sparse-sampling/horizon-zero-single-node : (actions samples : ℕ) → sparse-sampling/node-count actions samples 0 = 1
= = equality/Eqℕ = data/Nat
sparse-sampling/node-count-example
sparse-sampling/node-count-example : → sparse-sampling/node-count 2 3 2 = 36
= = equality/Eq
sparse-sampling/node-count-deep-example
sparse-sampling/node-count-deep-example : → sparse-sampling/node-count 2 2 3 = 64
= = equality/Eq