Skip to main content

quantrs2_anneal/active_learning_decomposition/
performance_evaluation.rs

1//! Performance evaluation components
2
3use std::collections::HashMap;
4use std::time::Duration;
5
6use super::{DecompositionStrategy, EvaluationMetric, PerformanceRecord};
7
8/// Performance evaluator
9#[derive(Debug, Clone)]
10pub struct PerformanceEvaluator {
11    /// Evaluation metrics
12    pub evaluation_metrics: Vec<EvaluationMetric>,
13    /// Baseline comparisons
14    pub baseline_comparisons: Vec<BaselineComparison>,
15    /// Performance history
16    pub performance_history: Vec<PerformanceRecord>,
17    /// Evaluation cache
18    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/// Baseline comparison
37#[derive(Debug, Clone)]
38pub struct BaselineComparison {
39    /// Baseline name
40    pub baseline_name: String,
41    /// Baseline strategy
42    pub baseline_strategy: DecompositionStrategy,
43    /// Performance comparison
44    pub performance_comparison: PerformanceComparison,
45}
46
47/// Performance comparison
48#[derive(Debug, Clone)]
49pub struct PerformanceComparison {
50    /// Improvement factor
51    pub improvement_factor: f64,
52    /// Statistical significance
53    pub statistical_significance: f64,
54    /// Confidence interval
55    pub confidence_interval: (f64, f64),
56}
57
58/// Evaluation result
59#[derive(Debug, Clone)]
60pub struct EvaluationResult {
61    /// Individual metric scores
62    pub metric_scores: HashMap<EvaluationMetric, f64>,
63    /// Overall evaluation score
64    pub overall_score: f64,
65    /// Performance improvement
66    pub improvement_over_baseline: f64,
67    /// Evaluation confidence
68    pub confidence: f64,
69}