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