# {py:mod}`evorl.ec.optimizers.erl_ga` ```{py:module} evorl.ec.optimizers.erl_ga ``` ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ERLGA ` - * - {py:obj}`ERLGAMod ` - * - {py:obj}`ERLGAModState ` - * - {py:obj}`ERLGAState ` - ```` ### API `````{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} ERLGAModState :canonical: evorl.ec.optimizers.erl_ga.ERLGAModState Bases: {py:obj}`evorl.ec.optimizers.erl_ga.ERLGAState` ````{py:attribute} external_pop :canonical: evorl.ec.optimizers.erl_ga.ERLGAModState.external_pop :type: None | chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGAModState.external_pop :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ERLGAState :canonical: evorl.ec.optimizers.erl_ga.ERLGAState Bases: {py:obj}`evorl.types.PyTreeData` ````{py:attribute} key :canonical: evorl.ec.optimizers.erl_ga.ERLGAState.key :type: chex.PRNGKey :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGAState.key :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop :canonical: evorl.ec.optimizers.erl_ga.ERLGAState.pop :type: chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.erl_ga.ERLGAState.pop :parser: autodoc2_docstrings_parser ``` ```` `````