构建 Steane 码的稳定子生成元集,并不需要随机猜测或记忆那 6 个算符( 到
),而是有明确的构造逻辑。
Steane 码属于 CSS 码 (Calderbank--Shor--Steane),其核心思想是:用两个相同的经典线性码,分别构造 型稳定子和
型稳定子。
下面是完整的计算步骤。
第零步:明确目标
Steane 码参数:
-
物理比特:
-
逻辑比特:
-
稳定子个数:
-
码距:
(可以纠 1 个错误)
稳定子群由 6 个独立生成元张成,它们相互对易。
第一步:选择一个经典线性码
Steane 码基于经典的 汉明码 。
-
长度 7,维度 4,最小距离 3。
-
它的校验矩阵
是一个
的二进制矩阵(每列非零且互不相同):
更常见的是按列列出所有非零 3 位二进制向量(列顺序可以调整):
列:1--7 对应的 3 位向量为
写成矩阵(每列算一个比特)就是上面那样。
第二步:构造 X 型稳定子(来自
的行)
经典校验矩阵的 每一行 对应一个 X 型稳定子生成元:
- 把该行中 1 的位置换成
,0 的位置换成
。
取 的 第一行 :
→
即:
写成紧凑形式: 或
根据索引。
但通常记法为 Pauli 串,如:
检查行 1:位 1,4,5,7 是 1,所以是 在这些位置。
然而 Steane 码的标准表示经常写成按比特顺序的 串,我们来正确映射。
更干净的方式:把校验矩阵行直接转成 X 型稳定子
的行(3 行):
X 型稳定子 (只含 和
):
即:
第三步:构造 Z 型稳定子(来自同一
的行)
对于 CSS 码:
-
X 型稳定子来自
-
Z 型稳定子来自
的生成矩阵吗?不------通常取 相同的校验矩阵 但作用在
上。
更标准地说:令 是二进制线性码
。
CSS 码的稳定子生成元:
-
X 型:
的每一行对应
算符
-
Z 型:同一
的每一行对应
算符
因此 Z 型稳定子生成元就是把上面 中的
换成
:
即:
第四步:验证对易关系
任意一个 X 型与任意一个 Z 型生成元,在同一个比特位置上同时出现 和
的次数必须是 偶数,否则会反对易。
检查 和
:
-
:位 1(X),4(X),5(X),7(X)
-
:位 2(Z),4(Z),6(Z),7(Z)
共同位置:位 4 和位 7 → 两个位置有 X 与 Z 相遇,2 是偶数 → 对易 ,正确。
这是由 CSS 构造自动保证的,因为 X 和 Z 稳定子的支撑集都是 的行,而
吗?实际上这里
是自己的偶对?不重要,关键是经典码的校验矩阵行之间的内积为 0(对于双汉明码可能不是零?等等,不对,这个构造要求
吗?Steane 码满足自正交条件?)
更安全地说:Steane 码是 自对偶 CSS 码 ?不完全是,但它是 Calderbank 构造 ,满足 X 和 Z 稳定子来自同一个 ,且
,这保证了对易。
第五步:目前的生成元集
我们已经得到 6 个生成元:
X 型(3 个):
-
=
-
=
-
=
Z 型 (3 个):
这 6 个算符相互对易,且独立。
第六步:检查是否与标准 Steane 码一致
文献中常见的 Steane 码生成元(按比特 1--7,比特 4 通常对应奇偶校验)有时写成不同顺序,但等价。
常见形式(如 Gottesman 或 Nielsen & Chuang):
如果重新排列比特顺序(比如用 的列顺序不同),就会得到我们上面那组。
因此,计算过程核心是:
-
找一个经典线性码
(如汉明码
)
-
写出它的校验矩阵
-
的每一行 → 一个 X 型稳定子(X 放在 1 的位置)
-
同样的
的每一行 → 一个 Z 型稳定子(Z 放在 1 的位置)
-
合并得到
个生成元
对于 Steane 码:,所以共 6 个生成元。
总结公式(CSS 码稳定子构造)
给定二进制线性码 的校验矩阵
(尺寸
):
且要求 (经典码自正交条件)以保证对易。Steane 码所用汉明码满足此条件。
也可以直接给出一个矩阵转成 Pauli 串的显式算法,可以手动逐行计算。