Computing Library › Quantum Algorithms
Quantum Algorithms

Zero-Noise Extrapolation

Deliberately amplifying noise, measuring the result at several noise levels, and extrapolating back to the zero-noise limit.

The premise

Suppose an expectation value depends smoothly on the hardware noise strength lambda: at lambda = 1 you get the raw noisy result, and at lambda = 0 you would get the ideal value. Zero-noise extrapolation (ZNE) measures at several controlled noise levels lambda >= 1, fits a curve, and extrapolates to lambda = 0. It cannot reduce noise below the hardware floor directly, so it increases noise to map the trend.

Amplifying noise

Kronos motion — quantum verdict

Extrapolation models

With expectation values measured at scale factors like lambda = 1, 2, 3, fit a model and evaluate at zero. Common models are linear (assuming small noise), polynomial (for curvature), and exponential (motivated by depolarizing noise, where decays as exp(-gamma lambda)). The exponential model often matches depolarizing-dominated hardware well; the linear model is simplest but biased if higher-order noise matters.

python
import numpy as np
# linear ZNE from expectation values at noise scales
scales = np.array([1.0, 2.0, 3.0])
vals   = np.array([0.62, 0.48, 0.37])  # measured <O> at each scale
slope, intercept = np.polyfit(scales, vals, 1)
zne_estimate = intercept   # value extrapolated to scale 0
print(zne_estimate)

Strengths and limits

ZNE needs no extra qubits and no detailed noise model, making it one of the most practical mitigation methods. Its accuracy depends on the extrapolation model matching the true noise dependence; a wrong model introduces bias, and each extra noise level multiplies the measurement cost. It works best for shallow-to-moderate circuits where the noise-versus-observable curve is smooth. ZNE is often combined with readout mitigation and is a staple of the error mitigation toolkit.