The current BasinHoppingSamplerConfig uses max_perturbations_without_improvement as the per-run stopping criterion. This was introduced in #11 to better align with the approach described in the paper:
Jason Adair, Gabriela Ochoa, and Katherine M. Malan. 2019. Local optima networks for continuous fitness landscapes. In Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO '19). Association for Computing Machinery, New York, NY, USA, 1407–1414. https://doi.org/10.1145/3319619.3326852
While this improves fidelity to the paper, the previous n_iterations approach has advantages worth reconsidering:
- Predictability: the user knows exactly how many local minimizations will be performed per run, making total evaluation budget easy to reason about (
n_runs × n_iterations).
- Reproducability: behaviour does not vary based on landscape structure - every run performs a fixed number of perturbations regardless of improvement history, which makes it easier to reproduce and compare results across different problems and configurations.
For now the max_perturbations_without_improvement approach is the only stopping condition available. In the near future, addition of n_iterations as an alternative termination strategy pr replacement of current approach, should be done.