//! This module contains several [`TabuImprover`] implementation, which define the strategy to
//! explore the neighborhood of a solution in each iteration of the
//! [`TabuSearchSolver`][super::TabuSearchSolver].
use crateEvaluatedSolution;
use VecDeque;
pub use TabuMinimizer;
/// Determines for a given solution (as [`EvaluatedSolution`]) and a tabu list the best neighbor,
/// that are not tabu, together with new tabus to add to the tabu list.
/// * A solver is equipped with only one [`TabuImprover`].
/// * The [`TabuImprover`] is invoked in each iteration of the tabu search.
/// * Only returns `None` if there are no neighbors.