#![allow(clippy::type_complexity)]
#[cfg(test)]
pub mod test_utils;
pub mod builder;
pub mod descriptor_scalar;
pub mod heuristic;
pub mod manager;
pub mod model_support;
pub mod phase;
pub mod realtime;
pub mod run;
pub mod runtime;
pub mod scope;
pub mod solver;
pub mod stats;
pub mod termination;
pub use builder::{
build_local_search, build_move_selector, build_vnd, AcceptorBuilder, AnyAcceptor, AnyForager,
ForagerBuilder, IntraDistanceAdapter, ListVariableContext, LocalSearch, ModelContext,
Neighborhood, NeighborhoodLeaf, NeighborhoodMove, ScalarVariableContext, Selector, ValueSource,
VariableContext, Vnd,
};
pub use descriptor_scalar::{
build_descriptor_move_selector, descriptor_has_bindings, DescriptorConstruction,
DescriptorFlatSelector, DescriptorLeafSelector, DescriptorPillarChangeMove,
DescriptorPillarSwapMove, DescriptorRuinRecreateMove, DescriptorScalarMoveUnion,
DescriptorSelector, DescriptorSelectorNode,
};
pub use heuristic::{
k_opt_reconnection,
AllEntitiesSelector,
ChangeMove,
ChangeMoveSelector,
CompositeMove,
CrossEntityDistanceMeter,
CutPoint,
DefaultCrossEntityDistanceMeter,
DefaultDistanceMeter,
DefaultPillarSelector,
EntityReference,
EntitySelector,
FromSolutionEntitySelector,
FromSolutionValueSelector,
KOptConfig,
KOptMove,
KOptMoveSelector,
ListPositionDistanceMeter,
ListRuinMove,
ListRuinMoveSelector,
MimicRecorder,
MimicRecordingEntitySelector,
MimicReplayingEntitySelector,
Move,
MoveArena,
MoveSelector,
NearbyDistanceMeter,
NearbyEntitySelector,
NearbyKOptMoveSelector,
NearbySelectionConfig,
PerEntitySliceValueSelector,
Pillar,
PillarChangeMove,
PillarSelector,
PillarSwapMove,
RuinMove,
RuinMoveSelector,
RuinVariableAccess,
SelectionOrder,
StaticValueSelector,
SubPillarConfig,
SwapMove,
SwapMoveSelector,
ValueSelector,
VecUnionSelector,
};
pub use manager::{
analyze, Analyzable, ConstraintAnalysis, ConstructionPhaseFactory, ConstructionType, KOptPhase,
KOptPhaseBuilder, ListCheapestInsertionPhase, ListClarkeWrightPhase, ListConstructionPhase,
ListConstructionPhaseBuilder, ListKOptPhase, ListRegretInsertionPhase, LocalSearchPhaseFactory,
LocalSearchType, PhaseFactory, ScoreAnalysis, Solvable, SolverEvent, SolverEventMetadata,
SolverFactory, SolverFactoryBuilder, SolverLifecycleState, SolverManager, SolverManagerError,
SolverRuntime, SolverSnapshot, SolverSnapshotAnalysis, SolverStatus, SolverTerminalReason,
};
pub use model_support::PlanningModelSupport;
pub use phase::{
construction::{
BestFitForager, ConstructionChoice, ConstructionForager, ConstructionHeuristicConfig,
ConstructionHeuristicPhase, EntityPlacer, FirstFeasibleForager, FirstFitForager,
ForagerType, Placement, QueuedEntityPlacer,
},
dynamic_vnd::DynamicVndPhase,
exhaustive::{
BounderType, ExhaustiveSearchConfig, ExhaustiveSearchDecider, ExhaustiveSearchNode,
ExhaustiveSearchPhase, ExplorationType, FixedOffsetBounder, MoveSequence, ScoreBounder,
SimpleDecider, SoftScoreBounder,
},
localsearch::{
AcceptedCountForager, Acceptor, BestScoreForager, DiversifiedLateAcceptanceAcceptor,
FirstAcceptedForager, FirstBestScoreImprovingForager, FirstLastStepScoreImprovingForager,
GreatDelugeAcceptor, HillClimbingAcceptor, LateAcceptanceAcceptor, LocalSearchForager,
LocalSearchPhase, SimulatedAnnealingAcceptor, StepCountingHillClimbingAcceptor,
TabuSearchAcceptor,
},
partitioned::{
ChildPhases, FunctionalPartitioner, PartitionedSearchConfig, PartitionedSearchPhase,
SolutionPartitioner, ThreadCount,
},
sequence::PhaseSequence,
vnd::VndPhase,
Phase,
};
pub use run::{log_solve_start, run_solver, run_solver_with_config};
pub use runtime::{ListVariableEntity, ListVariableMetadata};
pub use scope::{PhaseScope, SolverScope, StepScope};
pub use solver::{MaybeTermination, NoTermination, SolveResult, Solver};
pub use stats::{PhaseStats, SolverStats, SolverTelemetry};
pub use termination::{
AndTermination, BestScoreFeasibleTermination, BestScoreTermination,
DiminishedReturnsTermination, MoveCountTermination, OrTermination,
ScoreCalculationCountTermination, StepCountTermination, Termination, TimeTermination,
UnimprovedStepCountTermination, UnimprovedTimeTermination,
};