Overview
Online algorithms for POMDPs with continuous state, action, and observation spaces - Sunberg et al.
Input Belief
Root
Particle Belief
Insert new action if:
Action Progressive Widening
Choose next action with
Generate next belief node
Insert new belief if:
Full Belief Propagation
Propagate
Reweight
Value Estimation
etc.
etc.
When not widening observations
Quick note on type mutability
(mutable types inside immutable types are still mutable)
mutable struct Mstruct{T}
i::T
v::Vector{T}
end
struct Istruct{T}
i::T
v::Vector{T}
end
julia> MS = Mstruct(1,[1,2,3])
Mstruct{Int64}(1, [1, 2, 3])
julia> MS.i += 1
2
julia> push!(MS.v,4)
4-element Vector{Int64}:
1
2
3
4
julia> MS.v[1] = 10
10
julia> MS.v
4-element Vector{Int64}:
10
2
3
4
julia> IS.i += 1
ERROR: setfield! immutable struct of type Istruct cannot be changed
Stacktrace:
[1] setproperty!(x::Istruct{Int64}, f::Symbol, v::Int64)
@ Base ./Base.jl:34
[2] top-level scope
@ none:1
julia> push!(IS.v,4)
4-element Vector{Int64}:
1
2
3
4
julia> IS.v[1] = 10
10
julia> IS
Istruct{Int64}(1, [10, 2, 3, 4])
Mutable
Immutable