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 entity;
9pub mod k_opt;
10pub mod list_change;
11pub mod list_reverse;
12pub mod list_ruin;
13pub mod list_swap;
14pub mod mimic;
15pub mod move_selector;
16pub mod nearby;
17pub mod nearby_list_change;
18pub mod nearby_list_swap;
19pub mod pillar;
20pub mod ruin;
21mod selection_order;
22pub mod sublist_change;
23pub mod sublist_swap;
24pub mod value_selector;
25
26#[cfg(test)]
27mod tests;
28
29pub use entity::{
30    AllEntitiesSelector, EntityReference, EntitySelector, FromSolutionEntitySelector,
31};
32pub use k_opt::{
33    DefaultDistanceMeter, KOptConfig, KOptMoveSelector, ListPositionDistanceMeter,
34    NearbyKOptMoveSelector,
35};
36pub use list_change::ListChangeMoveSelector;
37pub use list_reverse::{ListMoveListReverseSelector, ListReverseMoveSelector};
38pub use list_ruin::ListRuinMoveSelector;
39pub use list_swap::{ListMoveListSwapSelector, ListSwapMoveSelector};
40pub use mimic::{MimicRecorder, MimicRecordingEntitySelector, MimicReplayingEntitySelector};
41pub use move_selector::{
42    ChangeMoveSelector, EitherChangeMoveSelector, EitherSwapMoveSelector, ListMoveKOptSelector,
43    ListMoveListChangeSelector, ListMoveListRuinSelector, ListMoveNearbyKOptSelector, MoveSelector,
44    SwapMoveSelector,
45};
46pub use nearby::{NearbyDistanceMeter, NearbyEntitySelector, NearbySelectionConfig};
47pub use nearby_list_change::{
48    CrossEntityDistanceMeter, DefaultCrossEntityDistanceMeter, ListMoveNearbyListChangeSelector,
49    NearbyListChangeMoveSelector,
50};
51pub use nearby_list_swap::{ListMoveNearbyListSwapSelector, NearbyListSwapMoveSelector};
52pub use pillar::{DefaultPillarSelector, Pillar, PillarSelector, SubPillarConfig};
53pub use ruin::RuinMoveSelector;
54pub use selection_order::SelectionOrder;
55pub use sublist_change::{ListMoveSubListChangeSelector, SubListChangeMoveSelector};
56pub use sublist_swap::{ListMoveSubListSwapSelector, SubListSwapMoveSelector};
57pub use value_selector::{
58    FromSolutionValueSelector, PerEntityValueSelector, RangeValueSelector, StaticValueSelector,
59    ValueSelector,
60};