Source code for metaheuristic_designer.encodings.special.self_adapting_ES_encoding
"""
Encoding for self-adapting Evolution Strategies that appends mutation strength parameters.
"""
from __future__ import annotations
from typing import Optional
from ..parameter_extending_encoding import ParameterExtendingEncoding
from ...encoding import Encoding
[docs]
class SelfAdaptingESEncoding(ParameterExtendingEncoding):
"""
Encoding for self-adapting Evolution Strategies.
Appends one or more mutation strength values (``F``) to the solution
vector. When ``single_sigma=True`` a single step size is shared by
all dimensions; otherwise each dimension gets its own step size.
Parameters
----------
dimension : int
Number of decision variables.
single_sigma : bool, optional
If ``True`` (default), a single ``F`` value is added.
If ``False``, ``dimension`` values are added.
base_encoding : Encoding, optional
Encoding applied to the solution part. Defaults to
:class:`DefaultEncoding`.
"""
def __init__(self, dimension: int, single_sigma: bool = True, base_encoding: Optional[Encoding] = None):
self.single_sigma = single_sigma
if single_sigma:
named_params = [("F", 1)]
else:
named_params = [("F", dimension)]
super().__init__(dimension, named_params, base_encoding)