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 entity;
11pub mod k_opt;
12pub mod list_change;
13pub mod list_permute;
14pub mod list_precedence;
15pub mod list_reverse;
16pub mod list_ruin;
17mod list_support;
18pub mod list_swap;
19pub mod mimic;
20pub mod move_selector;
21pub mod nearby;
22pub mod nearby_list_change;
23mod nearby_list_support;
24pub mod nearby_list_swap;
25pub(crate) mod nearby_support;
26pub mod pillar;
27pub(crate) mod pillar_support;
28pub(crate) mod precedence_route;
29pub mod ruin;
30pub(crate) mod seed;
31mod selection_order;
32pub mod sublist_change;
33mod sublist_support;
34pub mod sublist_swap;
35pub mod value_selector;
36
37#[cfg(test)]
38mod tests;
39
40pub use dynamic_list_change::DynamicListChangeMoveSelector;
41pub use dynamic_scalar_change::DynamicScalarChangeMoveSelector;
42pub use entity::{
43    AllEntitiesSelector, EntityReference, EntitySelector, FromSolutionEntitySelector,
44};
45pub use k_opt::{
46    DefaultDistanceMeter, KOptConfig, KOptMoveSelector, ListPositionDistanceMeter,
47    NearbyKOptMoveSelector,
48};
49pub use list_change::ListChangeMoveSelector;
50pub use list_permute::ListPermuteMoveSelector;
51pub use list_precedence::ListPrecedenceMoveSelector;
52pub use list_reverse::ListReverseMoveSelector;
53pub use list_ruin::ListRuinMoveSelector;
54pub use list_swap::ListSwapMoveSelector;
55pub use mimic::{MimicRecorder, MimicRecordingEntitySelector, MimicReplayingEntitySelector};
56pub use move_selector::{
57    ChangeMoveSelector, MoveSelector, MoveStreamContext, ScalarChangeMoveSelector,
58    ScalarSwapMoveSelector, SwapMoveSelector,
59};
60pub use nearby::{NearbyDistanceMeter, NearbyEntitySelector, NearbySelectionConfig};
61pub use nearby_list_change::{
62    CrossEntityDistanceMeter, DefaultCrossEntityDistanceMeter, NearbyListChangeMoveSelector,
63};
64pub use nearby_list_swap::NearbyListSwapMoveSelector;
65pub use pillar::{DefaultPillarSelector, Pillar, PillarSelector, SubPillarConfig};
66pub use ruin::{RuinMoveSelector, RuinVariableAccess};
67pub use selection_order::SelectionOrder;
68pub use sublist_change::SublistChangeMoveSelector;
69pub use sublist_swap::SublistSwapMoveSelector;
70pub use value_selector::{
71    FromSolutionValueSelector, PerEntitySliceValueSelector, PerEntityValueSelector,
72    RangeValueSelector, StaticValueSelector, ValueSelector,
73};