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