class_docstr: Additive Ornstein-Uhlenbeck process.
  
  Used in https://arxiv.org/abs/1509.02971 for exploration.
  
  Args:
      mu (float): Mean of the OU process
      theta (float): Friction to pull towards the mean
      sigma (float or ndarray): Scale of noise
      start_with_mu (bool): Start the process without noise
code: def evolve(self):
      # dx = theta (mu - x) + sigma dW
      # for a Wiener process W
      noise = np.random.normal(
          size=self.ou_state.shape, loc=0, scale=self.sigma
      )
      self.ou_state += self.theta * (self.mu - self.ou_state) + noise
  
file_path: pfrl/pfrl/explorers/additive_ou.py
imports: from logging import getLogger
  import numpy
  from pfrl import explorer
label_desc: Use image node_id 2 for calling the AdditiveOU obj's underlying member method code with example usage: obj.evolve() without return types