public class EGreedyJointPolicy extends MAQSourcePolicy
Policy.ActionProb, Policy.PolicyUndefinedException, Policy.RandomPolicy
Modifier and Type | Field and Description |
---|---|
protected double |
epsilon
The epsilon parameter specifying how often random joint actions are returned
|
protected MultiAgentQSourceProvider |
qSourceProvider
The multi-agent q-source provider
|
protected java.util.Random |
rand
A random object used for sampling
|
protected java.lang.String |
targetAgentQName
The agent whose q-values dictate which joint actions to return
|
agentsInJointPolicy, agentsSyncrhonizedSoFar, lastSyncedState, lastSynchronizedJointAction
annotateOptionDecomposition, evaluateDecomposesOptions
Constructor and Description |
---|
EGreedyJointPolicy(double epsilon)
Initializes for a given epsilon value.
|
EGreedyJointPolicy(MultiAgentQLearning actingAgent,
double epsilon)
Initializes for a multi-agent Q-learning object and epsilon value.
|
Modifier and Type | Method and Description |
---|---|
JointPolicy |
copy()
Creates a copy of this joint policy and returns it.
|
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.
|
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 |
setQSourceProvider(MultiAgentQSourceProvider provider)
Sets the
MultiAgentQSourceProvider that will be used to define this object's joint policy. |
void |
setTargetAgent(java.lang.String agentName)
Sets the target privledged agent from which this joint policy is defined.
|
getAgentsInJointPolicy, getAgentSynchronizedActionSelection, getAllJointActions, setAgentsInJointPolicy, setAgentsInJointPolicy, setAgentsInJointPolicyFromWorld
evaluateBehavior, evaluateBehavior, evaluateBehavior, evaluateMethodsShouldAnnotateOptionDecomposition, evaluateMethodsShouldDecomposeOption, getDeterministicPolicy, getProbOfAction, getProbOfActionGivenDistribution, getProbOfActionGivenDistribution, sampleFromActionDistribution
protected MultiAgentQSourceProvider qSourceProvider
protected double epsilon
protected java.util.Random rand
protected java.lang.String targetAgentQName
public EGreedyJointPolicy(double epsilon)
JointPolicy.setAgentsInJointPolicy(java.util.Map)
,
setTargetAgent(String)
, and setQSourceProvider(MultiAgentQSourceProvider)
before the policy can be queried.
Note that the MultiAgentQLearning
and MultiAgentVFPlanningAgent
agents may do this themselves. Consult the documentation
to check.epsilon
- the fraction of the time [0, 1] that the agent selections random actions.public EGreedyJointPolicy(MultiAgentQLearning actingAgent, double epsilon)
JointPolicy.setAgentsInJointPolicy(java.util.Map)
. Note that the MultiAgentQLearning
and MultiAgentVFPlanningAgent
agents may do this themselves. Consult the documentation to check.actingAgent
- the agent whose Q-values are maximized.epsilon
- the fraction of the time [0, 1] that the agent selections random actions.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.public void setQSourceProvider(MultiAgentQSourceProvider provider)
MAQSourcePolicy
MultiAgentQSourceProvider
that will be used to define this object's joint policy.setQSourceProvider
in class MAQSourcePolicy
provider
- the MultiAgentQSourceProvider
that will be used to define this object's joint policy.public void setTargetAgent(java.lang.String agentName)
JointPolicy
setTargetAgent
in class JointPolicy
agentName
- the name of the target agent.public JointPolicy copy()
JointPolicy
copy
in class JointPolicy