Skip to main content

solverforge_solver/heuristic/selector/
mod.rs

1/* Selectors for entities, values, and moves.
2
3Selectors enumerate the elements that the solver considers when
4exploring the solution space.
5*/
6
7pub mod decorator;
8pub mod dynamic_list_change;
9pub mod dynamic_scalar_change;
10pub mod dynamic_scalar_nearby_change;
11pub mod dynamic_scalar_nearby_swap;
12pub mod entity;
13pub mod k_opt;
14pub mod list_change;
15pub(crate) mod list_kernel;
16pub mod list_permute;
17pub mod list_precedence;
18pub mod list_reverse;
19pub mod list_ruin;
20pub(crate) mod list_support;
21pub mod list_swap;
22pub mod mimic;
23pub mod move_selector;
24pub mod nearby;
25pub mod nearby_list_change;
26pub(crate) mod nearby_list_support;
27pub mod nearby_list_swap;
28pub(crate) mod nearby_support;
29pub mod pillar;
30pub(crate) mod pillar_support;
31pub(crate) mod precedence_route;
32pub mod ruin;
33pub(crate) mod scalar_neighborhood;
34pub(crate) mod seed;
35pub mod sublist_change;
36mod sublist_support;
37pub mod sublist_swap;
38pub mod value_selector;
39
40#[cfg(test)]
41mod tests;
42
43pub use dynamic_list_change::DynamicListChangeMoveSelector;
44pub use dynamic_scalar_change::DynamicScalarChangeMoveSelector;
45pub use dynamic_scalar_nearby_change::DynamicScalarNearbyChangeMoveSelector;
46pub use dynamic_scalar_nearby_swap::DynamicScalarNearbySwapMoveSelector;
47pub use entity::{
48    AllEntitiesSelector, EntityReference, EntitySelector, FromSolutionEntitySelector,
49};
50pub use k_opt::{
51    DefaultDistanceMeter, KOptConfig, KOptMoveSelector, ListPositionDistanceMeter,
52    NearbyKOptMoveSelector,
53};
54pub use list_change::ListChangeMoveSelector;
55pub use list_permute::ListPermuteMoveSelector;
56pub use list_precedence::ListPrecedenceMoveSelector;
57pub use list_reverse::ListReverseMoveSelector;
58pub use list_ruin::ListRuinMoveSelector;
59pub use list_swap::ListSwapMoveSelector;
60pub use mimic::{MimicRecorder, MimicRecordingEntitySelector, MimicReplayingEntitySelector};
61pub use move_selector::{
62    ChangeMoveSelector, MoveSelector, MoveStreamContext, ScalarChangeMoveSelector,
63    ScalarSwapMoveSelector, SwapMoveSelector,
64};
65pub use nearby::{NearbyDistanceMeter, NearbyEntitySelector, NearbySelectionConfig};
66pub use nearby_list_change::{
67    CrossEntityDistanceMeter, DefaultCrossEntityDistanceMeter, NearbyListChangeMoveSelector,
68};
69pub use nearby_list_swap::NearbyListSwapMoveSelector;
70pub use pillar::{DefaultPillarSelector, Pillar, PillarSelector, SubPillarConfig};
71pub use ruin::{RuinMoveSelector, RuinVariableAccess};
72pub use scalar_neighborhood::ScalarNeighborhoodBindingError;
73pub use solverforge_config::SelectionOrder;
74pub use sublist_change::SublistChangeMoveSelector;
75pub use sublist_swap::SublistSwapMoveSelector;
76pub use value_selector::{
77    FromSolutionValueSelector, PerEntitySliceValueSelector, PerEntityValueSelector,
78    RangeValueSelector, StaticValueSelector, ValueSelector,
79};