quantrs2_ml/automl/config/
mod.rs1pub mod evaluation;
8pub mod objectives;
9pub mod quantum_constraints;
10pub mod search_budget;
11pub mod search_space;
12
13pub use evaluation::*;
14pub use objectives::*;
15pub use quantum_constraints::*;
16pub use search_budget::*;
17pub use search_space::*;
18
19use std::collections::HashMap;
20
21#[derive(Debug, Clone)]
23pub struct QuantumAutoMLConfig {
24 pub task_type: Option<MLTaskType>,
26
27 pub search_budget: SearchBudgetConfig,
29
30 pub objectives: Vec<OptimizationObjective>,
32
33 pub search_space: SearchSpaceConfig,
35
36 pub quantum_constraints: QuantumConstraints,
38
39 pub evaluation_config: EvaluationConfig,
41
42 pub advanced_features: AdvancedAutoMLFeatures,
44}
45
46#[derive(Debug, Clone, PartialEq)]
48pub enum MLTaskType {
49 BinaryClassification,
51
52 MultiClassification { num_classes: usize },
54
55 MultiLabelClassification { num_labels: usize },
57
58 Regression,
60
61 TimeSeriesForecasting { horizon: usize },
63
64 Clustering { num_clusters: Option<usize> },
66
67 AnomalyDetection,
69
70 DimensionalityReduction { target_dim: Option<usize> },
72
73 ReinforcementLearning,
75
76 GenerativeModeling,
78}
79
80#[derive(Debug, Clone)]
82pub struct AdvancedAutoMLFeatures {
83 pub online_learning: bool,
85
86 pub interpretability: bool,
88
89 pub pipeline_anomaly_detection: bool,
91
92 pub deployment_optimization: bool,
94
95 pub quantum_error_mitigation: bool,
97
98 pub warm_start: bool,
100
101 pub multi_objective: bool,
103
104 pub fairness_optimization: bool,
106}
107
108impl Default for AdvancedAutoMLFeatures {
109 fn default() -> Self {
110 Self {
111 online_learning: false,
112 interpretability: true,
113 pipeline_anomaly_detection: true,
114 deployment_optimization: false,
115 quantum_error_mitigation: true,
116 warm_start: true,
117 multi_objective: true,
118 fairness_optimization: false,
119 }
120 }
121}
122
123impl QuantumAutoMLConfig {
124 pub fn basic() -> Self {
126 Self {
127 task_type: None,
128 search_budget: SearchBudgetConfig::quick(),
129 objectives: vec![OptimizationObjective::MaximizeAccuracy { weight: 1.0 }],
130 search_space: SearchSpaceConfig::default(),
131 quantum_constraints: QuantumConstraints::default(),
132 evaluation_config: EvaluationConfig::default(),
133 advanced_features: AdvancedAutoMLFeatures::default(),
134 }
135 }
136
137 pub fn comprehensive() -> Self {
139 Self {
140 task_type: None,
141 search_budget: SearchBudgetConfig::extensive(),
142 objectives: vec![
143 OptimizationObjective::MaximizeAccuracy { weight: 0.6 },
144 OptimizationObjective::MinimizeComplexity { weight: 0.2 },
145 OptimizationObjective::MaximizeQuantumAdvantage { weight: 0.2 },
146 ],
147 search_space: SearchSpaceConfig::comprehensive(),
148 quantum_constraints: QuantumConstraints::default(),
149 evaluation_config: EvaluationConfig::rigorous(),
150 advanced_features: AdvancedAutoMLFeatures {
151 online_learning: true,
152 interpretability: true,
153 pipeline_anomaly_detection: true,
154 deployment_optimization: true,
155 quantum_error_mitigation: true,
156 warm_start: true,
157 multi_objective: true,
158 fairness_optimization: true,
159 },
160 }
161 }
162
163 pub fn production() -> Self {
165 Self {
166 task_type: None,
167 search_budget: SearchBudgetConfig::production(),
168 objectives: vec![
169 OptimizationObjective::MaximizeAccuracy { weight: 0.5 },
170 OptimizationObjective::MinimizeInferenceTime { weight: 0.3 },
171 OptimizationObjective::MaximizeRobustness { weight: 0.2 },
172 ],
173 search_space: SearchSpaceConfig::production(),
174 quantum_constraints: QuantumConstraints::production(),
175 evaluation_config: EvaluationConfig::production(),
176 advanced_features: AdvancedAutoMLFeatures {
177 online_learning: false,
178 interpretability: true,
179 pipeline_anomaly_detection: true,
180 deployment_optimization: true,
181 quantum_error_mitigation: true,
182 warm_start: true,
183 multi_objective: false,
184 fairness_optimization: true,
185 },
186 }
187 }
188}