Skip to content

Modulus design

smac.random_design.modulus_design #

DynamicModulusRandomDesign #

DynamicModulusRandomDesign(
    start_modulus: float = 2.0,
    modulus_increment: float = 0.3,
    end_modulus: float = inf,
    seed: int = 0,
)

Bases: AbstractRandomDesign

Interleave a random configuration, decreasing the fraction of random configurations over time.

PARAMETER DESCRIPTION
start_modulus

Initially, every modulus-th configuration will be at random.

TYPE: float, defaults to 2.0 DEFAULT: 2.0

modulus_increment

Increase modulus by this amount in every iteration.

TYPE: float, defaults to 0.3 DEFAULT: 0.3

end_modulus

The maximum modulus ever used. If the value is reached before the optimization is over, it is not further increased. If it is not reached before the optimization is over, there will be no adjustment to make sure that the end_modulus is reached.

TYPE: float, defaults to np.inf DEFAULT: inf

seed

Integer used to initialize the random state. This class does not use the seed.

TYPE: int, defaults to 0 DEFAULT: 0

Source code in smac/random_design/modulus_design.py
def __init__(
    self, start_modulus: float = 2.0, modulus_increment: float = 0.3, end_modulus: float = np.inf, seed: int = 0
):
    super().__init__(seed)
    assert start_modulus > 0
    assert modulus_increment > 0
    assert end_modulus > 0
    assert end_modulus > start_modulus

    if start_modulus <= 1.0 and modulus_increment <= 0.0:
        logger.warning("Using SMAC with random configurations only. ROAR is the better choice for this.")

    self._modulus = start_modulus
    self._start_modulus = start_modulus
    self._modulus_increment = modulus_increment
    self._end_modulus = end_modulus

ModulusRandomDesign #

ModulusRandomDesign(modulus: float = 2.0, seed: int = 0)

Bases: AbstractRandomDesign

Interleave a random configuration after a constant number of configurations found by Bayesian optimization.

PARAMETER DESCRIPTION
modulus

Every modulus-th configuration will be at random.

TYPE: float DEFAULT: 2.0

seed

Integer used to initialize random state. This class does not use the seed.

TYPE: int DEFAULT: 0

Source code in smac/random_design/modulus_design.py
def __init__(self, modulus: float = 2.0, seed: int = 0):
    super().__init__(seed)
    assert modulus > 0
    if modulus <= 1.0:
        logger.warning("Using SMAC with random configurations only. ROAR is the better choice for this.")

    self._modulus = modulus

next_iteration #

next_iteration() -> None

Indicates the beginning of the next SMBO iteration.

Source code in smac/random_design/abstract_random_design.py
def next_iteration(self) -> None:
    """Indicates the beginning of the next SMBO iteration."""
    pass