public class EpsilonGreedy extends Policy implements PlannerDerivedPolicy
Policy.ActionProb, Policy.PolicyUndefinedException, Policy.RandomPolicy
Modifier and Type  Field and Description 

protected double 
epsilon 
protected QComputablePlanner 
qplanner 
protected java.util.Random 
rand 
annotateOptionDecomposition, evaluateDecomposesOptions
Constructor and Description 

EpsilonGreedy(double epsilon)
Initializes with the value of epsilon, where epsilon is the probability of taking a random action.

EpsilonGreedy(QComputablePlanner planner,
double epsilon)
Initializes with the QComputablePlanner to use and the value of epsilon to use, where epsilon is the probability of taking a random action.

Modifier and Type  Method and Description 

AbstractGroundedAction 
getAction(State s)
This method will return an action sampled by the policy for the given state.

java.util.List<Policy.ActionProb> 
getActionDistributionForState(State s)
This method will return action probability distribution defined by the policy.

double 
getEpsilon()
Returns the epsilon value, where epsilon is the probability of taking a random action.

boolean 
isDefinedFor(State s)
Specifies whether this policy is defined for the input state.

boolean 
isStochastic()
Indicates whether the policy is stochastic or deterministic.

void 
setEpsilon(double epsilon)
Sets the epsilon value, where epsilon is the probability of taking a random action.

void 
setPlanner(OOMDPPlanner planner)
Sets the planner whose results affect this policy.

evaluateBehavior, evaluateBehavior, evaluateBehavior, evaluateMethodsShouldAnnotateOptionDecomposition, evaluateMethodsShouldDecomposeOption, getDeterministicPolicy, getProbOfAction, getProbOfActionGivenDistribution, getProbOfActionGivenDistribution, sampleFromActionDistribution
protected QComputablePlanner qplanner
protected double epsilon
protected java.util.Random rand
public EpsilonGreedy(double epsilon)
epsilon
 the probability of taking a random action.public EpsilonGreedy(QComputablePlanner planner, double epsilon)
planner
 the QComputablePlanner to useepsilon
 the probability of taking a random action.public double getEpsilon()
public void setEpsilon(double epsilon)
epsilon
 the probability of taking a random action.public void setPlanner(OOMDPPlanner planner)
PlannerDerivedPolicy
setPlanner
in interface PlannerDerivedPolicy
public AbstractGroundedAction getAction(State s)
Policy
public java.util.List<Policy.ActionProb> getActionDistributionForState(State s)
Policy
getActionDistributionForState
in class Policy
s
 the state for which an action distribution should be returnedpublic boolean isStochastic()
Policy
isStochastic
in class Policy
public boolean isDefinedFor(State s)
Policy
isDefinedFor
in class Policy
s
 the input state to test for whether this policy is definedState
s, false otherwise.