quantrs2_anneal/bayesian_hyperopt/
multi_objective.rs1#[derive(Debug, Clone)]
5pub struct MultiObjectiveConfig {
6 pub scalarization_method: ScalarizationMethod,
8 pub reference_point: Option<Vec<f64>>,
10 pub objective_weights: Vec<f64>,
12 pub pareto_method: ParetoApproximationMethod,
14 pub num_objectives: usize,
16}
17
18impl Default for MultiObjectiveConfig {
19 fn default() -> Self {
20 Self {
21 scalarization_method: ScalarizationMethod::WeightedSum,
22 reference_point: None,
23 objective_weights: vec![1.0],
24 pareto_method: ParetoApproximationMethod::NonDominatedSorting,
25 num_objectives: 1,
26 }
27 }
28}
29
30#[derive(Debug, Clone, PartialEq, Eq)]
32pub enum ScalarizationMethod {
33 WeightedSum,
35 Tchebycheff,
37 Achievement,
39 Hypervolume,
41 ExpectedHypervolumeImprovement,
43}
44
45#[derive(Debug, Clone, PartialEq, Eq)]
47pub enum ParetoApproximationMethod {
48 NonDominatedSorting,
50 NSGAII,
52 SPEA2,
54 HypervolumeSelection,
56}