Skip to main content

solverforge_solver/builder/
selector.rs

1use std::fmt::{self, Debug};
2
3use solverforge_config::{
4    AcceptorConfig, ChangeMoveConfig, ListReverseMoveConfig, LocalSearchConfig, MoveSelectorConfig,
5    NearbyListChangeMoveConfig, NearbyListSwapMoveConfig, VariableTargetConfig, VndConfig,
6};
7use solverforge_core::domain::PlanningSolution;
8use solverforge_core::score::{ParseableScore, Score};
9
10use crate::heuristic::r#move::{
11    ListMoveUnion, Move, MoveArena, MoveTabuSignature, ScalarMoveUnion, SequentialCompositeMove,
12};
13use crate::heuristic::selector::decorator::{
14    CartesianProductCursor, CartesianProductSelector, VecUnionSelector,
15};
16use crate::heuristic::selector::move_selector::{
17    ArenaMoveCursor, MoveCandidateRef, MoveCursor, MoveSelector,
18};
19use crate::heuristic::selector::nearby_list_change::CrossEntityDistanceMeter;
20use crate::phase::dynamic_vnd::DynamicVndPhase;
21use crate::phase::localsearch::{
22    AcceptedCountForager, LocalSearchPhase, SimulatedAnnealingAcceptor,
23};
24
25use super::acceptor::{AcceptorBuilder, AnyAcceptor};
26use super::context::ModelContext;
27use super::forager::{AnyForager, ForagerBuilder};
28use super::list_selector::{ListLeafSelector, ListMoveSelectorBuilder};
29use super::scalar_selector::{build_scalar_flat_selector, ScalarLeafSelector};
30
31include!("selector/types.rs");
32include!("selector/families.rs");
33include!("selector/build.rs");