Skip to main content

Bayesian noise tracking for quantum circuits via Petz recovery maps

Project description

tau-chrono

Tests License: MIT

Bayesian noise tracking for quantum circuits via Petz recovery maps. 46% more accurate than independent gate models on real hardware.

Author: Sheng-Kai Huang (akai@fawstudio.com) Website: tau-chrono.pages.dev

Quickstart

pip install tau-chrono
import numpy as np
from tau_chrono import depolarizing, bayesian_compose

# Build a 20-gate circuit with 5% depolarizing noise per gate
gates = [depolarizing(0.05) for _ in range(20)]
rho = np.array([[1, 0], [0, 0]], dtype=complex)    # |0>
sigma = np.eye(2, dtype=complex) / 2                # maximally mixed

# Compare naive vs Bayesian noise prediction
result = bayesian_compose(gates, sigma_0=sigma, rho=rho)
print(f"Naive:    tau = {result.tau_multiplicative_total:.3f}")
print(f"Bayesian: tau = {result.tau_bayesian_total:.3f}")
print(f"Improvement: {result.improvement_percent:.1f}%")

Key Results (QuTech Tuna-9 Hardware)

All results from real NISQ hardware experiments on the QuTech Tuna-9 superconducting processor (9 transmon qubits, 4096 shots).

Experiment Result
Depth scaling (depth 50) 46% more accurate than independent model
Bernstein-Vazirani (4 qubits) 60.4% improvement, 4 false failures avoided
H2 VQE Bayesian keeps depth 4 viable (tau=0.49); naive says stop (tau=0.60)
Composition inequality Verified across all 65 circuit configurations

Depth Scaling

Depth scaling results

Improvement grows monotonically with depth: 2.3% at depth 2, 46% at depth 50.

Bernstein-Vazirani

Bernstein-Vazirani results

The naive model falsely predicts failure at 3+ oracle repetitions. All circuits actually succeed with >83% probability.

H2 VQE

H2 VQE results

Bayesian tracking doubles usable ansatz depth (2 to 4). At depth 4: naive tau=0.60 (STOP), Bayesian tau=0.49 (GO).

Why It Works

Independent gate noise models assume each gate fails independently. In reality, noise saturates: a qubit that's already noisy can't get much noisier. The Petz recovery map (Petz, 1986) tracks this saturation through the circuit by propagating a Bayesian reference state alongside the signal state.

Interactive Demo

pip install tau-chrono[demo]
streamlit run demo.py

Adjust noise type, error rate, and circuit depth interactively.

Honest Limitations

  1. Small hardware only. All results from QuTech Tuna-9 (5-9 qubits). Not tested on larger devices.
  2. Improvement is noise-dependent. Large on noisy hardware, diminishes on low-noise hardware.
  3. Depolarizing approximation. Structured noise (coherent errors, leakage) is not captured.
  4. Not tested on IBM or Google hardware. Portability is plausible but unverified.

Theoretical Foundation

All theoretical tools are due to their original authors:

  • D. Petz, Commun. Math. Phys. 105, 123 (1986) -- Petz recovery map
  • A. J. Parzygnat and F. Buscemi, Quantum 7, 1013 (2023) -- Unique retrodiction functor
  • M. Junge et al., Ann. Henri Poincare 19, 2955 (2018) -- Strengthened data processing inequality

Development

git clone https://github.com/akaiHuang/tau-chrono.git
cd tau-chrono
pip install -e ".[dev]"
pytest tests/

Citation

@software{Huang2026BayesianPetz,
  author  = {Huang, Sheng-Kai},
  title   = {Bayesian Noise Tracking via Petz Recovery Maps},
  year    = {2026},
  url     = {https://github.com/akaiHuang/tau-chrono}
}

License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tau_chrono-0.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tau_chrono-0.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file tau_chrono-0.1.0.tar.gz.

File metadata

  • Download URL: tau_chrono-0.1.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.12

File hashes

Hashes for tau_chrono-0.1.0.tar.gz
Algorithm Hash digest
SHA256 faff035064e62bc1cbe4c696346373e846c433af467001ddec63e64924b43008
MD5 5e3941cb322951dd438506bef746a8bd
BLAKE2b-256 a6119370fd2b52eb95ed87cee60f9197c4679d77bdc7ddb911697d8ed6d806c2

See more details on using hashes here.

File details

Details for the file tau_chrono-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tau_chrono-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.12

File hashes

Hashes for tau_chrono-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5844f4ba0c1d04dc88fd64bad97f0aac32fe8780018eaa7d2f7f34f88ffaaba0
MD5 1b0a1435321b6aefaea7d7835cb3c962
BLAKE2b-256 c40701e003dac80eb1d699d012c21b879c50a12961c0bd7f44fa6c9f7677eab0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page