quantrs2_device/ml_optimization/
hardware.rs

1//! Hardware Prediction Configuration Types
2
3use serde::{Deserialize, Serialize};
4use std::time::Duration;
5
6/// Hardware prediction configuration
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct HardwarePredictionConfig {
9    /// Enable hardware prediction
10    pub enable_prediction: bool,
11    /// Prediction targets
12    pub prediction_targets: Vec<PredictionTarget>,
13    /// Prediction horizon
14    pub prediction_horizon: Duration,
15    /// Uncertainty quantification
16    pub uncertainty_quantification: bool,
17    /// Multi-step prediction
18    pub multi_step_prediction: bool,
19    /// Hardware adaptation
20    pub hardware_adaptation: HardwareAdaptationConfig,
21}
22
23/// Prediction targets
24#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
25pub enum PredictionTarget {
26    CircuitFidelity,
27    ExecutionTime,
28    ErrorRate,
29    ResourceUtilization,
30    CircuitDepth,
31    SwapCount,
32    GateCount,
33    OptimalMapping,
34    HardwareBottlenecks,
35    CalibrationDrift,
36}
37
38/// Hardware adaptation configuration
39#[derive(Debug, Clone, Serialize, Deserialize)]
40pub struct HardwareAdaptationConfig {
41    /// Enable adaptive optimization
42    pub enable_adaptation: bool,
43    /// Adaptation frequency
44    pub adaptation_frequency: Duration,
45    /// Adaptation triggers
46    pub adaptation_triggers: Vec<AdaptationTrigger>,
47    /// Learning rate adaptation
48    pub learning_rate_adaptation: bool,
49}
50
51/// Adaptation triggers
52#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
53pub enum AdaptationTrigger {
54    PerformanceDegradation,
55    CalibrationDrift,
56    EnvironmentalChange,
57    NewHardwareData,
58    ScheduledUpdate,
59    ThresholdBreach,
60}