quantrs2_device/unified_benchmarking/
optimization.rs1use serde::{Deserialize, Serialize};
4use std::collections::{HashMap, VecDeque};
5use std::time::SystemTime;
6
7use super::results::{OptimizationResult, UnifiedBenchmarkResult};
8
9pub struct OptimizationEngine {
11 objective_functions: HashMap<String, Box<dyn Fn(&UnifiedBenchmarkResult) -> f64 + Send + Sync>>,
12 optimization_history: VecDeque<OptimizationResult>,
13 current_strategy: OptimizationStrategy,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct OptimizationStrategy {
18 pub strategy_name: String,
19 pub parameters: HashMap<String, f64>,
20 pub last_updated: SystemTime,
21 pub effectiveness_score: f64,
22}
23
24impl Default for OptimizationEngine {
25 fn default() -> Self {
26 Self::new()
27 }
28}
29
30impl OptimizationEngine {
31 pub fn new() -> Self {
32 Self {
33 objective_functions: HashMap::new(),
34 optimization_history: VecDeque::new(),
35 current_strategy: OptimizationStrategy {
36 strategy_name: "default".to_string(),
37 parameters: HashMap::new(),
38 last_updated: SystemTime::now(),
39 effectiveness_score: 0.0,
40 },
41 }
42 }
43
44 }