Reference · Finite types, distributions and Markov chains
rainbow.math.finite.policy-iteration
Finite exact-rational policy improvement and one composed iteration step.
policy/nnrat-improve
policy/nnrat-improve.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A) (score : S → A → ℚ≥0)
(x₁ : S)
→ AFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
policy/nnrat-iteration-step
policy/nnrat-iteration-step.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A)
(evaluate : (S → A) → S → ℚ≥0) (action-score : (S → ℚ≥0) → S → A → ℚ≥0) (x₁ : S)
→ AFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
nnrat/equivalent-to-at-most
nnrat/equivalent-to-at-most : (left right : ℚ≥0) (same : left = right) → left ≤ right
= = nnrat/equivalent: equality of rational valuesℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most
nnrat/at-most-respects-equivalence
nnrat/at-most-respects-equivalence : (left equivalent-left right equivalent-right : ℚ≥0) (same-left : left = equivalent-left) (same-right : right = equivalent-right) (ordered : equivalent-left ≤ equivalent-right) → left ≤ right
= = nnrat/equivalent: equality of rational valuesℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most
policy/nnrat-improve-is-admissible
policy/nnrat-improve-is-admissible.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A) (score : S → A → ℚ≥0)
(current-admissible : ∀ (state : S), current state ∈ actions)
(state : S)
→ policy/nnrat-improve S A actions current score state ∈ actionsFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set
policy/nnrat-improve-dominates
policy/nnrat-improve-dominates.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A) (score : S → A → ℚ≥0)
(state : S) (candidate : A)
(member : candidate ∈ actions)
→ score state candidate ≤ score state (policy/nnrat-improve S A actions current score state)Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most
policy/nnrat-iteration-step-unfold
policy/nnrat-iteration-step-unfold.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A)
(evaluate : (S → A) → S → ℚ≥0) (action-score : (S → ℚ≥0) → S → A → ℚ≥0) (state : S)
→ policy/nnrat-iteration-step S A actions current evaluate action-score state = policy/nnrat-improve S A actions current (action-score (evaluate current)) state= = equality/EqFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
policy/nnrat-improvement-model-transfer
policy/nnrat-improvement-model-transfer.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A)
(left-score right-score : S → A → ℚ≥0)
(same-score : ∀ (state : S), ∀ (action : A), left-score state action = right-score state action)
(state : S) (candidate : A)
(member : candidate ∈ actions)
→ right-score state candidate ≤ right-score state (policy/nnrat-improve S A actions current left-score state)= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most
policy/nnrat-improvement-state-transfer
policy/nnrat-improvement-state-transfer.{u, v} :
(S : Type u) (A : Type v) (actions : Finset A) (current : S → A) (score : S → A → ℚ≥0)
(current-admissible : ∀ (state : S), current state ∈ actions)
(state : S)
→ proposition/conjunction (improve ∈ actions) (∀ (candidate : A), ∀ (member : candidate ∈ actions), score state candidate ≤ score state (improve))
where improve := policy/nnrat-improve S A actions current score stateFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most