跳轉到

9.3 NISQ 時代的容錯挑戰#

概念說明#

NISQ(Noisy Intermediate-Scale Quantum,Preskill 2018 年提出)描述當前硬體:50~1000 個物理量子位元、閘錯誤率 \(10^{-3}\sim10^{-2}\) 、無糾錯。NISQ 機器能跑淺電路(數十到數百層閘),但跑不了 Shor——那需要數百萬個閘,錯誤早已累積成災。

Threshold 定理(Aharonov–Ben-Or、Knill–Laflamme–Zurek 等):若物理閘錯誤率低於某個門檻 \(p_{th}\) (表面碼約 \(10^{-2}\) ,受 GateSet 影響),則可以用容錯(fault-tolerant)設計把邏輯錯誤率壓到任意低,開銷只隨 \(\log(1/\varepsilon)\) 緩慢成長。這是量子計算「理論上可行」的根基:錯誤不會失控,只要夠乾淨就能用糾錯買回可靠性。

容錯的代價(以表面碼為例):

  • 碼距 \(d\) 的表面碼: \(d^2\) 個資料位元 + 約 \(d^2\) 個測量位元,邏輯錯誤率 \(\sim (p/p_{th})^{(d+1)/2}\) ;
  • 想跑 Shor( \(\sim 10^{10}\) 個 Toffoli,錯誤率需 \(\sim 10^{-12}\) ):每個邏輯位元約需 1000~10000 個物理位元;
  • Gidney–Ekerå(2019)估計:分解 2048 位元 RSA 約需 2000 萬個噪聲物理量子位元、8 小時。目前最大晶片(~1000 位元)與之相差四個數量級。

邁向容錯的路標:

  1. 2024 Google Willow:首次示範「碼距從 3→5→7 時邏輯錯誤率下降」(低於 threshold 的運作),並展示即時解碼;
  2. 邏輯量子位元演示:Harvard/QuEra 中性原子 48 個邏輯位元(2023)、IBM 的 qLDPC 碼路線圖;
  3. T 閘的 magic state distillation:容錯中最昂貴的資源,是最佳化焦點。

NISQ 時代的務實演算法:變分演算法(VQE、QAOA)、取樣任務(random circuit sampling)——它們容忍雜訊,但能否真正超越古典仍有爭議。教科書演算法(Grover、Shor)需要容錯硬體才能展現實用威力。

Python 範例:模擬邏輯錯誤率 vs 碼距#

import numpy as np

def repetition_code_logical_error(p_phys, d, trials=200000, seed=0):
    """d 位元重複碼 + 多數表決的邏輯錯誤率(古典模擬,性質同表面碼標度)"""
    rng = np.random.default_rng(seed)
    errs = rng.random((trials, d)) < p_phys
    # 多數表決失敗 = 超過半數位元翻轉
    return np.mean(errs.sum(axis=1) > d//2)

print(" p_phys    d=3      d=5      d=7      d=9")
for p in [0.03, 0.06, 0.09, 0.11, 0.15]:
    row = [repetition_code_logical_error(p, d) for d in (3, 5, 7, 9)]
    print(f"  {p:.2f}   " + "  ".join(f"{v:.4f}" for v in row))
# 觀察:p < ~0.1(threshold 附近)時,d 越大邏輯錯誤率越低(指數改善);
# p 太大時相反 —— 這就是 threshold 定理的具體呈現

# 邏輯錯誤率隨碼距的指數下降
p = 0.03
for d in [3, 5, 7, 9, 11]:
    pe = repetition_code_logical_error(p, d)
    print(f"p={p}, d={d}: P_L ≈ {pe:.2e}  (理論 ~ A*(p/p_th)^((d+1)/2))")

複雜度分析#

  • 表面碼開銷: \(n_{phys} \approx 2d^2\) 位元、每個糾錯週期 \(d\) 輪測量;邏輯錯誤率 \(P_L \propto (p/p_{th})^{(d+1)/2}\) 。
  • 容錯計算總資源: \(n_{phys} \approx n_{logic} \cdot O(d^2)\) 、時間開銷 \(O(d)\) ;要跑 \(T\) 個閘需 \(P_L \lesssim 1/T\) ,故 \(d = O(\log T)\) 。
  • 模擬糾錯(蒙地卡羅):每次實驗 \(O(d^2)\) 樣本 × 解碼(最小完美匹配 \(O(d^2\log d)\) )——解碼器速度是即時容錯的關鍵瓶頸。

練習#

  1. 用上表資料估算 repetition code 在 \(p=0.03\) 時的 threshold 落在何處,並說明「p 低於 threshold 時加大碼距有指數回報」。
  2. (程式)把模擬改成「每次糾錯週期獨立擲錯、共 \(d\) 輪」的時間維度模型,觀察邏輯錯誤率如何變化。
  3. (觀念)NISQ 演算法(如 VQE)為什麼不需要糾錯?它們的風險是什麼(提示:雜訊會讓變分最佳化收斂到錯誤的極小值)?