solverforge_solver/heuristic/selector/k_opt/
config.rs1#[derive(Debug, Clone)]
5pub struct KOptConfig {
6 pub k: usize,
8 pub min_segment_len: usize,
10 pub limited_patterns: bool,
12}
13
14impl KOptConfig {
15 pub fn new(k: usize) -> Self {
21 assert!((2..=5).contains(&k), "k must be between 2 and 5");
22 Self {
23 k,
24 min_segment_len: 1,
25 limited_patterns: false,
26 }
27 }
28
29 pub fn with_min_segment_len(mut self, len: usize) -> Self {
30 self.min_segment_len = len;
31 self
32 }
33
34 pub fn with_limited_patterns(mut self, limited: bool) -> Self {
36 self.limited_patterns = limited;
37 self
38 }
39}