solverforge_solver/phase/construction/config.rs
1//! Construction heuristic phase configuration.
2
3/// Construction heuristic phase configuration.
4#[derive(Debug, Clone)]
5pub struct ConstructionHeuristicConfig {
6 /// The forager type to use.
7 pub forager_type: ForagerType,
8}
9
10impl Default for ConstructionHeuristicConfig {
11 fn default() -> Self {
12 Self {
13 forager_type: ForagerType::FirstFit,
14 }
15 }
16}
17
18/// Type of forager to use in construction.
19#[derive(Debug, Clone, Copy, PartialEq, Eq)]
20pub enum ForagerType {
21 /// Accept the first feasible move.
22 FirstFit,
23 /// Evaluate all moves and pick the best.
24 BestFit,
25 /// Pick the first move that results in a feasible score.
26 FirstFeasible,
27 /// Pick the move with the lowest strength value.
28 WeakestFit,
29 /// Pick the move with the highest strength value.
30 StrongestFit,
31}