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
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.
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
The singleton instance of type
TerminalState representing a terminal state.