Skip to main content

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}