1#![allow(clippy::type_complexity)]
17
18#[cfg(test)]
19pub mod test_utils;
20
21pub mod builder;
22pub mod descriptor_standard;
23pub mod heuristic;
24pub mod list_solver;
25pub mod manager;
26pub mod phase;
27pub mod realtime;
28pub mod run;
29pub mod runtime;
30pub mod scope;
31pub mod solver;
32pub mod stats;
33pub mod termination;
34pub mod unified_search;
35
36pub use builder::{
37 AcceptorBuilder, AnyAcceptor, AnyForager, ForagerBuilder, ListContext, ListLeafSelector,
38 ListMoveSelectorBuilder,
39};
40pub use descriptor_standard::{
41 build_descriptor_construction, build_descriptor_move_selector, descriptor_has_bindings,
42 DescriptorConstruction, DescriptorEitherMove, DescriptorLeafSelector,
43};
44pub use heuristic::{
45 k_opt_reconnection,
47 AllEntitiesSelector,
49 ChangeMove,
51 ChangeMoveSelector,
52 CompositeMove,
53 CrossEntityDistanceMeter,
54 CutPoint,
55 DefaultCrossEntityDistanceMeter,
56 DefaultDistanceMeter,
57 DefaultPillarSelector,
58 EntityReference,
59 EntitySelector,
60 FromSolutionEntitySelector,
61 FromSolutionValueSelector,
62 KOptConfig,
63 KOptMove,
64 KOptMoveSelector,
65 ListPositionDistanceMeter,
66 ListRuinMove,
67 ListRuinMoveSelector,
68 MimicRecorder,
69 MimicRecordingEntitySelector,
70 MimicReplayingEntitySelector,
71 Move,
72 MoveArena,
73 MoveSelector,
74 NearbyDistanceMeter,
75 NearbyEntitySelector,
76 NearbyKOptMoveSelector,
77 NearbySelectionConfig,
78 Pillar,
79 PillarChangeMove,
80 PillarSelector,
81 PillarSwapMove,
82 RuinMove,
83 RuinMoveSelector,
84 SelectionOrder,
85 StaticValueSelector,
86 SubPillarConfig,
87 SwapMove,
88 SwapMoveSelector,
89 ValueSelector,
90 VecUnionSelector,
92};
93pub use manager::{
94 analyze, Analyzable, ConstraintAnalysis, ConstructionPhaseFactory, ConstructionType, KOptPhase,
95 KOptPhaseBuilder, ListCheapestInsertionPhase, ListClarkeWrightPhase, ListConstructionPhase,
96 ListConstructionPhaseBuilder, ListKOptPhase, ListRegretInsertionPhase, LocalSearchPhaseFactory,
97 LocalSearchType, PhaseFactory, ScoreAnalysis, Solvable, SolverEvent, SolverFactory,
98 SolverFactoryBuilder, SolverManager, SolverStatus,
99};
100pub use phase::{
101 construction::{
102 BestFitForager, ConstructionForager, ConstructionHeuristicConfig,
103 ConstructionHeuristicPhase, EntityPlacer, FirstFeasibleForager, FirstFitForager,
104 ForagerType, Placement, QueuedEntityPlacer,
105 },
106 dynamic_vnd::DynamicVndPhase,
107 exhaustive::{
108 BounderType, ExhaustiveSearchConfig, ExhaustiveSearchDecider, ExhaustiveSearchNode,
109 ExhaustiveSearchPhase, ExplorationType, FixedOffsetBounder, MoveSequence, ScoreBounder,
110 SimpleDecider, SoftScoreBounder,
111 },
112 localsearch::{
113 AcceptedCountForager, Acceptor, AcceptorType, BestScoreForager,
114 DiversifiedLateAcceptanceAcceptor, EntityTabuAcceptor, FirstAcceptedForager,
115 FirstBestScoreImprovingForager, FirstLastStepScoreImprovingForager, GreatDelugeAcceptor,
116 HillClimbingAcceptor, LateAcceptanceAcceptor, LocalSearchConfig, LocalSearchForager,
117 LocalSearchPhase, MoveTabuAcceptor, SimulatedAnnealingAcceptor,
118 StepCountingHillClimbingAcceptor, TabuSearchAcceptor, ValueTabuAcceptor,
119 },
120 partitioned::{
121 ChildPhases, FunctionalPartitioner, PartitionedSearchConfig, PartitionedSearchPhase,
122 SolutionPartitioner, ThreadCount,
123 },
124 sequence::PhaseSequence,
125 vnd::VndPhase,
126 Phase,
127};
128pub use scope::{PhaseScope, SolverScope, StepScope};
129pub use solver::{MaybeTermination, NoTermination, SolveResult, Solver};
130pub use stats::{PhaseStats, SolverStats, SolverTelemetry};
131pub use termination::{
132 AndTermination, BestScoreFeasibleTermination, BestScoreTermination,
133 DiminishedReturnsTermination, MoveCountTermination, OrTermination,
134 ScoreCalculationCountTermination, StepCountTermination, Termination, TimeTermination,
135 UnimprovedStepCountTermination, UnimprovedTimeTermination,
136};
137pub use unified_search::{
138 build_unified_local_search, build_unified_move_selector, build_unified_vnd, UnifiedLocalSearch,
139 UnifiedMove, UnifiedNeighborhood, UnifiedVnd,
140};
141
142pub use list_solver::{
143 build_list_construction, ListConstruction, ListVariableEntity, ListVariableMetadata,
144};
145pub use run::{log_solve_start, run_solver};
146pub use runtime::{
147 build_phases, ListConstructionArgs, RuntimePhase, UnifiedConstruction, UnifiedRuntimePhase,
148};