class_docstr: ϵ-greedy exploration strategy.
  
  Select action based on the value of ϵ. ϵ will decrease from
  max_epsilon to min_epsilon within decay_ratio * total_timesteps.
  
  At state s, with probability
  1 − ϵ: select action = argmax Q(s, a)
  ϵ    : select a random action from an uniform distribution.
  
  Args:
      env_spec (garage.envs.env_spec.EnvSpec): Environment specification.
      policy (garage.Policy): Policy to wrap.
      total_timesteps (int): Total steps in the training, equivalent to
          max_episode_length * n_epochs.
      max_epsilon (float): The maximum(starting) value of epsilon.
      min_epsilon (float): The minimum(terminal) value of epsilon.
      decay_ratio (float): Fraction of total steps for epsilon decay.
class_docstr_tok: ["\u03f5-greedy","exploration","strategy",".","Select","action","based","on","the","value","of","\u03f5.","\u03f5","will","decrease","from","max_epsilon","to","min_epsilon","within","decay_ratio","*","total_timesteps",".","At","state","s",",","with","probability","1","\u2212","\u03f5",":","select","action","=","argmax","Q","(","s",",","a",")","\u03f5",":","select","a","random","action","from","an","uniform","distribution",".","Args",":","env_spec","(","garage.envs.env_spec.EnvSpec",")",":","Environment","specification",".","policy","(","garage.Policy",")",":","Policy","to","wrap",".","total_timesteps","(","int",")",":","Total","steps","in","the","training",",","equivalent","to","max_episode_length","*","n_epochs",".","max_epsilon","(","float",")",":","The","maximum","(","starting",")","value","of","epsilon",".","min_epsilon","(","float",")",":","The","minimum","(","terminal",")","value","of","epsilon",".","decay_ratio","(","float",")",":","Fraction","of","total","steps","for","epsilon","decay","."]
code: def __init__(
      self,
      env_spec,
      policy,
      *,
      total_timesteps,
      max_epsilon=1.0,
      min_epsilon=0.02,
      decay_ratio=0.1,
  ):
      super().__init__(policy)
      self._env_spec = env_spec
      self._max_epsilon = max_epsilon
      self._min_epsilon = min_epsilon
      self._decay_period = int(total_timesteps * decay_ratio)
      self._action_space = env_spec.action_space
      self._decrement = (
          self._max_epsilon - self._min_epsilon
      ) / self._decay_period
      self._total_env_steps = 0
      self._last_total_env_steps = 0
  
file_path: garage/src/garage/np/exploration_policies/epsilon_greedy_policy.py
imports: from dowel import tabular
  import numpy
  from garage.np.exploration_policies.exploration_policy import ExplorationPolicy
label_desc: Use image node_id 1 to create a new EpsilonGreedyPolicy object from inherited base classes: ExplorationPolicy with example: obj = EpsilonGreedyPolicy(env_spec, policy)