quantrs2_tytan/solution_debugger/
analysis.rs

1//! Analysis results for the solution debugger.
2
3use super::constraint_analyzer::ConstraintViolation;
4use super::energy_analyzer::EnergyBreakdown;
5use serde::Serialize;
6
7/// Constraint analysis results
8#[derive(Debug, Clone, Serialize)]
9pub struct ConstraintAnalysis {
10    /// Total number of constraints
11    pub total_constraints: usize,
12    /// Number of satisfied constraints
13    pub satisfied: usize,
14    /// Number of violated constraints
15    pub violated: usize,
16    /// Satisfaction rate (0.0 to 1.0)
17    pub satisfaction_rate: f64,
18    /// Total penalty incurred
19    pub penalty_incurred: f64,
20    /// Detailed violations
21    pub violations: Vec<ConstraintViolation>,
22}
23
24/// Energy analysis results
25#[derive(Debug, Clone, Serialize)]
26pub struct EnergyAnalysis {
27    /// Total energy of the solution
28    pub total_energy: f64,
29    /// Detailed energy breakdown
30    pub breakdown: EnergyBreakdown,
31    /// Most critical variables (highest energy contribution)
32    pub critical_variables: Vec<(String, f64)>,
33    /// Most critical interactions
34    pub critical_interactions: Vec<((String, String), f64)>,
35    /// Estimated improvement potential (0.0 to 1.0)
36    pub improvement_potential: f64,
37}