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