Crate solverforge_solver

Crate solverforge_solver 

Source
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.