quantrs2_anneal/active_learning_decomposition/
performance_evaluation.rs1use std::collections::HashMap;
4use std::time::Duration;
5
6use super::{DecompositionStrategy, EvaluationMetric, PerformanceRecord};
7
8#[derive(Debug, Clone)]
10pub struct PerformanceEvaluator {
11 pub evaluation_metrics: Vec<EvaluationMetric>,
13 pub baseline_comparisons: Vec<BaselineComparison>,
15 pub performance_history: Vec<PerformanceRecord>,
17 pub evaluation_cache: HashMap<String, EvaluationResult>,
19}
20
21impl PerformanceEvaluator {
22 pub fn new() -> Result<Self, String> {
23 Ok(Self {
24 evaluation_metrics: vec![
25 EvaluationMetric::SolutionQuality,
26 EvaluationMetric::ComputationTime,
27 EvaluationMetric::MemoryUsage,
28 ],
29 baseline_comparisons: Vec::new(),
30 performance_history: Vec::new(),
31 evaluation_cache: HashMap::new(),
32 })
33 }
34}
35
36#[derive(Debug, Clone)]
38pub struct BaselineComparison {
39 pub baseline_name: String,
41 pub baseline_strategy: DecompositionStrategy,
43 pub performance_comparison: PerformanceComparison,
45}
46
47#[derive(Debug, Clone)]
49pub struct PerformanceComparison {
50 pub improvement_factor: f64,
52 pub statistical_significance: f64,
54 pub confidence_interval: (f64, f64),
56}
57
58#[derive(Debug, Clone)]
60pub struct EvaluationResult {
61 pub metric_scores: HashMap<EvaluationMetric, f64>,
63 pub overall_score: f64,
65 pub improvement_over_baseline: f64,
67 pub confidence: f64,
69}