4.3 量子隱形傳態#
概念說明#
量子隱形傳態(quantum teleportation)的目標:把一個未知量子態 \(|\psi\rangle = \alpha|0\rangle + \beta|1\rangle\) 從 Alice 傳給 Bob。注意:
- 傳的是態,不是粒子:Bob 手上原本就有一顆位元,我們讓它「變成」 \(|\psi\rangle\) 。
- 不違反不可克隆:Alice 的原態在過程中被測量摧毀——總共仍只有一份。
- 不超光速:Bob 必須先收到 Alice 的 2 個古典位元(測量結果)才能重建態,古典通訊受光速限制。
- 不解壓縮:兩個複數(無限精度)的態只需 2 個古典位元+1 對糾纏位元——不可克隆定理保證了這不可能被用來超光速傳訊。
電路步驟(3 位元:q2=待傳態、q1=Alice 的糾纏位元、q0=Bob 的糾纏位元):
- Alice 與 Bob 先共享 Bell 對: \(H(q_1)\) 、 \(\mathrm{CNOT}(q_1 \to q_0)\) 。
- \(\mathrm{CNOT}(q_2 \to q_1)\) 、 \(H(q_2)\) 。
- Alice 測量 \(q_2, q_1\) 得兩位元 \((m_1, m_0)\) ,用古典通道傳給 Bob。
- Bob 依結果修正:若 \(m_0=1\) 做 \(X\) ;若 \(m_1=1\) 做 \(Z\) 。
- 此時 \(q_0 = |\psi\rangle\) 。
數學上,步驟 1–3 後整體狀態可寫成
\[ |\psi\rangle|\beta_{00}\rangle \to \frac{1}{2}\Big[|\beta_{00}\rangle|\psi\rangle + |\beta_{01}\rangle X|\psi\rangle + |\beta_{10}\rangle Z|\psi\rangle + |\beta_{11}\rangle XZ|\psi\rangle\Big] \]
Alice 的兩位元古典資訊告訴 Bob 他在四個分支中的哪一個,於是只需對應的 Pauli 修正。
Python 範例#
import numpy as np
H = np.array([[1,1],[1,-1]], dtype=complex)/np.sqrt(2)
X = np.array([[0,1],[1,0]], dtype=complex)
Z = np.array([[1,0],[0,-1]], dtype=complex)
CX = np.array([[1,0,0,0],[0,1,0,0],[0,0,0,1],[0,0,1,0]], dtype=complex)
I2 = np.eye(2, dtype=complex)
CX_21 = np.kron(CX, I2) # 控制 q2 標的 q1
CX_10 = np.kron(I2, CX) # 控制 q1 標的 q0
H2 = np.kron(np.kron(H, I2), I2)
def teleport(psi, rng):
state = np.kron(np.kron(psi, ket0), ket0)
state = CX_10 @ np.kron(H, np.eye(4, dtype=complex)) @ state # Bell 對
state = H2 @ CX_21 @ state
# Alice 測 q2, q1
p = np.abs(state)**2
outcome = rng.choice(4, p=p)
m1, m0 = (outcome >> 1) & 1, outcome & 1
# Bob 修正
fix = np.eye(2)
if m0: fix = X @ fix
if m1: fix = Z @ fix
# 塌縮到量測結果對應的分支
prob = 0.0; bob = np.zeros(2, dtype=complex)
for b in range(2):
idx = (outcome << 1) | b
prob += p[idx]
bob[b] = state[idx]
bob /= np.sqrt(prob)
return m1, m0, fix @ bob
ket0 = np.array([1, 0], dtype=complex)
ket1 = np.array([0, 1], dtype=complex)
plus = (ket0 + ket1)/np.sqrt(2)
arb = np.array([0.6, 0.8], dtype=complex) # 已正規化的未知態
rng = np.random.default_rng(7)
for psi in [ket0, ket1, plus, arb]:
m1, m0, bob = teleport(psi, rng)
print(f"傳 {np.round(psi,2)} -> 測得({m1},{m0}) -> Bob 收到 {np.round(bob,2)}")
複雜度分析#
電路用了 1 個共享 Bell 對、2 個 CNOT、1 個 H、2 個單位元測量與 2 個古典位元通訊,共 4 個雙位元資源內完成。在模擬器上:狀態 8 維、每閘 \(O(2^3)\) ,總成本微不足道;推廣到多態同傳則資源線性成長。量子位元版「通訊複雜度」:每傳 1 個未知態恰需 1 ebit(最大糾纏對)+2 cbits,這已被證明是下界。
練習#
- 完整寫出 \(|\psi\rangle = |1\rangle\) 時隱形傳態各步驟後的狀態,並確認 Bob 修正後得 \(|1\rangle\) 。
- (程式)把
teleport改成傳輸後不修正,統計 Bob 收到的四種可能態,驗證它們在 Bloch 球上平均後是「完全混合」——沒有古典通道就毫無資訊。 - (觀念)為什麼隱形傳態需要「預先共享糾纏」?如果沒有 Bell 對,Alice 只量測再傳 2 位元,Bob 能重建 \(|\psi\rangle\) 嗎?