  We propose a new, flexible approach for dynamically maintaining successful
mutation rates in evolutionary algorithms using $k$-bit flip mutations. The
algorithm adds successful mutation rates to an archive of promising rates that
are favored in subsequent steps. Rates expire when their number of unsuccessful
trials has exceeded a threshold, while rates currently not present in the
archive can enter it in two ways: (i) via user-defined minimum selection
probabilities for rates combined with a successful step or (ii) via a
stagnation detection mechanism increasing the value for a promising rate after
the current bit-flip neighborhood has been explored with high probability. For
the minimum selection probabilities, we suggest different options, including
heavy-tailed distributions.
  We conduct rigorous runtime analysis of the flexible evolutionary algorithm
on the OneMax and Jump functions, on general unimodal functions, on minimum
spanning trees, and on a class of hurdle-like functions with varying hurdle
width that benefit particularly from the archive of promising mutation rates.
In all cases, the runtime bounds are close to or even outperform the best known
results for both stagnation detection and heavy-tailed mutations.
