def METHOD_NAME(self):
    """
    Initialises the optimiser for the first iteration.
    """
    assert not self._running
    # Shorthands
    d = self._n_parameters
    n = self._population_size
    # Learning rates
    # TODO Allow changing before run() with method call
    self._eta_mu = 1
    # TODO Allow changing before run() with method call
    self._eta_sigmas = 0.2 * (3 + np.log(d)) * d ** -0.5
    # Pre-calculated utilities
    self._us = np.maximum(0, np.log(n / 2 + 1) - np.log(1 + np.arange(n)))
    self._us /= np.sum(self._us)
    self._us -= 1 / n
    # Center of distribution
    self._mu = np.array(self._x0, copy=True)
    # Initial square root of covariance matrix
    self._sigmas = np.array(self._sigma0, copy=True)
    # Update optimiser state
    self._running = True