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