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