表面码:把错误赶进「洞」里
只测近邻的校验子,就能纠全局的错
3 比特重复码能抓住一位翻转。可要是有两位同时翻,多数投票就会投错,把错误纠正成更大的错误。二维格点换了个思路:不猜每个比特有没有错,只记下错误链的两个端点,再把端点配起来。
从重复码到格点
表面码把数据比特与测量比特交替摆在二维格点上:一种常见画法把数据放在边、测量放在顶点与面内;也有把数据放在格点的「旋转版」,两者是同一套逻辑。每个测量比特负责一个稳定子:顶点测 X 型,即近邻四个数据比特的 X 乘积;面测 Z 型,即近邻四个的 Z 乘积。无错时每次测量都给 +1,也就是
一个 X 错误会同时翻转与它相邻的两个 Z 型校验子,所以综合征不是「一个点」,而是「一对点」。多个错误连起来是一条链,链的内部成对抵消,只剩两个端点。解码器要做的不是找出每个错误,而是把端点两两配对,猜出最可能的那条链——这就是把错误「赶进洞里」。
测量比特与数据比特交替工作:每一轮,测量比特与近邻数据比特做门、被读出、再重置,然后进入下一轮。数据比特从头到尾不被单独测量,逻辑信息一直藏在联合性质里。
阈值与账本
解码的前提是「最可能的链」真的最短。物理错误率低到一定程度,短链才确实比长链更可能;这个分界就是 容错阈值,表面码在 1% 量级。低于阈值时,码距 每加一档,逻辑错误率按指数下降;高于阈值,加比特只会更快出错。
开销按面积算:码距 的一个 逻辑比特 要 量级的数据比特,再加上差不多同样多的测量比特。码距 3 已经要几十个物理比特换一个逻辑比特;要做上百个逻辑比特,还得把码距一起加大,物理比特就到上万量级。物理与逻辑的比值,因此成了工程的核心账本。
表面码把错误变成一对可配对的端点:只测近邻校验子,就能定位全局的错误链。阈值以下,加码距才划算;阈值以上,加比特只是加速失败。演示里的三比特纠错,是它的最小玩具版。