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
- Tracing-based structured logging
- Configuration wiring (builder module)
Re-exports§
pub use builder::AcceptorBuilder;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::DefaultDistanceMeter;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::Analyzable;pub use manager::ConstraintAnalysis;pub use manager::ConstructionPhaseFactory;pub use manager::ConstructionType;pub use manager::KOptPhase;pub use manager::KOptPhaseBuilder;pub use manager::ListConstructionPhase;pub use manager::ListConstructionPhaseBuilder;pub use manager::LocalSearchPhaseFactory;pub use manager::LocalSearchType;pub use manager::PhaseFactory;pub use manager::ScoreAnalysis;pub use manager::SolutionManager;pub use manager::Solvable;pub use manager::SolverFactory;pub use manager::SolverFactoryBuilder;pub use manager::SolverManager;pub use manager::SolverStatus;pub use phase::basic::BasicConstructionPhase;pub use phase::basic::BasicLocalSearchPhase;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::ChildPhases;pub use phase::partitioned::FunctionalPartitioner;pub use phase::partitioned::PartitionedSearchConfig;pub use phase::partitioned::PartitionedSearchPhase;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::MaybeTermination;pub use solver::NoTermination;pub use solver::Solver;pub use stats::PhaseStats;pub use stats::SolverStats;pub use termination::AndTermination;pub use termination::BestScoreFeasibleTermination;pub use termination::BestScoreTermination;pub use termination::DiminishedReturnsTermination;pub use termination::MoveCountTermination;pub use termination::OrTermination;pub use termination::ScoreCalculationCountTermination;pub use termination::StepCountTermination;pub use termination::Termination;pub use termination::TimeTermination;pub use termination::UnimprovedStepCountTermination;pub use termination::UnimprovedTimeTermination;pub use basic::run_solver;pub use basic::run_solver_with_channel;
Modules§
- basic
- Basic variable solver for simple assignment problems.
- builder
- Builder module for constructing solver components from configuration
- heuristic
- Heuristic components for solving
- manager
- High-level solver management with zero-erasure API.
- phase
- Solver phases for different solving strategies
- realtime
- Real-time planning support.
- scope
- Scope hierarchy for solver execution.
- solver
- Solver implementation.
- stats
- Solver statistics (zero-erasure).
- termination
- Termination conditions for solver phases.