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 manager;
25pub mod phase;
26pub mod realtime;
27pub mod run;
28pub mod runtime;
29pub mod scope;
30pub mod solver;
31pub mod stats;
32pub mod termination;
33
34pub use builder::{
35 build_local_search, build_move_selector, build_vnd, AcceptorBuilder, AnyAcceptor, AnyForager,
36 ForagerBuilder, IntraDistanceAdapter, ListVariableContext, LocalSearch, ModelContext,
37 Neighborhood, NeighborhoodLeaf, NeighborhoodMove, ScalarVariableContext, Selector, ValueSource,
38 VariableContext, Vnd,
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 PerEntitySliceValueSelector,
79 Pillar,
80 PillarChangeMove,
81 PillarSelector,
82 PillarSwapMove,
83 RuinMove,
84 RuinMoveSelector,
85 SelectionOrder,
86 StaticValueSelector,
87 SubPillarConfig,
88 SwapMove,
89 SwapMoveSelector,
90 ValueSelector,
91 VecUnionSelector,
93};
94pub use manager::{
95 analyze, Analyzable, ConstraintAnalysis, ConstructionPhaseFactory, ConstructionType, KOptPhase,
96 KOptPhaseBuilder, ListCheapestInsertionPhase, ListClarkeWrightPhase, ListConstructionPhase,
97 ListConstructionPhaseBuilder, ListKOptPhase, ListRegretInsertionPhase, LocalSearchPhaseFactory,
98 LocalSearchType, PhaseFactory, ScoreAnalysis, Solvable, SolverEvent, SolverEventMetadata,
99 SolverFactory, SolverFactoryBuilder, SolverLifecycleState, SolverManager, SolverManagerError,
100 SolverRuntime, SolverSnapshot, SolverSnapshotAnalysis, SolverStatus, SolverTerminalReason,
101};
102pub use phase::{
103 construction::{
104 BestFitForager, ConstructionForager, ConstructionHeuristicConfig,
105 ConstructionHeuristicPhase, EntityPlacer, FirstFeasibleForager, FirstFitForager,
106 ForagerType, Placement, QueuedEntityPlacer,
107 },
108 dynamic_vnd::DynamicVndPhase,
109 exhaustive::{
110 BounderType, ExhaustiveSearchConfig, ExhaustiveSearchDecider, ExhaustiveSearchNode,
111 ExhaustiveSearchPhase, ExplorationType, FixedOffsetBounder, MoveSequence, ScoreBounder,
112 SimpleDecider, SoftScoreBounder,
113 },
114 localsearch::{
115 AcceptedCountForager, Acceptor, AcceptorType, BestScoreForager,
116 DiversifiedLateAcceptanceAcceptor, EntityTabuAcceptor, FirstAcceptedForager,
117 FirstBestScoreImprovingForager, FirstLastStepScoreImprovingForager, GreatDelugeAcceptor,
118 HillClimbingAcceptor, LateAcceptanceAcceptor, LocalSearchConfig, LocalSearchForager,
119 LocalSearchPhase, MoveTabuAcceptor, SimulatedAnnealingAcceptor,
120 StepCountingHillClimbingAcceptor, TabuSearchAcceptor, ValueTabuAcceptor,
121 },
122 partitioned::{
123 ChildPhases, FunctionalPartitioner, PartitionedSearchConfig, PartitionedSearchPhase,
124 SolutionPartitioner, ThreadCount,
125 },
126 sequence::PhaseSequence,
127 vnd::VndPhase,
128 Phase,
129};
130pub use run::{log_solve_start, run_solver, run_solver_with_config};
131pub use runtime::{
132 build_phases, Construction, ConstructionArgs, ListVariableEntity, ListVariableMetadata,
133 RuntimePhase,
134};
135pub use scope::{PhaseScope, SolverScope, StepScope};
136pub use solver::{MaybeTermination, NoTermination, SolveResult, Solver};
137pub use stats::{PhaseStats, SolverStats, SolverTelemetry};
138pub use termination::{
139 AndTermination, BestScoreFeasibleTermination, BestScoreTermination,
140 DiminishedReturnsTermination, MoveCountTermination, OrTermination,
141 ScoreCalculationCountTermination, StepCountTermination, Termination, TimeTermination,
142 UnimprovedStepCountTermination, UnimprovedTimeTermination,
143};