1#![allow(clippy::type_complexity)]
15
16#[cfg(test)]
17pub mod test_utils;
18
19pub mod basic;
20pub mod builder;
21pub mod heuristic;
22pub mod manager;
23pub mod phase;
24pub mod realtime;
25pub mod scope;
26pub mod solver;
27pub mod stats;
28pub mod termination;
29
30pub use builder::AcceptorBuilder;
31pub use heuristic::{
32 k_opt_reconnection,
34 AllEntitiesSelector,
36 ChangeMove,
38 ChangeMoveSelector,
39 CompositeMove,
40 CutPoint,
41 DefaultDistanceMeter,
42 DefaultPillarSelector,
43 EntityReference,
44 EntitySelector,
45 FromSolutionEntitySelector,
46 FromSolutionTypedValueSelector,
47 KOptConfig,
48 KOptMove,
49 KOptMoveSelector,
50 ListPositionDistanceMeter,
51 ListRuinMove,
52 ListRuinMoveSelector,
53 MimicRecorder,
54 MimicRecordingEntitySelector,
55 MimicReplayingEntitySelector,
56 Move,
57 MoveArena,
58 MoveSelector,
59 NearbyDistanceMeter,
60 NearbyEntitySelector,
61 NearbyKOptMoveSelector,
62 NearbySelectionConfig,
63 Pillar,
64 PillarChangeMove,
65 PillarSelector,
66 PillarSwapMove,
67 RuinMove,
68 RuinMoveSelector,
69 SelectionOrder,
70 StaticTypedValueSelector,
71 SubPillarConfig,
72 SwapMove,
73 SwapMoveSelector,
74 TypedValueSelector,
75};
76pub use manager::{
77 Analyzable, ConstraintAnalysis, ConstructionPhaseFactory, ConstructionType, KOptPhase,
78 KOptPhaseBuilder, ListCheapestInsertionPhase, ListConstructionPhase,
79 ListConstructionPhaseBuilder, ListRegretInsertionPhase, LocalSearchPhaseFactory,
80 LocalSearchType, PhaseFactory, ScoreAnalysis, SolutionManager, Solvable, SolverFactory,
81 SolverFactoryBuilder, SolverManager, SolverStatus,
82};
83pub use phase::{
84 construction::{
85 BestFitForager, ConstructionForager, ConstructionHeuristicConfig,
86 ConstructionHeuristicPhase, EntityPlacer, FirstFeasibleForager, FirstFitForager,
87 ForagerType, Placement, QueuedEntityPlacer,
88 },
89 exhaustive::{
90 BounderType, ExhaustiveSearchConfig, ExhaustiveSearchDecider, ExhaustiveSearchNode,
91 ExhaustiveSearchPhase, ExplorationType, FixedOffsetBounder, MoveSequence, ScoreBounder,
92 SimpleDecider, SimpleScoreBounder,
93 },
94 localsearch::{
95 AcceptedCountForager, Acceptor, AcceptorType, BestScoreForager,
96 DiversifiedLateAcceptanceAcceptor, EntityTabuAcceptor, FirstAcceptedForager,
97 FirstBestScoreImprovingForager, FirstLastStepScoreImprovingForager, GreatDelugeAcceptor,
98 HillClimbingAcceptor, LateAcceptanceAcceptor, LocalSearchConfig, LocalSearchForager,
99 LocalSearchPhase, MoveTabuAcceptor, SimulatedAnnealingAcceptor,
100 StepCountingHillClimbingAcceptor, TabuSearchAcceptor, ValueTabuAcceptor,
101 },
102 partitioned::{
103 ChildPhases, FunctionalPartitioner, PartitionedSearchConfig, PartitionedSearchPhase,
104 SolutionPartitioner, ThreadCount,
105 },
106 vnd::VndPhase,
107 Phase,
108};
109pub use scope::{PhaseScope, SolverScope, StepScope};
110pub use solver::{MaybeTermination, NoTermination, SolveResult, Solver};
111pub use stats::{PhaseStats, SolverStats};
112pub use termination::{
113 AndTermination, BestScoreFeasibleTermination, BestScoreTermination,
114 DiminishedReturnsTermination, MoveCountTermination, OrTermination,
115 ScoreCalculationCountTermination, StepCountTermination, Termination, TimeTermination,
116 UnimprovedStepCountTermination, UnimprovedTimeTermination,
117};
118
119pub use basic::{run_solver, run_solver_with_channel};