# {py:mod}`evorl.ec.optimizers` ```{py:module} evorl.ec.optimizers ``` ```{autodoc2-docstring} evorl.ec.optimizers :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Package Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ARS ` - ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ERLGA ` - * - {py:obj}`ERLGAMod ` - * - {py:obj}`EvoOptimizer ` - ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.EvoOptimizer :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ExponentialScheduleSpec ` - ```{autodoc2-docstring} evorl.ec.optimizers.utils.ExponentialScheduleSpec :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`OpenES ` - ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`OpenESNoiseTable ` - ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`SepCEM ` - ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`VanillaES ` - ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`VanillaESMod ` - ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaESMod :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`VanillaGA ` - ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA :parser: autodoc2_docstrings_parser :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ECState ` - ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.ECState :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} ARS :canonical: evorl.ec.optimizers.ars.ARS Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.ars.ARSState) -> tuple[evorl.types.Params, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.ars.ARS.ask ```` ````{py:attribute} fitness_std_eps :canonical: evorl.ec.optimizers.ars.ARS.fitness_std_eps :type: float :value: > 1e-08 ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.fitness_std_eps :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(mean: evorl.types.Params, key: chex.PRNGKey) -> evorl.ec.optimizers.ars.ARSState :canonical: evorl.ec.optimizers.ars.ARS.init ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} lr :canonical: evorl.ec.optimizers.ars.ARS.lr :type: float :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.lr :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} noise_std :canonical: evorl.ec.optimizers.ars.ARS.noise_std :type: float :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.noise_std :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_elites :canonical: evorl.ec.optimizers.ars.ARS.num_elites :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.num_elites :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} optimizer :canonical: evorl.ec.optimizers.ars.ARS.optimizer :type: optax.GradientTransformation :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.optimizer :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} optimizer_name :canonical: evorl.ec.optimizers.ars.ARS.optimizer_name :type: str :value: > 'sgd' ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.optimizer_name :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.ars.ARS.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.ars.ARS.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.ars.ARSState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.ars.ARSState] :canonical: evorl.ec.optimizers.ars.ARS.tell ```` ````` ````{py:data} ECState :canonical: evorl.ec.optimizers.ec_optimizer.ECState :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.ECState :parser: autodoc2_docstrings_parser ``` ```` `````{py:class} ERLGA :canonical: evorl.ec.optimizers.erl_ga.ERLGA Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ````{py:method} ask(state: evorl.ec.optimizers.erl_ga.ERLGAState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.erl_ga.ERLGAState] :canonical: evorl.ec.optimizers.erl_ga.ERLGA.ask ```` ````{py:attribute} enable_crossover :canonical: evorl.ec.optimizers.erl_ga.ERLGA.enable_crossover :type: bool :value: > True ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.enable_crossover :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(pop, key) -> evorl.ec.optimizers.erl_ga.ERLGAState :canonical: evorl.ec.optimizers.erl_ga.ERLGA.init ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mut_strength :canonical: evorl.ec.optimizers.erl_ga.ERLGA.mut_strength :type: float :value: > 0.1 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.mut_strength :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_crossover_frac :canonical: evorl.ec.optimizers.erl_ga.ERLGA.num_crossover_frac :type: float :value: > 0.1 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.num_crossover_frac :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_elites :canonical: evorl.ec.optimizers.erl_ga.ERLGA.num_elites :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.num_elites :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_mutation_frac :canonical: evorl.ec.optimizers.erl_ga.ERLGA.num_mutation_frac :type: float :value: > 0.1 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.num_mutation_frac :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.erl_ga.ERLGA.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} reset_prob :canonical: evorl.ec.optimizers.erl_ga.ERLGA.reset_prob :type: float :value: > 0.1 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.reset_prob :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} super_mut_prob :canonical: evorl.ec.optimizers.erl_ga.ERLGA.super_mut_prob :type: float :value: > 0.05 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.super_mut_prob :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} super_mut_strength :canonical: evorl.ec.optimizers.erl_ga.ERLGA.super_mut_strength :type: float :value: > 10.0 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.super_mut_strength :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.erl_ga.ERLGAState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.erl_ga.ERLGAState] :canonical: evorl.ec.optimizers.erl_ga.ERLGA.tell ```` ````{py:attribute} tournament_size :canonical: evorl.ec.optimizers.erl_ga.ERLGA.tournament_size :type: int :value: > 3 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.tournament_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} vec_relative_prob :canonical: evorl.ec.optimizers.erl_ga.ERLGA.vec_relative_prob :type: float :value: > 0.0 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.vec_relative_prob :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} weight_max_magnitude :canonical: evorl.ec.optimizers.erl_ga.ERLGA.weight_max_magnitude :type: float :value: > 1000000.0 ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGA.weight_max_magnitude :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ERLGAMod :canonical: evorl.ec.optimizers.erl_ga.ERLGAMod Bases: {py:obj}`evorl.ec.optimizers.erl_ga.ERLGA` ````{py:attribute} external_size :canonical: evorl.ec.optimizers.erl_ga.ERLGAMod.external_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGAMod.external_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(pop, key) -> evorl.ec.optimizers.erl_ga.ERLGAModState :canonical: evorl.ec.optimizers.erl_ga.ERLGAMod.init ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGAMod.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell_external(state: evorl.ec.optimizers.erl_ga.ERLGAModState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.erl_ga.ERLGAModState] :canonical: evorl.ec.optimizers.erl_ga.ERLGAMod.tell_external ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGAMod.tell_external :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} EvoOptimizer :canonical: evorl.ec.optimizers.ec_optimizer.EvoOptimizer Bases: {py:obj}`evorl.types.PyTreeNode` ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.EvoOptimizer :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.ec_optimizer.ECState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.ec_optimizer.EvoOptimizer.ask :abstractmethod: ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.EvoOptimizer.ask :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(*args, **kwargs) -> evorl.ec.optimizers.ec_optimizer.ECState :canonical: evorl.ec.optimizers.ec_optimizer.EvoOptimizer.init :abstractmethod: ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.EvoOptimizer.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.ec_optimizer.ECState, fitnesses: chex.ArrayTree) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.ec_optimizer.EvoOptimizer.tell :abstractmethod: ```{autodoc2-docstring} evorl.ec.optimizers.ec_optimizer.EvoOptimizer.tell :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ExponentialScheduleSpec :canonical: evorl.ec.optimizers.utils.ExponentialScheduleSpec Bases: {py:obj}`evorl.types.PyTreeData` ```{autodoc2-docstring} evorl.ec.optimizers.utils.ExponentialScheduleSpec :parser: autodoc2_docstrings_parser ``` ````{py:attribute} decay :canonical: evorl.ec.optimizers.utils.ExponentialScheduleSpec.decay :type: float :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.utils.ExponentialScheduleSpec.decay :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} final :canonical: evorl.ec.optimizers.utils.ExponentialScheduleSpec.final :type: float :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.utils.ExponentialScheduleSpec.final :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} init :canonical: evorl.ec.optimizers.utils.ExponentialScheduleSpec.init :type: float :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.utils.ExponentialScheduleSpec.init :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} OpenES :canonical: evorl.ec.optimizers.openes.OpenES Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.ec_optimizer.ECState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.openes.OpenES.ask ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.ask :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} fitness_shaping_fn :canonical: evorl.ec.optimizers.openes.OpenES.fitness_shaping_fn :type: collections.abc.Callable[[chex.Array], chex.Array] :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.fitness_shaping_fn :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(mean: evorl.types.Params, key: chex.PRNGKey) -> evorl.ec.optimizers.ec_optimizer.ECState :canonical: evorl.ec.optimizers.openes.OpenES.init ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} lr_schedule :canonical: evorl.ec.optimizers.openes.OpenES.lr_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.lr_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mirror_sampling :canonical: evorl.ec.optimizers.openes.OpenES.mirror_sampling :type: bool :value: > True ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.mirror_sampling :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} noise_std_schedule :canonical: evorl.ec.optimizers.openes.OpenES.noise_std_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.noise_std_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} optimizer :canonical: evorl.ec.optimizers.openes.OpenES.optimizer :type: optax.GradientTransformation :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.optimizer :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} optimizer_name :canonical: evorl.ec.optimizers.openes.OpenES.optimizer_name :type: str :value: > 'adam' ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.optimizer_name :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.openes.OpenES.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.ec_optimizer.ECState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.openes.OpenESState] :canonical: evorl.ec.optimizers.openes.OpenES.tell ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.tell :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} weight_decay :canonical: evorl.ec.optimizers.openes.OpenES.weight_decay :type: float | None :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenES.weight_decay :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} OpenESNoiseTable :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.ec_optimizer.ECState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.ask ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.ask :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} fitness_shaping_fn :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.fitness_shaping_fn :type: collections.abc.Callable[[chex.Array], chex.Array] :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.fitness_shaping_fn :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(mean: evorl.types.Params, key: chex.PRNGKey) -> evorl.ec.optimizers.ec_optimizer.ECState :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.init ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} lr_schedule :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.lr_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.lr_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mirror_sampling :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.mirror_sampling :type: bool :value: > True ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.mirror_sampling :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} noise_std_schedule :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.noise_std_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.noise_std_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} noise_table_size :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.noise_table_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.noise_table_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} optimizer :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.optimizer :type: optax.GradientTransformation :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.optimizer :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} optimizer_name :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.optimizer_name :type: str :value: > 'adam' ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.optimizer_name :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.ec_optimizer.ECState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.openes.OpenESState] :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.tell ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.tell :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} weight_decay :canonical: evorl.ec.optimizers.openes.OpenESNoiseTable.weight_decay :type: float | None :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.openes.OpenESNoiseTable.weight_decay :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} SepCEM :canonical: evorl.ec.optimizers.cem.SepCEM Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.cem.SepCEMState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.cem.SepCEM.ask ```` ````{py:attribute} cov_eps_schedule :canonical: evorl.ec.optimizers.cem.SepCEM.cov_eps_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.cov_eps_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} elite_weights :canonical: evorl.ec.optimizers.cem.SepCEM.elite_weights :type: chex.Array :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.elite_weights :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(mean: evorl.types.Params, key: chex.PRNGKey) -> evorl.ec.optimizers.cem.SepCEMState :canonical: evorl.ec.optimizers.cem.SepCEM.init ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mirror_sampling :canonical: evorl.ec.optimizers.cem.SepCEM.mirror_sampling :type: bool :value: > False ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.mirror_sampling :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_elites :canonical: evorl.ec.optimizers.cem.SepCEM.num_elites :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.num_elites :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.cem.SepCEM.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} rank_weight_shift :canonical: evorl.ec.optimizers.cem.SepCEM.rank_weight_shift :type: float :value: > 1.0 ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.rank_weight_shift :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.cem.SepCEMState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.cem.SepCEMState] :canonical: evorl.ec.optimizers.cem.SepCEM.tell ```` ````{py:attribute} weighted_update :canonical: evorl.ec.optimizers.cem.SepCEM.weighted_update :type: bool :value: > True ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.weighted_update :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} VanillaES :canonical: evorl.ec.optimizers.vanilla_es.VanillaES Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.vanilla_es.VanillaESState) -> tuple[evorl.types.Params, evorl.ec.optimizers.vanilla_es.VanillaESState] :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.ask ```` ````{py:attribute} elite_weights :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.elite_weights :type: chex.Array :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES.elite_weights :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(mean: evorl.types.Params, key: chex.PRNGKey) -> evorl.ec.optimizers.vanilla_es.VanillaESState :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.init ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} noise_std_schedule :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.noise_std_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES.noise_std_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_elites :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.num_elites :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES.num_elites :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaES.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.vanilla_es.VanillaESState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.vanilla_es.VanillaESState] :canonical: evorl.ec.optimizers.vanilla_es.VanillaES.tell ```` ````` `````{py:class} VanillaESMod :canonical: evorl.ec.optimizers.vanilla_es.VanillaESMod Bases: {py:obj}`evorl.ec.optimizers.vanilla_es.VanillaES` ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaESMod :parser: autodoc2_docstrings_parser ``` ````{py:attribute} external_size :canonical: evorl.ec.optimizers.vanilla_es.VanillaESMod.external_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaESMod.external_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mix_strategy :canonical: evorl.ec.optimizers.vanilla_es.VanillaESMod.mix_strategy :type: str :value: > 'always' ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaESMod.mix_strategy :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell_external(state: evorl.ec.optimizers.vanilla_es.VanillaESState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.vanilla_es.VanillaESState] :canonical: evorl.ec.optimizers.vanilla_es.VanillaESMod.tell_external ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_es.VanillaESMod.tell_external :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} VanillaGA :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.vanilla_ga.VanillaGAState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.vanilla_ga.VanillaGAState] :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.ask ```` ````{py:attribute} enable_crossover :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.enable_crossover :type: bool :value: > True ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.enable_crossover :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(pop: chex.ArrayTree, key: chex.PRNGKey) -> evorl.ec.optimizers.vanilla_ga.VanillaGAState :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.init ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} matrix_num_mutation_frac :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.matrix_num_mutation_frac :type: float :value: > 0.01 ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.matrix_num_mutation_frac :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mut_strength :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.mut_strength :type: float :value: > 0.1 ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.mut_strength :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_crossover_frac :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.num_crossover_frac :type: float :value: > 0.1 ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.num_crossover_frac :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_elites :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.num_elites :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.num_elites :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.vanilla_ga.VanillaGAState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.vanilla_ga.VanillaGAState] :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.tell ```` ````{py:attribute} tournament_size :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.tournament_size :type: int :value: > 2 ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.tournament_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} vector_num_mutation_frac :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.vector_num_mutation_frac :type: float :value: > 0.0 ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.vector_num_mutation_frac :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} weight_max_magnitude :canonical: evorl.ec.optimizers.vanilla_ga.VanillaGA.weight_max_magnitude :type: float :value: > 1000000.0 ```{autodoc2-docstring} evorl.ec.optimizers.vanilla_ga.VanillaGA.weight_max_magnitude :parser: autodoc2_docstrings_parser ``` ```` `````