Bayesian noise tracking for quantum circuits via Petz recovery maps
Project description
tau-chrono
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
Improvement grows monotonically with depth: 2.3% at depth 2, 46% at depth 50.
Bernstein-Vazirani
The naive model falsely predicts failure at 3+ oracle repetitions. All circuits actually succeed with >83% probability.
H2 VQE
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
- Small hardware only. All results from QuTech Tuna-9 (5-9 qubits). Not tested on larger devices.
- Improvement is noise-dependent. Large on noisy hardware, diminishes on low-noise hardware.
- Depolarizing approximation. Structured noise (coherent errors, leakage) is not captured.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faff035064e62bc1cbe4c696346373e846c433af467001ddec63e64924b43008
|
|
| MD5 |
5e3941cb322951dd438506bef746a8bd
|
|
| BLAKE2b-256 |
a6119370fd2b52eb95ed87cee60f9197c4679d77bdc7ddb911697d8ed6d806c2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5844f4ba0c1d04dc88fd64bad97f0aac32fe8780018eaa7d2f7f34f88ffaaba0
|
|
| MD5 |
1b0a1435321b6aefaea7d7835cb3c962
|
|
| BLAKE2b-256 |
c40701e003dac80eb1d699d012c21b879c50a12961c0bd7f44fa6c9f7677eab0
|