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 list_solver;
23pub mod manager;
24pub mod phase;
25pub mod realtime;
26pub mod scope;
27pub mod solver;
28pub mod stats;
29pub mod termination;
30
31pub use builder::{
32 AcceptorBuilder, AnyAcceptor, AnyForager, BasicContext, BasicLeafSelector,
33 BasicMoveSelectorBuilder, ForagerBuilder, ListContext, ListLeafSelector,
34 ListMoveSelectorBuilder,
35};
36pub use heuristic::{
37 k_opt_reconnection,
39 AllEntitiesSelector,
41 ChangeMove,
43 ChangeMoveSelector,
44 CompositeMove,
45 CutPoint,
46 DefaultDistanceMeter,
47 DefaultPillarSelector,
48 EntityReference,
49 EntitySelector,
50 FromSolutionEntitySelector,
51 FromSolutionTypedValueSelector,
52 KOptConfig,
53 KOptMove,
54 KOptMoveSelector,
55 ListPositionDistanceMeter,
56 ListRuinMove,
57 ListRuinMoveSelector,
58 MimicRecorder,
59 MimicRecordingEntitySelector,
60 MimicReplayingEntitySelector,
61 Move,
62 MoveArena,
63 MoveSelector,
64 NearbyDistanceMeter,
65 NearbyEntitySelector,
66 NearbyKOptMoveSelector,
67 NearbySelectionConfig,
68 Pillar,
69 PillarChangeMove,
70 PillarSelector,
71 PillarSwapMove,
72 RuinMove,
73 RuinMoveSelector,
74 SelectionOrder,
75 StaticTypedValueSelector,
76 SubPillarConfig,
77 SwapMove,
78 SwapMoveSelector,
79 TypedValueSelector,
80 VecUnionSelector,
82};
83pub use manager::{
84 analyze, Analyzable, ConstraintAnalysis, ConstructionPhaseFactory, ConstructionType, KOptPhase,
85 KOptPhaseBuilder, ListCheapestInsertionPhase, ListConstructionPhase,
86 ListConstructionPhaseBuilder, ListRegretInsertionPhase, LocalSearchPhaseFactory,
87 LocalSearchType, PhaseFactory, ScoreAnalysis, Solvable, SolverFactory, SolverFactoryBuilder,
88 SolverManager, SolverStatus,
89};
90pub use phase::{
91 construction::{
92 BestFitForager, ConstructionForager, ConstructionHeuristicConfig,
93 ConstructionHeuristicPhase, EntityPlacer, FirstFeasibleForager, FirstFitForager,
94 ForagerType, Placement, QueuedEntityPlacer,
95 },
96 exhaustive::{
97 BounderType, ExhaustiveSearchConfig, ExhaustiveSearchDecider, ExhaustiveSearchNode,
98 ExhaustiveSearchPhase, ExplorationType, FixedOffsetBounder, MoveSequence, ScoreBounder,
99 SimpleDecider, SoftScoreBounder,
100 },
101 localsearch::{
102 AcceptedCountForager, Acceptor, AcceptorType, BestScoreForager,
103 DiversifiedLateAcceptanceAcceptor, EntityTabuAcceptor, FirstAcceptedForager,
104 FirstBestScoreImprovingForager, FirstLastStepScoreImprovingForager, GreatDelugeAcceptor,
105 HillClimbingAcceptor, LateAcceptanceAcceptor, LocalSearchConfig, LocalSearchForager,
106 LocalSearchPhase, MoveTabuAcceptor, SimulatedAnnealingAcceptor,
107 StepCountingHillClimbingAcceptor, TabuSearchAcceptor, ValueTabuAcceptor,
108 },
109 partitioned::{
110 ChildPhases, FunctionalPartitioner, PartitionedSearchConfig, PartitionedSearchPhase,
111 SolutionPartitioner, ThreadCount,
112 },
113 vnd::VndPhase,
114 Phase,
115};
116pub use scope::{PhaseScope, SolverScope, StepScope};
117pub use solver::{MaybeTermination, NoTermination, SolveResult, Solver};
118pub use stats::{PhaseStats, SolverStats};
119pub use termination::{
120 AndTermination, BestScoreFeasibleTermination, BestScoreTermination,
121 DiminishedReturnsTermination, MoveCountTermination, OrTermination,
122 ScoreCalculationCountTermination, StepCountTermination, Termination, TimeTermination,
123 UnimprovedStepCountTermination, UnimprovedTimeTermination,
124};
125
126pub use basic::run_solver;
127pub use list_solver::run_list_solver;