public abstract class Policy
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Policy.ActionProb
Class for storing an action and probability tuple.
|
static class |
Policy.PolicyUndefinedException
RuntimeException to be thrown when a Policy is queried for a state in which the policy is undefined.
|
static class |
Policy.RandomPolicy
A uniform random policy for single agent domains.
|
Modifier and Type | Field and Description |
---|---|
protected boolean |
annotateOptionDecomposition |
protected boolean |
evaluateDecomposesOptions |
Constructor and Description |
---|
Policy() |
Modifier and Type | Method and Description |
---|---|
EpisodeAnalysis |
evaluateBehavior(State s,
RewardFunction rf,
int numSteps)
This method will return the an episode that results from following this policy from state s.
|
EpisodeAnalysis |
evaluateBehavior(State s,
RewardFunction rf,
TerminalFunction tf)
This method will return the an episode that results from following this policy from state s.
|
EpisodeAnalysis |
evaluateBehavior(State s,
RewardFunction rf,
TerminalFunction tf,
int maxSteps)
This method will return the an episode that results from following this policy from state s.
|
void |
evaluateMethodsShouldAnnotateOptionDecomposition(boolean toggle)
Sets whether options that are decomposed into primitives will have the option that produced them and listed.
|
void |
evaluateMethodsShouldDecomposeOption(boolean toggle)
Sets whether the primitive actions taken during an options will be included as steps in produced EpisodeAnalysis objects.
|
abstract AbstractGroundedAction |
getAction(State s)
This method will return an action sampled by the policy for the given state.
|
abstract java.util.List<Policy.ActionProb> |
getActionDistributionForState(State s)
This method will return action probability distribution defined by the policy.
|
protected java.util.List<Policy.ActionProb> |
getDeterministicPolicy(State s)
A helper method for defining deterministic policies.
|
double |
getProbOfAction(State s,
AbstractGroundedAction ga)
Will return the probability of this policy taking action ga in state s
|
static double |
getProbOfActionGivenDistribution(AbstractGroundedAction ga,
java.util.List<Policy.ActionProb> distribution)
Searches the input distribution for the occurrence of the input action and returns its probability.
|
static double |
getProbOfActionGivenDistribution(State s,
AbstractGroundedAction ga,
java.util.List<Policy.ActionProb> distribution)
Deprecated.
|
abstract boolean |
isDefinedFor(State s)
Specifies whether this policy is defined for the input state.
|
abstract boolean |
isStochastic()
Indicates whether the policy is stochastic or deterministic.
|
protected AbstractGroundedAction |
sampleFromActionDistribution(State s)
This is a helper method for stochastic policies.
|
protected boolean evaluateDecomposesOptions
protected boolean annotateOptionDecomposition
public abstract AbstractGroundedAction getAction(State s)
s
- the state for which an action should be returnedpublic abstract java.util.List<Policy.ActionProb> getActionDistributionForState(State s)
s
- the state for which an action distribution should be returnedpublic abstract boolean isStochastic()
public abstract boolean isDefinedFor(State s)
s
- the input state to test for whether this policy is definedState
s, false otherwise.public double getProbOfAction(State s, AbstractGroundedAction ga)
s
- the state in which the action would be takenga
- the action being queried@Deprecated public static double getProbOfActionGivenDistribution(State s, AbstractGroundedAction ga, java.util.List<Policy.ActionProb> distribution)
getProbOfActionGivenDistribution(burlap.oomdp.core.AbstractGroundedAction, java.util.List)
.public static double getProbOfActionGivenDistribution(AbstractGroundedAction ga, java.util.List<Policy.ActionProb> distribution)
ga
- the AbstractGroundedAction
for which its probability in specified distribution should be returned.distribution
- the probability distribution over actions.protected java.util.List<Policy.ActionProb> getDeterministicPolicy(State s)
s
- the state for which the action distribution should be returned.protected AbstractGroundedAction sampleFromActionDistribution(State s)
s
- AbstractGroundedAction
to takepublic void evaluateMethodsShouldDecomposeOption(boolean toggle)
toggle
- whether to decompose options into the primitive actions taken by them or not.public void evaluateMethodsShouldAnnotateOptionDecomposition(boolean toggle)
toggle
- whether to annotate the primitive actions of options with the calling option's name.public EpisodeAnalysis evaluateBehavior(State s, RewardFunction rf, TerminalFunction tf)
s
- the state from which to roll out the policyrf
- the reward function used to track rewards accumulated during the episodetf
- the terminal function defining when the policy should stop being followed.public EpisodeAnalysis evaluateBehavior(State s, RewardFunction rf, TerminalFunction tf, int maxSteps)
s
- the state from which to roll out the policyrf
- the reward function used to track rewards accumulated during the episodetf
- the terminal function defining when the policy should stop being followed.maxSteps
- the maximum number of steps to take before terminating the policy rollout.public EpisodeAnalysis evaluateBehavior(State s, RewardFunction rf, int numSteps)
s
- the state from which to roll out the policyrf
- the reward function used to track rewards accumulated during the episodenumSteps
- the number of steps to take before terminating the policy rollout