solverforge_solver/phase/localsearch/
mod.rs1mod acceptor;
7mod forager;
8mod phase;
9
10pub use acceptor::{
11 Acceptor, DiversifiedLateAcceptanceAcceptor, EntityTabuAcceptor, GreatDelugeAcceptor,
12 HillClimbingAcceptor, LateAcceptanceAcceptor, MoveTabuAcceptor, SimulatedAnnealingAcceptor,
13 StepCountingHillClimbingAcceptor, TabuSearchAcceptor, ValueTabuAcceptor,
14};
15pub use forager::{
16 AcceptedCountForager, BestScoreForager, FirstAcceptedForager, FirstBestScoreImprovingForager,
17 FirstLastStepScoreImprovingForager, LocalSearchForager,
18};
19pub use phase::LocalSearchPhase;
20
21#[derive(Debug, Clone)]
23pub struct LocalSearchConfig {
24 pub acceptor_type: AcceptorType,
26 pub step_limit: Option<u64>,
28 pub accepted_count_limit: Option<usize>,
30}
31
32impl Default for LocalSearchConfig {
33 fn default() -> Self {
34 Self {
35 acceptor_type: AcceptorType::HillClimbing,
36 step_limit: Some(1000),
37 accepted_count_limit: Some(1),
38 }
39 }
40}
41
42#[derive(Debug, Clone, Copy, PartialEq, Eq)]
44pub enum AcceptorType {
45 HillClimbing,
47 SimulatedAnnealing,
49}