Source code for metaheuristic_designer.parameter_schedules.cosine_schedule

"""
Schedule that modulates a value with a cosine wave.
"""

import numpy as np
from ..schedulable_parameter import SchedulableParameter


[docs] class CosineSchedule(SchedulableParameter): """Schedule that models the parameter as a cosine wave in the range [0, 1]. Parameters ---------- amplitude : float Amplitude of the cosine wave. frequency : float Frequency of the cosine wave. phase : float Phase of the cosine wave. offset : float Offset of the cosine wave. """ def __init__(self, amplitude: float = 1, frequency: float = None, phase: float = 0, offset: float = 0): super().__init__(random_state=None) self.amplitude = amplitude self.frequency = frequency if frequency is not None else 2 * np.pi self.phase = phase self.offset = offset
[docs] def evaluate(self, progress: float) -> float: return self.amplitude * np.cos(self.frequency * progress + self.phase) + self.offset