feat(algorithms): add TabuSearch with a configurable neighbor generator
Glover 1986 tabu search for single-objective problems. Generic over decision type — the user supplies a neighbor-generator closure that produces a finite list of candidate moves from the current incumbent (e.g. all 2-swaps for a permutation, or N Gaussian-perturbed copies of a real vector). Each iteration picks the best non-tabu neighbor (with an aspiration override that lets a tabu move through if it beats the best-seen-ever incumbent) and adds the chosen move's decision to a fixed-size FIFO tabu list. Single-objective only. Tracks the best-seen-ever incumbent across the run, returned as the result. Generic over the decision `D: Hash + Eq` so the tabu list can match by full decision (simple and correct; move-based tabu is left for users to implement themselves via a custom decision wrapper).
This commit is contained in:
@@ -12,6 +12,7 @@ pub mod particle_swarm;
|
||||
pub mod random_search;
|
||||
pub mod simulated_annealing;
|
||||
pub mod spea2;
|
||||
pub mod tabu_search;
|
||||
|
||||
pub use differential_evolution::*;
|
||||
pub use genetic_algorithm::*;
|
||||
@@ -24,3 +25,4 @@ pub use particle_swarm::*;
|
||||
pub use random_search::*;
|
||||
pub use simulated_annealing::*;
|
||||
pub use spea2::*;
|
||||
pub use tabu_search::*;
|
||||
|
||||
Reference in New Issue
Block a user