solverforge_config/
acceptor.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize)]
5#[serde(tag = "type", rename_all = "snake_case")]
6pub enum AcceptorConfig {
7 HillClimbing,
9
10 TabuSearch(TabuSearchConfig),
12
13 SimulatedAnnealing(SimulatedAnnealingConfig),
15
16 LateAcceptance(LateAcceptanceConfig),
18
19 GreatDeluge(GreatDelugeConfig),
21}
22
23#[derive(Debug, Clone, Default, Deserialize, Serialize)]
25#[serde(rename_all = "snake_case")]
26pub struct TabuSearchConfig {
27 pub entity_tabu_size: Option<usize>,
29
30 pub value_tabu_size: Option<usize>,
32
33 pub move_tabu_size: Option<usize>,
35
36 pub undo_move_tabu_size: Option<usize>,
38}
39
40#[derive(Debug, Clone, Default, Deserialize, Serialize)]
42#[serde(rename_all = "snake_case")]
43pub struct SimulatedAnnealingConfig {
44 pub starting_temperature: Option<String>,
46}
47
48#[derive(Debug, Clone, Default, Deserialize, Serialize)]
50#[serde(rename_all = "snake_case")]
51pub struct LateAcceptanceConfig {
52 pub late_acceptance_size: Option<usize>,
54}
55
56#[derive(Debug, Clone, Default, Deserialize, Serialize)]
58#[serde(rename_all = "snake_case")]
59pub struct GreatDelugeConfig {
60 pub water_level_increase_ratio: Option<f64>,
62}