An interface for defining a Policy. Requires providing an action mapping (or sampling in the case
of stochastic policies) specifying the policy distribution, indicating whether the policy is stochastic,
and checking if the policy is defined for an input state.
Various helper methods, including methods to rollout a policy from a model or in an environment are
included in the PolicyUtils class.
This method will return an action sampled by the policy for the given state. If the defined policy is
stochastic, then multiple calls to this method for the same state may return different actions. The sampling
should be with respect to defined action distribution that is returned by getActionDistributionForState
s - the state for which an action should be returned
a sample action from the action distribution; null if the policy is undefined for s