pybop.optimisers._simulated_annealing#
Classes#
Simulated Annealing optimiser, implementing the classic temperature-based |
Module Contents#
- class pybop.optimisers._simulated_annealing.SimulatedAnnealingImpl(x0, sigma0=0.05, boundaries=None)[source]#
Bases:
pints.OptimiserSimulated Annealing optimiser, implementing the classic temperature-based probabilistic optimisation method.
This method uses a temperature schedule to control the probability of accepting worse solutions as it explores the parameter space. As the temperature decreases, the algorithm becomes more selective, eventually converging to a local or global optimum.
The probability of accepting a worse solution is given by:
.. math::
P(accept) = exp(-(f_{ ext{new}} - fold)/T)
The temperature decreases according to the cooling schedule:
.. math::
T = T0 * lpha^k
where: - :math: T0 is the initial temperature - :math: lpha is the cooling rate (between 0 and 1) - :math: k is the iteration number
- Parameters:
x0 (numpy array) – Initial position
sigma0 (float) – Initial step size
boundaries (dict, optional) – Optional boundaries for parameters