class_docstr: Augmented Random Search 
  Mania et al. (2018) https://arxiv.org/pdf/1803.07055.pdf
class_docstr_tok: ["Augmented","Random","Search","Mania","et","al",".","(","2018",")","https",":","\/\/arxiv.org\/pdf\/1803.07055.pdf"]
code: def __init__(
      self,
      param_size,
      pop_size,
      elite_ratio,
      decay_stdev=0.999,
      limit_stdev=0.01,
      init_stdev=0.03,
      seed=0,
      version=1,
      optimizer="sgd",
      optimizer_config={},
      logger: logging.Logger = None,
  ):
      if logger is None:
          self.logger = create_logger(name="ARS_native")
      else:
          self.logger = logger
  
      assert (
          pop_size % 2 == 0
      )  # total perturbations considering positive and negative directions
      self.pop_size = pop_size
      assert 0 < elite_ratio <= 1
      self.elite_ratio = elite_ratio
      self.elite_pop_size = int(self.pop_size / 2 * self.elite_ratio)
      self.directions = pop_size // 2
      self.params_population = None
      self.param_size = param_size
  
      self.noise = None
      self.stdev = init_stdev
      self.rand_key, _key = jax.random.split(
          key=jax.random.PRNGKey(seed=seed), num=2
      )
      init_min, init_max = 0, 0
      self.mean_params = jax.random.uniform(
          _key, (param_size,), minval=init_min, maxval=init_max
      )
  
      self.version = version
      self.decay_stdev = decay_stdev
      self.limit_stdev = limit_stdev
      self.opt_state, self.opt_update, self.opt_get_params = get_optim(
          optimizer, optimizer_config, self.mean_params
      )
      self._t = 0
  
      self.lr_decay_steps = optimizer_config.get("lr_decay_steps", 1)
  
file_path: evojax/evojax/algo/ars_native.py
imports: import jax
  import jax.numpy
  import numpy
  from evojax.algo.base import NEAlgorithm
  from typing import Union
  import logging
  from evojax.util import create_logger
label_desc: Use image node_id 1 to create a new ARS_native object from inherited base classes: NEAlgorithm with example: obj = ARS_native(param_size, pop_size, elite_ratio, decay_stdev, limit_stdev, init_stdev, seed, version, optimizer, optimizer_config, logger)