CSS糾錯碼

在量子糾錯中，CSS糾錯碼（Calderbank-Shor-Steane code，以其發明者Robert Calderbank、Peter Shor 和Andrew Steane的名字命名）是一種特殊的穩定子碼（stabilizer code），它由具有某些特殊性質的經典糾錯碼構造而成。CSS碼的一個例子是斯蒂恩碼（Steane code）。

## 構造

設 $C_1$ 和 $C_2$ 為兩個（經典）線性碼，參數分別為 $[n, k_1]$ 和 $[n, k_2]$，且滿足 $C_2 \subset C_1$。此外，要求 $C_1$ 和 $C_2^\perp$的最小距離（Minimum distance）都不小於 $2t+1$，其中$C_2^\perp$是$C_2$ 的對偶碼（Dual code）。則 $C_1$ 基於 $C_2$ 的CSS碼，記作 $\text{CSS}(C_1, C_2)$，是一個參數為 $[n, k_1 - k_2, d]$ 的量子糾錯碼，其最小距離 $d \ge 2t+1$。其構造方式如下：

對於 $x \in C_1$，定義態 $|x + C_2\rangle := \frac{1}{\sqrt{|C_2|}} \sum_{y \in C_2} |x+y\rangle$，其中 $+$ 表示按位模2加法。那麼 $\text{CSS}(C_1, C_2)$ 碼空間就是由這些態構成的集合：$\{ |x + C_2\rangle \mid x \in C_1 \}$。

## 橫向門 (Transversal Gates)

在量子糾錯和容錯量子計算的理論框架中，邏輯量子門的實現方式對抵抗物理錯誤至關重要。其中，橫向操作 (transversal operation) 提供了一種結構簡單且通常具有良好容錯特性的實現方式。對於一個將 $n$ 個物理量子比特編碼為 $k$ 個邏輯量子比特的量子糾錯碼，一個作用在 $n$ 個物理量子比特上的么正操作 $U$ 被稱為是橫向的，如果它可以分解為作用在每個獨立物理量子比特上的相同操作 $u$ 的張量積，即 $U = u^{\otimes n}$；或者，對於涉及多個量子比特塊的門（如 CNOT），該操作由作用在不同塊中對應位置量子比特（對或組）上的相同基本操作構成。

一個物理操作 $U$ 若能在碼空間 $\mathcal{G}$（編碼的邏輯量子比特所在的狀態子空間）上實現一個邏輯門 $U_L$，其必須保持碼空間不變，即 $U\mathcal{G} = \mathcal{G}$。對於穩定子碼，其碼空間 $\mathcal{G}$ 是其穩定子群（stabilizer group） $S$ 所有元素的共同+1特徵子空間（$\mathcal{G} = \left\{ |\psi\rangle \in \mathcal{H} \mid s |\psi\rangle = |\psi\rangle, \forall s \in S \right\}$）。在此情況下，么正操作 $U$ 保持碼空間不變的充分必要條件是 $U$ 將穩定子群 $S$ 整體映射到自身，即滿足 $USU^\dagger = S$。這意味著對於任意穩定子 $s \in S$，其變換後的算子 $UsU^\dagger$ 必須仍然是 $S$ 中的一個（可能不同的）穩定子。CSS 碼作為一類重要的穩定子碼，其結構使得某些基礎量子門具備橫向實現。

### 泡利門 (Pauli Gates)

對於任何穩定子碼，邏輯泡利算子（$X_L, Y_L, Z_L$）總能通過相應的橫向物理泡利操作實現。這是因為邏輯泡利算子被定義為穩定子群 $S$ 在 $n$-量子比特泡利群 $P_n$ 中的正規化子 $N(S)$ 內的非平凡元素（模去 $S$ 本身與全局相位）。而 $P_n$ 中的所有元素（即泡利串）按其定義（單比特泡利門或單位門的張量積）都是橫向操作。$\square$

### CNOT 門

對於任意滿足 $C_2^\perp \subset C_1$ 條件的 CSS 碼 $\mathcal{G} = \text{CSS}(C_1, C_2)$，將橫向 CNOT 門（即在兩個編碼塊的對應物理量子比特之間逐對執行 CNOT 操作）作用於這兩個塊上，能夠精確實現邏輯 CNOT 門。

證明概要： CSS 碼的穩定子群 $S$ 可由純 $X$ 型生成元（其支撐集對應於 $C_2^\perp$ 中的向量）和純 $Z$ 型生成元（其支撐集對應於 $C_1$ 中的向量）共同生成。記 $U_{CNOT}$ 為橫向 CNOT 操作。它作用於兩個碼塊的穩定子生成元時，其變換規則如下：

$$U_{CNOT} (g_x \otimes I) U_{CNOT}^\dagger = g_x \otimes g_x$$ $$U_{CNOT} (I \otimes g_x) U_{CNOT}^\dagger = I \otimes g_x$$ $$U_{CNOT} (g_z \otimes I) U_{CNOT}^\dagger = g_z \otimes I$$ $$U_{CNOT} (I \otimes g_z) U_{CNOT}^\dagger = g_z \otimes g_z$$ 其中 $g_x$ 和 $g_z$ 分別代表單個碼塊的 $X$ 型和 $Z$ 型穩定子生成元。若 $g_x, g_z \in S$，則變換後的所有算子（等式右側）顯然都屬於兩個碼塊穩定子群的乘積群 $S \times S$。由於 $S \times S$ 的所有生成元在 $U_{CNOT}$ 的共軛作用下仍然落在 $S \times S$ 內，因此整個穩定子群 $S \times S$ 保持不變。這表明橫向 CNOT 操作在碼空間上正確地實現了邏輯 CNOT 門。$\square$

### 阿達馬門 (Hadamard Gate)

對於 CSS 碼 $\mathcal{G} = \text{CSS}(C_1, C_2)$，若其構造所用的兩個經典碼相同，即 $C_1 = C_2$（這同時蘊含了 $C_1$ 必須包含其對偶碼，$C_1^\perp \subset C_1$），則逐比特應用的橫向阿達馬門 $H^{\otimes n}$ 能夠實現邏輯阿達馬門。

證明概要：關鍵在於阿達馬門在泡利算子上的作用：$HXH^\dagger = Z$ 和 $HZH^\dagger = X$。這意味著橫向 $H$ 操作會將 $X$ 型穩定子 $g_x$ 變換為對應的 $Z$ 型穩定子 $g_z$，反之亦然。當 $C_1 = C_2$ 時，CSS 碼的穩定子群 $S$ 展現出一種對稱性：一個泡利串是 $X$ 型穩定子（由 $C_1^\perp$ 定義）若且唯若將其中的 $X$ 替換為 $Z$（$Z$ 替換為 $X$）後得到的串是 $Z$ 型穩定子（由 $C_1$ 定義）。因此，$H^{\otimes n}$ 的作用僅僅是在 $S$ 內部置換了生成元類型，穩定子群 $S$ 整體保持不變。故橫向 $H$ 實現了邏輯阿達馬門。$\square$

### 相位門 (Phase Gate)

對於 CSS 碼 $\mathcal{G} = \text{CSS}(C_1, C_2)$，若滿足 $C_1 = C_2$ 並且 $C_1$（或其對偶碼 $C_1^\perp$）是一個雙偶碼（doubly-even code，即碼中所有碼字的漢明重量均為4的倍數），則逐比特應用的橫向相位門 $P^{\otimes n}$（其中 $P = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix}$）能夠保持穩定子群 $S$ 不變。

證明概要：相位門 $P$ 與 $Z$ 算子對易（$PZP^\dagger = Z$），因此所有 $Z$ 型穩定子 $g_z$ 在 $P^{\otimes n}$ 作用下保持不變。對於 $X$ 型穩定子 $g_x$，其對應的經典向量屬於 $C_1^\perp$（因為 $g_x$ 必須與所有 $Z$ 型生成元即 $C_1$ 中的碼字對易）。單比特變換為 $PXP^\dagger = XZ$（忽略對穩定子群無關的全局相位）。因此，$P^{\otimes n} g_x (P^{\otimes n})^\dagger$ 的形式為 $i^{w(g_x)} g_x g_z'$，其中 $w(g_x)$ 是 $g_x$ 的權重（即其中 $X$ 算子的數量），$g_z'$ 是在 $g_x$ 的支撐集上作用 $Z$ 得到的算子。由於 $g_x$ 對應的向量屬於雙偶碼 $C_1^\perp$，其權重 $w(g_x)$ 是4的倍數，故 $i^{w(g_x)} = 1$。於是變換結果為 $g_x g_z'$。又因為 $C_1=C_2$，對應的 $g_z'$ 也是 $S$ 中的（$Z$ 型）穩定子，所以 $g_x g_z'$ 仍然屬於 $S$。綜上，$P^{\otimes n}$ 保持了穩定子群 $S$。需要注意，雖然橫向 $P$ 門保持了穩定子群，但其實現的邏輯操作不一定恰好是邏輯 $P$ 門；不過，它確實實現了克利福德群中的某個門，且應用兩次橫向相位操作等效於（可能相差全局相位）一個邏輯 $Z$ 操作。$\square$

### 斯蒂恩碼示例 (Steane Code Example)

斯蒂恩碼是一個著名的 $[[7,1,3]]$ 量子碼，它是 CSS 碼的一個實例，其構造滿足 $C_1 = C_2 = \text{Ham}(3,2)$，即 漢明碼 7,4,3。其對偶碼 $C_1^\perp$ 是 7,3,4 碼，這是一個雙偶碼。

基於上述性質和討論：

- 邏輯泡利門是橫向的（適用於所有穩定子碼）。
- 邏輯 CNOT 門是橫向的（適用於所有 CSS 碼）。
- 邏輯阿達馬門是橫向的（因為 $C_1 = C_2$）。
- 橫向相位門 $P$ 保持穩定子群不變（因為 $C_1 = C_2$ 且 $C_1^\perp$ 是雙偶碼），這意味著相關的邏輯門操作也是容錯的。

因此，斯蒂恩碼允許整個克利福德群 (Clifford group) 的邏輯門都通過橫向物理操作來實現，這極大地簡化了容錯量子計算中這些常用門的實現。

### 橫向性的局限 (Limitations on Transversality)

儘管橫向門具有諸多優點，但伊思廷-尼爾定理 (Eastin-Knill theorem) 明確指出，任何非退化的量子糾錯碼都無法通過橫向操作實現一個通用的邏輯門集合。通用性要求門集中至少包含一個非克利福德門。該定理意味著，對於包括斯蒂恩碼、表面碼等在內的許多重要量子糾錯碼，非克利福德門（如實現通用計算所需的 $T$ 門，也稱 $\pi/8$ 門）不能簡單地通過橫向操作實現。要容錯地實現這些關鍵的非克利福德門，必須採用如魔術態蒸餾 (magic state distillation) 等更為複雜的策略。