Methods for Specialization

The following methods can be overridden to change the behavior of the solver:

# POMCP.extract_beliefFunction.

extract_belief(rollout_updater::POMDPs.Updater, node::ObsNode) = initialize_belief(rollout_updater, node.B)

Return a belief compatible with the rollout_updater from the belief in node.

When a rollout simulation is started, this method is used to create the initial belief (compatible with rollout_updater) based on the appropriate BeliefNode at the edge of the tree. By overriding this, a belief can be constructed based on the entire tree or entire observation-action history. If this is not overriden, by default it will use initialize_belief on the belief associated with the node directly, i.e. POMDPs.initialize_belief(rollout_updater, node.B).

source

# POMCP.sparse_actionsFunction.

sparse_actions(pomcp::POMCPPlanner, pomdp::POMDPs.POMDP, h::BeliefNode, num_actions::Int)

Return an iterable object containing no more than num_actions actions to be considered at the current node.

Override this if you want to choose specific actions (you can override based on the POMDP type at the node level, or the belief type). If only a limited number of actions are to be considered, this function will be used to generate that set of actions. By default, it simply returns a random sampling of actions from the action space generated by POMDPs.actions.

If your problem has a continuous action space, you will want to override this to try a sensible set of action samples.

source