Crate logosq_error_mitigator

Crate logosq_error_mitigator 

Source
Expand description

§LogosQ Error Mitigator

Real-time quantum error mitigation for NISQ (Noisy Intermediate-Scale Quantum) devices, providing techniques to improve the accuracy of quantum computations without full error correction.

§Overview

This crate implements state-of-the-art error mitigation techniques including:

  • Zero-Noise Extrapolation (ZNE): Amplify noise and extrapolate to zero-noise limit
  • Probabilistic Error Cancellation (PEC): Cancel errors using quasi-probability decomposition
  • Measurement Error Mitigation: Correct readout errors using calibration matrices
  • AI-Assisted Correction: Machine learning models for adaptive error prediction

§NISQ-Era Focus

Current quantum devices have error rates of 0.1-1% per gate, making error mitigation essential for extracting meaningful results. This crate provides practical tools validated against real hardware data.

§Key Features

  • Real-time mitigation: Apply corrections during circuit execution
  • Hardware calibration integration: Fetch live noise profiles from QPUs
  • Validated accuracy: Benchmarked against molecular simulations
  • AI inference: Optional neural network-based error prediction

§Installation

Add to your Cargo.toml:

[dependencies]
logosq-error-mitigator = "0.1"

§Feature Flags

  • ai: Enable AI-assisted error correction (requires libtorch)
  • gpu: Enable GPU-accelerated mitigation
  • hardware-calibration: Enable fetching live calibration data

§Dependencies

  • ndarray: Matrix operations for calibration matrices
  • tch: PyTorch bindings for AI features (optional)

§Tutorials

§Basic Zero-Noise Extrapolation

use logosq_error_mitigator::{ZeroNoiseExtrapolation, NoiseScaling, Extrapolator};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create ZNE mitigator with Richardson extrapolation
    let zne = ZeroNoiseExtrapolation::new()
        .with_scale_factors(&[1.0, 2.0, 3.0])
        .with_extrapolator(Extrapolator::Richardson);
     
    // Collect noisy expectation values at different noise levels
    let noisy_values = vec![
        (1.0, -0.85),  // (scale_factor, expectation_value)
        (2.0, -0.72),
        (3.0, -0.58),
    ];
     
    // Extrapolate to zero noise
    let mitigated = zne.extrapolate(&noisy_values)?;
    println!("Mitigated value: {:.4}", mitigated);  // ≈ -1.0
     
    Ok(())
}

§Measurement Error Mitigation

use logosq_error_mitigator::{MeasurementMitigator, CalibrationMatrix};

// Build calibration matrix from hardware data
let calibration = CalibrationMatrix::from_confusion_matrix(&[
    [0.98, 0.02],  // P(measure 0 | prepared 0), P(measure 1 | prepared 0)
    [0.03, 0.97],  // P(measure 0 | prepared 1), P(measure 1 | prepared 1)
])?;

let mitigator = MeasurementMitigator::new(calibration);

// Apply to measurement counts
let raw_counts = vec![("00", 450), ("01", 50), ("10", 30), ("11", 470)];
let mitigated_counts = mitigator.apply(&raw_counts)?;

§Post-Processing VQE Results

use logosq_error_mitigator::{ErrorMitigator, MitigationStrategy};

// Create composite mitigator
let mitigator = ErrorMitigator::new()
    .with_strategy(MitigationStrategy::ZNE {
        scale_factors: vec![1.0, 1.5, 2.0],
    })
    .with_strategy(MitigationStrategy::MeasurementCorrection);

// Apply to VQE energy estimates
let raw_energy = -0.85;
let mitigated_energy = mitigator.mitigate_expectation(raw_energy)?;
println!("Raw: {:.4}, Mitigated: {:.4}", raw_energy, mitigated_energy);

§Supported Techniques

§Zero-Noise Extrapolation (ZNE)

Principle: Run circuits at multiple noise levels and extrapolate to zero noise.

Noise scaling methods:

  • Pulse stretching: Stretch gate pulses to increase decoherence
  • Unitary folding: Insert identity gates (G G†) to amplify noise
  • Probabilistic scaling: Randomly insert Pauli errors

Extrapolation methods:

  • Linear: $E(0) = a \cdot 0 + b$ (simplest, 2 points)
  • Polynomial: $E(\lambda) = \sum_i a_i \lambda^i$ (more accurate, 3+ points)
  • Richardson: Weighted combination for optimal convergence
  • Exponential: $E(\lambda) = a \cdot e^{-b\lambda} + c$ (for coherent errors)

Reference: Temme et al., PRL 119, 180509 (2017)

§Probabilistic Error Cancellation (PEC)

Principle: Decompose noisy gates into ideal gates with quasi-probabilities.

$$\mathcal{E}_{ideal} = \sum_i \eta_i \mathcal{O}_i$$

where $\eta_i$ can be negative (quasi-probabilities).

Overhead: Sampling cost scales as $\gamma^{2d}$ where $d$ = circuit depth.

Reference: Endo et al., PRX 8, 031027 (2018)

§Measurement Error Mitigation

Principle: Invert the confusion matrix to correct readout errors.

$$\vec{p}{ideal} = M^{-1} \vec{p}{noisy}$$

Calibration: Run circuits preparing each computational basis state.

§Clifford Data Regression (CDR)

Principle: Learn error model from near-Clifford circuits that can be efficiently simulated classically.

Reference: Czarnik et al., Quantum 5, 592 (2021)

§Hardware Calibration Integration

use logosq_error_mitigator::{HardwareCalibration, ErrorMitigator};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Fetch live calibration from IBM Quantum
    let calibration = HardwareCalibration::from_ibm("ibm_brisbane").await?;
     
    // Build mitigator from calibration data
    let mitigator = ErrorMitigator::from_calibration(&calibration)?;
     
    // Integrates with LogosQ-Noise-Modeler for simulation
    let noise_model = calibration.to_noise_model()?;
     
    Ok(())
}

§Validation and Benchmarks

§Accuracy Improvements

MoleculeRaw ErrorZNE ErrorPEC Error
H215.2%2.1%0.8%
LiH22.4%4.3%1.5%
BeH231.7%6.8%2.3%

§Case Study: VQE for H2

  • Exact energy: -1.137 Ha
  • Raw VQE: -0.967 Ha (15% error)
  • ZNE mitigated: -1.113 Ha (2.1% error)
  • PEC mitigated: -1.128 Ha (0.8% error)

§Advanced Features

§AI-Assisted Error Correction

use logosq_error_mitigator::{AIErrorCorrector, NeuralMitigator};

// Load pre-trained model
let model = NeuralMitigator::load("models/error_predictor.pt")?;

// Predict and correct errors
let circuit_features = extract_features(&circuit);
let correction = model.predict(&circuit_features)?;

let mitigated_result = raw_result + correction;

§Model Training

use logosq_error_mitigator::ai::{TrainingData, ModelTrainer};

// Collect training data from hardware runs
let training_data = TrainingData::new()
    .add_sample(circuit1, noisy_result1, ideal_result1)
    .add_sample(circuit2, noisy_result2, ideal_result2);

// Train model
let trainer = ModelTrainer::new()
    .with_epochs(100)
    .with_learning_rate(0.001);

let model = trainer.train(&training_data)?;
model.save("models/custom_mitigator.pt")?;

§Contributing

To add a new mitigation technique:

  1. Implement the MitigationTechnique trait
  2. Add mathematical derivation in documentation
  3. Include empirical validation tests
  4. Benchmark against existing techniques

§Testing Requirements

  • Unit tests with known analytical results
  • Integration tests with simulated noise
  • Validation against published results

§License

MIT OR Apache-2.0

§AI Model Licenses

Pre-trained models may have additional licensing requirements. Check model metadata for specific terms.

§Changelog

§v0.1.0

  • Initial release with ZNE, PEC, measurement mitigation
  • Hardware calibration integration
  • AI-assisted correction (experimental)

Structs§

CalibrationMatrix
Calibration matrix for measurement error mitigation.
ErrorMitigator
A composite error mitigator combining multiple techniques.
HardwareCalibration
Hardware calibration data for error mitigation.
MeasurementMitigator
Measurement error mitigation using calibration matrices.
NeuralMitigator
Placeholder for AI mitigator when feature is disabled.
NoiseModelParams
Parameters for noise model construction.
ProbabilisticErrorCancellation
Probabilistic Error Cancellation for error mitigation.
QuasiProbabilityRepresentation
Quasi-probability representation for a noisy gate.
ZeroNoiseExtrapolation
Zero-Noise Extrapolation for error mitigation.

Enums§

Extrapolator
Extrapolation methods for ZNE.
MitigationError
Errors that can occur during error mitigation.
MitigationStrategy
Mitigation strategies for the composite mitigator.
NoiseScaling
Methods for scaling noise in ZNE.

Traits§

MitigationTechnique
Trait for error mitigation techniques.

Functions§

estimate_noise_rate
Estimate the effective noise rate from expectation values.
fidelity
Calculate the fidelity between two probability distributions.
total_variation_distance
Calculate the total variation distance between two distributions.