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