quantrs2_device/ml_optimization/
config.rs

1//! ML Optimization Configuration Types
2
3use scirs2_core::ndarray::Array1;
4use serde::{Deserialize, Serialize};
5use std::collections::HashMap;
6
7/// Configuration for ML-driven optimization with SciRS2
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct MLOptimizationConfig {
10    /// Enable ML optimization
11    pub enable_optimization: bool,
12    /// ML model configuration
13    pub model_config: MLModelConfig,
14    /// Circuit feature extraction settings
15    pub feature_extraction: FeatureExtractionConfig,
16    /// Hardware prediction settings
17    pub hardware_prediction: HardwarePredictionConfig,
18    /// Online learning configuration
19    pub online_learning: OnlineLearningConfig,
20    /// Transfer learning settings
21    pub transfer_learning: TransferLearningConfig,
22    /// Ensemble methods configuration
23    pub ensemble_config: EnsembleConfig,
24    /// Optimization strategy settings
25    pub optimization_strategy: OptimizationStrategyConfig,
26    /// Validation and testing configuration
27    pub validation_config: MLValidationConfig,
28    /// Performance monitoring settings
29    pub monitoring_config: MLMonitoringConfig,
30}
31
32/// ML model configuration
33#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct MLModelConfig {
35    /// Primary ML algorithms to use
36    pub primary_algorithms: Vec<MLAlgorithm>,
37    /// Fallback algorithms
38    pub fallback_algorithms: Vec<MLAlgorithm>,
39    /// Model hyperparameters
40    pub hyperparameters: HashMap<String, MLHyperparameter>,
41    /// Training configuration
42    pub training_config: TrainingConfig,
43    /// Model selection strategy
44    pub model_selection: ModelSelectionStrategy,
45    /// Regularization settings
46    pub regularization: RegularizationConfig,
47}
48
49/// ML algorithms available
50#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
51pub enum MLAlgorithm {
52    /// Deep Neural Network
53    DeepNeuralNetwork,
54    /// Random Forest
55    RandomForest,
56    /// Gradient Boosting
57    GradientBoosting,
58    /// Support Vector Machine
59    SupportVectorMachine,
60    /// Gaussian Process
61    GaussianProcess,
62    /// Ensemble Methods
63    EnsembleMethods,
64    /// Reinforcement Learning
65    ReinforcementLearning,
66    /// Quantum Neural Network
67    QuantumNeuralNetwork,
68    /// Graph Neural Network
69    GraphNeuralNetwork,
70    /// Transformer Networks
71    TransformerNetwork,
72    /// Bayesian Networks
73    BayesianNetwork,
74    /// Custom algorithm
75    Custom(String),
76}
77
78/// ML hyperparameter definition
79#[derive(Debug, Clone, Serialize, Deserialize)]
80pub struct MLHyperparameter {
81    pub parameter_type: HyperparameterType,
82    pub value: HyperparameterValue,
83    pub search_space: Option<HyperparameterSearchSpace>,
84    pub importance: f64,
85}
86
87/// Hyperparameter types
88#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
89pub enum HyperparameterType {
90    Integer,
91    Float,
92    Categorical,
93    Boolean,
94    Array,
95}
96
97/// Hyperparameter values
98#[derive(Debug, Clone, Serialize, Deserialize)]
99pub enum HyperparameterValue {
100    Integer(i64),
101    Float(f64),
102    Categorical(String),
103    Boolean(bool),
104    Array(Array1<f64>),
105}
106
107/// Hyperparameter search space
108#[derive(Debug, Clone, Serialize, Deserialize)]
109pub enum HyperparameterSearchSpace {
110    IntegerRange(i64, i64),
111    FloatRange(f64, f64),
112    CategoricalOptions(Vec<String>),
113    BooleanOptions,
114    ArrayBounds(Vec<(f64, f64)>),
115}
116
117/// Model selection strategies
118#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
119pub enum ModelSelectionStrategy {
120    CrossValidation,
121    HoldoutValidation,
122    BootstrapValidation,
123    TimeSeriesValidation,
124    BayesianModelSelection,
125    EnsembleSelection,
126}
127
128// Forward declarations for types that will be defined in other modules
129use super::{
130    ensemble::EnsembleConfig,
131    features::FeatureExtractionConfig,
132    hardware::HardwarePredictionConfig,
133    monitoring::MLMonitoringConfig,
134    online_learning::OnlineLearningConfig,
135    optimization::OptimizationStrategyConfig,
136    training::{RegularizationConfig, TrainingConfig},
137    transfer_learning::TransferLearningConfig,
138    validation::MLValidationConfig,
139};