Utility Types
Terminal State
TerminalState
and its singleton instance terminalstate
are available to use for a terminal state in concert with another state type. It has the appropriate type promotion logic to make its use with other types friendly, similar to nothing
and missing
.
NOTE: This is NOT a replacement for the standard POMDPs.jl isterminal function, though isterminal is implemented for the type. It is merely a convenient type to use for terminal states.
WARNING: Early tests (August 2018) suggest that the Julia 1.0 compiler will not be able to efficiently implement union splitting in cases as complex as POMDPs, so using a Union
for the state type of a problem can currently have a large overhead.
POMDPModelTools.TerminalState
— TypeTerminalState
A type with no fields whose singleton instance terminalstate
is used to represent a terminal state with no additional information.
This type has the appropriate promotion logic implemented to function like Missing
when added to arrays, etc.
Note that terminal states NEED NOT be of type TerminalState
. You can define any state to be terminal by implementing the appropriate isterminal
method. Solvers and simulators SHOULD NOT check for this type, but should instead check using isterminal
.
POMDPModelTools.terminalstate
— Constantterminalstate
The singleton instance of type TerminalState
representing a terminal state.