Decoherence is the process by which quantum systems lose their quantum properties through interactions with the environment. It is the central obstacle to building practical quantum computers.
What Happens During Decoherence¶
Consider a qubit in superposition interacting with an environment $|E\rangle$:
$$\left(\alpha|0\rangle + \beta|1\rangle\right) \otimes |E_0\rangle \xrightarrow{\text{interaction}} \alpha|0\rangle|E_0\rangle + \beta|1\rangle|E_1\rangle$$
The qubit has become entangled with the environment. If we trace out (ignore) the environment, the qubit’s reduced density matrix becomes:
$$\rho = \begin{pmatrix} |\alpha|^2 & \alpha\beta^* \langle E_1|E_0\rangle \\ \alpha^*\beta \langle E_0|E_1\rangle & |\beta|^2 \end{pmatrix}$$
As $\langle E_0|E_1\rangle \to 0$ (the environment states become distinguishable), the off-diagonal terms vanish. The qubit effectively becomes a classical mixture — superposition is destroyed.
T1 and T2 Times¶
Two key timescales characterize decoherence:
- $T_1$ (relaxation time): The time for a qubit to decay from $|1\rangle$ to $|0\rangle$ (energy loss)
- $T_2$ (dephasing time): The time for the relative phase between $|0\rangle$ and $|1\rangle$ to randomize
Always $T_2 \leq 2T_1$. Modern superconducting qubits achieve $T_1 \approx 100$–$500 \mu s$ and $T_2 \approx 50$–$200 \mu s$.
The Density Matrix Formalism¶
For a mixed state, we use the density matrix:
$$\rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|$$
A pure state satisfies $\text{Tr}(\rho^2) = 1$, while a fully decohered state has $\text{Tr}(\rho^2) = \frac{1}{d}$ where $d$ is the dimension.
Strategies Against Decoherence¶
- Better hardware: Colder temperatures, cleaner materials, better isolation
- Faster gates: Complete computation before decoherence sets in
- Quantum error correction: Redundantly encode information
- Dynamical decoupling: Apply rapid pulse sequences to refocus the qubit
- Topological qubits: Encode information in global properties immune to local noise
import numpy as np
def simulate_dephasing(T2, t_steps, dt=0.01):
"""Simulate T2 dephasing of a qubit initially in |+⟩."""
rho = np.array([[0.5, 0.5], [0.5, 0.5]], dtype=complex)
coherences = []
times = []
for step in range(t_steps):
t = step * dt
decay = np.exp(-t / T2)
rho_t = np.array([
[0.5, 0.5 * decay],
[0.5 * decay, 0.5],
])
coherences.append(abs(rho_t[0, 1]))
times.append(t)
return times, coherences
times, coh = simulate_dephasing(T2=100e-6, t_steps=500, dt=1e-6)
print(f"Initial coherence: {coh[0]:.4f}")
print(f"After T2: {coh[-1]:.4f}")
The Measurement Problem Connection¶
Decoherence provides a partial answer to the measurement problem: it explains why we never observe macroscopic superpositions. Large objects interact with so many environmental degrees of freedom that decoherence is effectively instantaneous — on the order of $10^{-30}$ seconds for everyday objects.