Expand description
SolverForge Solver Engine
This crate provides the main solver implementation including:
- Solver and SolverFactory
- Phases (construction heuristic, local search, exhaustive search)
- Move system
- Termination conditions
- Event system for monitoring
- Configuration wiring (builder module)
Re-exports§
pub use builder::AcceptorBuilder;pub use builder::SolverBuilder;pub use builder::TerminationBuilder;pub use event::CountingEventListener;pub use event::LoggingEventListener;pub use event::PhaseLifecycleListener;pub use event::SolverEventListener;pub use event::SolverEventSupport;pub use event::StepLifecycleListener;pub use heuristic::k_opt_reconnection;pub use heuristic::AllEntitiesSelector;pub use heuristic::ChangeMove;pub use heuristic::ChangeMoveSelector;pub use heuristic::CompositeMove;pub use heuristic::CutPoint;pub use heuristic::DefaultPillarSelector;pub use heuristic::EntityReference;pub use heuristic::EntitySelector;pub use heuristic::FromSolutionEntitySelector;pub use heuristic::FromSolutionTypedValueSelector;pub use heuristic::KOptConfig;pub use heuristic::KOptMove;pub use heuristic::KOptMoveSelector;pub use heuristic::ListPositionDistanceMeter;pub use heuristic::ListRuinMove;pub use heuristic::ListRuinMoveSelector;pub use heuristic::MimicRecorder;pub use heuristic::MimicRecordingEntitySelector;pub use heuristic::MimicReplayingEntitySelector;pub use heuristic::Move;pub use heuristic::MoveArena;pub use heuristic::MoveSelector;pub use heuristic::NearbyDistanceMeter;pub use heuristic::NearbyEntitySelector;pub use heuristic::NearbyKOptMoveSelector;pub use heuristic::NearbySelectionConfig;pub use heuristic::Pillar;pub use heuristic::PillarChangeMove;pub use heuristic::PillarSelector;pub use heuristic::PillarSwapMove;pub use heuristic::RuinMove;pub use heuristic::RuinMoveSelector;pub use heuristic::SelectionOrder;pub use heuristic::StaticTypedValueSelector;pub use heuristic::SubPillarConfig;pub use heuristic::SwapMove;pub use heuristic::SwapMoveSelector;pub use heuristic::TypedValueSelector;pub use manager::CloneablePhaseFactory;pub use manager::ClosurePhaseFactory;pub use manager::ConstructionType;pub use manager::LocalSearchType;pub use manager::SolverManager;pub use manager::SolverManagerBuilder;pub use manager::SolverPhaseFactory;pub use phase::construction::BestFitForager;pub use phase::construction::ConstructionForager;pub use phase::construction::ConstructionHeuristicConfig;pub use phase::construction::ConstructionHeuristicPhase;pub use phase::construction::EntityPlacer;pub use phase::construction::FirstFeasibleForager;pub use phase::construction::FirstFitForager;pub use phase::construction::ForagerType;pub use phase::construction::Placement;pub use phase::construction::QueuedEntityPlacer;pub use phase::exhaustive::BounderType;pub use phase::exhaustive::ExhaustiveSearchConfig;pub use phase::exhaustive::ExhaustiveSearchDecider;pub use phase::exhaustive::ExhaustiveSearchNode;pub use phase::exhaustive::ExhaustiveSearchPhase;pub use phase::exhaustive::ExplorationType;pub use phase::exhaustive::FixedOffsetBounder;pub use phase::exhaustive::MoveSequence;pub use phase::exhaustive::ScoreBounder;pub use phase::exhaustive::SimpleDecider;pub use phase::exhaustive::SimpleScoreBounder;pub use phase::localsearch::AcceptedCountForager;pub use phase::localsearch::Acceptor;pub use phase::localsearch::AcceptorType;pub use phase::localsearch::DiversifiedLateAcceptanceAcceptor;pub use phase::localsearch::EntityTabuAcceptor;pub use phase::localsearch::FirstAcceptedForager;pub use phase::localsearch::GreatDelugeAcceptor;pub use phase::localsearch::HillClimbingAcceptor;pub use phase::localsearch::LateAcceptanceAcceptor;pub use phase::localsearch::LocalSearchConfig;pub use phase::localsearch::LocalSearchForager;pub use phase::localsearch::LocalSearchPhase;pub use phase::localsearch::MoveTabuAcceptor;pub use phase::localsearch::SimulatedAnnealingAcceptor;pub use phase::localsearch::StepCountingHillClimbingAcceptor;pub use phase::localsearch::TabuSearchAcceptor;pub use phase::localsearch::ValueTabuAcceptor;pub use phase::partitioned::FunctionalPartitioner;pub use phase::partitioned::PartitionedSearchConfig;pub use phase::partitioned::PartitionedSearchPhase;pub use phase::partitioned::PhaseFactory;pub use phase::partitioned::ScoreDirectorFactory;pub use phase::partitioned::SolutionPartitioner;pub use phase::partitioned::ThreadCount;pub use phase::vnd::VndPhase;pub use phase::Phase;pub use scope::PhaseScope;pub use scope::SolverScope;pub use scope::StepScope;pub use solver::Solver;pub use solver::SolverFactory;pub use statistics::PhaseStatistics;pub use statistics::ScoreImprovement;pub use statistics::SolverStatistics;pub use statistics::StatisticsCollector;pub use termination::AndCompositeTermination;pub use termination::BestScoreFeasibleTermination;pub use termination::BestScoreTermination;pub use termination::OrCompositeTermination;pub use termination::StepCountTermination;pub use termination::Termination;pub use termination::TimeTermination;pub use termination::UnimprovedStepCountTermination;pub use termination::UnimprovedTimeTermination;
Modules§
- builder
- Builder module for constructing solver components from configuration
- event
- Event system for solver monitoring and extensibility.
- heuristic
- Heuristic components for solving
- manager
- High-level solver management with ergonomic API.
- phase
- Solver phases for different solving strategies
- realtime
- Real-time planning support.
- scope
- Scope hierarchy for solver execution.
- solver
- Solver and SolverFactory implementations
- statistics
- Solver statistics collection and reporting.
- termination
- Termination conditions for solver phases.