polarcbo.scheduler.beta_eff

class polarcbo.scheduler.beta_eff(opt, eta=1.0, beta_max=100000.0, factor=1.05)[source]

Bases: scheduler_base

beta_eff scheduler class

This class implements a scheduler for the \(\beta\)-parameter based on the effective number of particles. The \(\beta\)-parameter is updated according to the rule

\[\begin{split}\beta_{k+1} = \begin{cases} \beta_k \cdot r & \text{if } J_{eff} \geq \eta \cdot J \\ \beta_k / r & \text{otherwise} \end{cases}\end{split}\]

where \(r\), \(\eta\) are parameters and \(J\) is the number of particles. The effictive number of particles is defined as

\[J_{eff} = \frac{1}{\sum_{i=1}^J w_i^2}\]

where \(w_i\) are the weights of the particles. This was, e.g., employed in [1].

Parameters:
  • opt (object) – The optimizer for which the \(\beta\)-parameter should be updated

  • eta (float, optional) – The parameter \(\eta\) of the scheduler. The default is 1.0.

  • beta_max (float, optional) – The maximum value of the \(\beta\)-parameter. The default is 100000.0.

  • factor (float, optional) – The parameter \(r\) of the scheduler. The default is 1.05.

References