Quantum Error Correction / Technical Report

QEC における Code Deformation 詳説

Surface code の基礎を知っている読者を前提に、code deformation を「時間依存 stabilizer / subsystem code の列」として定式化し、 境界変形、穴の生成・移動、defect braiding、lattice surgery、twist/corner、gauge fixing、decoder への渡し方、実装上の落とし穴まで一貫して扱う。

MathJaxTeX 記法の数式をレンダリング
DOTGraphviz ソースを全図に併記
d3-graphvizSVG 図をブラウザ上で描画
演習 28 問解答つき、折りたたみ式
本稿の境界用語。 論文・講義資料によって rough/smooth と X/Z edge の呼び方が入れ替わることがある。ここでは混乱を避けるため、 Z-boundary を「\(Z\) string が終端でき、Z 型 logical を張る境界」、X-boundary を「\(X\) string が終端でき、X 型 logical を張る境界」と呼ぶ。 多くの文献では Z-boundary を rough、X-boundary を smooth と呼ぶが、必ず自分の convention で product operator を確認すること。

1. まず全体像:code deformation は何をしているのか

Code deformation は、量子情報を保ったまま、測定する stabilizer / gauge operator の集合と物理 qubit の有効レイアウトを時間的に変える手法である。 Surface code ではこの操作が幾何学的に見える。境界を伸ばす、穴を開ける、穴を移動する、2 つの patch を merge する、patch を split する、twist defect を動かす、といった操作はいずれも 「ある時刻 \(t\) の code \(\Cg_t\) から次の時刻 \(\Cg_{t+1}\) へ、syndrome 測定で移行する」過程として表せる。

作業定義。 Code deformation とは、物理 qubit 集合 \(Q_t\)、測定集合 \(M_t\)、安定化群 \(\Sg_t\)、必要なら gauge 群 \(\Gg_t\) を時刻ごとに指定し、 logical Pauli 群 \(\Lg_t = \N(\Sg_t)/\Sg_t\) の元を、測定結果に依存する Pauli frame とともに輸送する fault-tolerant protocol である。

重要なのは「変形中にも情報が守られる」ことである。幾何学的な面積や境界の形だけでなく、 任意の低重み fault が logical fault に化けない spacetime distance、測定エラーを含む 3D syndrome history、 そして logical operator の tracking を同時に設計しなければならない。

図 1:code deformation の抽象フロー


        

1.1 直観:位相的情報を「面」ではなく「経路の同値類」として動かす

Surface code の logical operator は、局所 stabilizer を掛けることで形を変えられる。したがって、境界や穴の位置を少し動かしても、 logical operator は homology class / relative homology class として更新される。Code deformation はこの自由度を利用し、 logical string の端点、hole、domain wall、patch の接続関係を変えて、測定や gate を実現する。

ただし「自由に形を変えられる」は「任意に雑に測定してよい」という意味ではない。測定ノイズを含む syndrome history では、 error chain は 3 次元の worldline / worldsheet として現れる。変形により新しい time-like boundary が生じるため、decoder はその境界を知らなければならない。

1.2 Code deformation と呼ばれるものの範囲

名称典型例数学的見方主な用途
幾何学的 deformationpatch growth, shrink, hole movement境界条件・相対 homology の変更レイアウト調整、defect 回避、logical qubit 移動
Lattice surgeryZ-merge, X-merge, split局所 check の追加により logical Pauli product を測定CNOT、multi-Pauli 測定、magic-state injection
Defect braidingZ-hole と X-hole の braidpuncture の worldline による logical operator の変換CNOT、長距離相互作用
Twist/corner deformatione-m domain wall endpoint の移動anyon label の自動同型 \(e \leftrightarrow m\)Clifford gates、Y 測定、twist lattice surgery
Gauge fixingsubsystem code の check 順序変更、code switching共通の親 gauge code の異なる stabilizer fixinguniversal gate、性能改善、変形の fault-tolerance 判定
Clifford-deformed codeXZZX, XY, random CDSC局所 Clifford で stabilizer を変換biased noise への適応

2. Stabilizer 形式で見る deformation

Stabilizer code は \(n\) 個の物理 qubit 上の Pauli 群 \(\Pauli_n\) の可換部分群 \(\Sg\) で定義される。 \(-I \notin \Sg\) とし、\(r = \rank \Sg\) なら code space の次元は \[ \dim \Cg = 2^{n-r}, \qquad k = n-r. \] Logical Pauli は normalizer quotient \[ \Lg = \N(\Sg)/\Sg, \qquad \N(\Sg)=\{P\in\Pauli_n: PS=SP\; \forall S\in\Sg\} \] で表される。Code deformation の核心は、\(\Sg_t\) を \(\Sg_{t+1}\) に変えるとき、\(\Lg_t\) のどの元が測定され、どの元が同値な logical として残り、どの byproduct が Pauli frame に入るかを管理することにある。

2.1 単一 Pauli 測定による stabilizer 更新則

現在の stabilizer group \(\Sg\) に対して Pauli operator \(M\) を測定し、結果を \(m\in\{+1,-1\}\) とする。 測定更新は次の 3 ケースに分かれる。

ケース条件更新logical への意味
既知 stabilizer \(M\in\pm\Sg\) 理想的には結果は既知。ノイズがあれば syndrome。 情報は変わらない。
可換・独立 \(M\in\N(\Sg)\setminus \Sg\) \(\Sg' = \langle \Sg, mM\rangle\) もし \(M\) が logical なら、その logical Pauli を測定し、\(k\) が 1 減る。
反可換 ある \(S\in\Sg\) と \(MS=-SM\) 反可換 generator を 1 つ \(mM\) で置換し、残りの反可換 generator は掛け合わせて可換化する。 rank は多くの場合同じ。code switching / gauge fixing 的な更新。
なぜ反可換 generator を 1 つ置換できるか。 反可換 generator を \(g_1,\dots,g_a\) とする。\(g_i g_1\) は \(M\) と可換である。 したがって generator set を \[ \{g_1,g_2,\dots,g_a, h_1,\dots,h_b\} \quad\longrightarrow\quad \{M, g_2g_1,\dots,g_ag_1,h_1,\dots,h_b\} \] と変えれば、測定後の安定化群を同じ rank で記述できる。ここで \(h_j\) は \(M\) と可換な旧 generator。 測定結果の符号 \(m\) は新 generator \(mM\) の符号として Pauli frame に入る。

2.2 一括測定と gauge operator

実際の deformation では複数の local check を同時または数ラウンドにわたり測定する。 それらが互いに可換なら新 stabilizer set として扱いやすい。互いに非可換、または旧 stabilizer と非可換な測定を含む場合、 一時的に subsystem code の gauge operator を測っていると見ると整理しやすい。

Subsystem code では gauge group \(\Gg\subset\Pauli_n\) を導入し、stabilizer は \[ \Sg = Z(\Gg) \cap \Gg \] で与えられる。Gauge fixing は \(\Gg\) の中の可換な gauge operator を選び、追加 stabilizer として固定する操作である。 Code deformation と lattice surgery は、広い範囲でこの gauge fixing として定式化できる。

図 2:Pauli 測定の stabilizer 更新決定木


        

2.3 Projector と logical channel

Stabilizer \(\Sg\) の code projector は \[ P_\Sg = \prod_{S_i\in G(\Sg)} \frac{I+S_i}{2} \] と書ける。Deformation step は、理想化すれば \[ \rho \longmapsto \frac{P_{\Sg_{t+1},\,\mathbf m}\,\rho\,P_{\Sg_{t+1},\,\mathbf m}}{\Tr(P_{\Sg_{t+1},\,\mathbf m}\rho)} \] であり、\(\mathbf m\) は新 check の測定結果を表す。Fault-tolerant protocol ではこの射影を 1 回で信用せず、 同じまたは関連する check を複数ラウンド測り、時系列から真の syndrome と measurement fault を推定する。

よくある誤解。 Code deformation は「物理的に Hamiltonian を断熱変形する」ことだけを意味しない。QEC アーキテクチャで通常問題になるのは、 stabilizer 測定回路と classical decoding による measurement-based deformation である。

3. Surface code の homological picture

標準的な edge-qubit surface code では、2 次元 cell complex の chain complex \[ C_2 \xrightarrow{\partial_2} C_1 \xrightarrow{\partial_1} C_0, \qquad \partial_1\partial_2=0 \] を用いて stabilizer を記述できる。物理 qubit は edge \(e\in C_1\) に置く。 vertex check と plaquette check は \[ A_v = \prod_{e\ni v} X_e, \qquad B_f = \prod_{e\in \partial f} Z_e \] である。\(Z\)-error chain の境界は \(X\)-syndrome を生み、\(X\)-error chain の双対境界は \(Z\)-syndrome を生む。

境界がある場合、absolute homology ではなく relative homology が現れる。 ここで Z-boundary は \(Z\) string の端点を吸収し、X-boundary は \(X\) string の端点を吸収する。 2 つの Z-boundary を結ぶ \(Z\) string は \(\bar Z\)、2 つの X-boundary を結ぶ \(X\) string は \(\bar X\) として選べる。

図 3:1 patch の logical string と境界 convention


        

3.1 Logical operator は stabilizer を掛けて形を変えられる

例えば \(Z\)-string \(\gamma\) に plaquette stabilizer \(B_f\) を掛けると、\(\gamma\) は face \(f\) の境界分だけ変形される。 これは同じ homology class の代表を変えただけなので logical action は同じである。 Deformation の最小単位は、この「代表の変形」を stabilizer 測定により物理的に可能にすることだと見なせる。

境界や穴の位置を変えると、許される相対 cycle の空間も変わる。Logical operator tracking は、古い cycle を新しい cell complex 上の同じ homology class に写す操作である。 Twist domain wall がある場合は、cycle が壁を横切ると \(X\) と \(Z\) の型が入れ替わるため、単なる CSS homology よりも richer な label tracking が必要になる。

3.2 Code distance は「最短の非自明 string」

CSS surface code では \[ d_Z = \min_{Z\text{-logical }L_Z} |\operatorname{supp}(L_Z)|, \qquad d_X = \min_{X\text{-logical }L_X} |\operatorname{supp}(L_X)|, \] \[ d = \min(d_X,d_Z) \] と見ることができる。Deformation 中の形が細い neck を作ると、\(d_X\) または \(d_Z\) が一時的に落ちる。 Fault tolerance の評価では空間的な最短 string だけでなく、時間方向の measurement fault chain も含む effective distance を見なければならない。

4. 基本 primitive:何をどう変形するか

複雑な code deformation protocol は、少数の primitive の合成として理解できる。 実装では各 primitive を「qubit の準備・測定」「新 check の導入」「旧 check の停止」「decoder graph の更新」「logical frame の更新」に分解する。

Grow

patch の端に data qubit と syndrome qubit を追加し、新しい boundary check を測る。

Shrink

一部 data qubit を単一 Pauli 基底で測定して取り除き、隣接 stabilizer を短縮する。

Puncture

内部 stabilizer を停止して hole を作る。hole の周囲が新たな boundary になる。

Move

hole / boundary の前方を grow し、後方を shrink する。logical string も追随させる。

Merge

2 patch 間に bridge check を入れ、logical Pauli product を測定する。

Split

bridge 領域を測定で切り離し、patch を分離する。分離測定結果は Pauli frame に入る。

Twist move

mixed stabilizer と domain wall の位置を変えて twist defect を動かす。

Gauge fix

親 subsystem code の gauge operator 測定順序・固定 subgroup を変える。

Clifford deform

各物理 qubit に局所 Clifford を掛けた stabilizer へ変える。XZZX など。

4.1 Grow:境界を外側に広げる

Grow は、古い code の境界外に新 data qubit を置き、必要な初期状態に準備し、新しい local stabilizer を測定し始める操作である。 CSS code なら追加 qubit の準備基底は、新しく deterministic にしたい check と整合させる。 典型的には、Z 型情報を固定したい場所は \(\ket{0}\)、X 型情報を固定したい場所は \(\ket{+}\) を使う。 ただし実際の rotated layout では、1 つの qubit が X/Z check の両方に関わるため、初回 syndrome のランダム性を decoder graph の初期境界として扱う必要がある。

  1. 新 data qubit を指定基底で初期化する。
  2. 新しい syndrome qubit / ancilla で境界近傍の check を測り始める。
  3. 初回 check のうち、旧 stabilizer から予測できないものを random gauge / boundary event として扱う。
  4. 十分な syndrome history 後、新しい patch distance を信用する。

4.2 Shrink:境界を内側に削る

Shrink は grow の逆で、除去する data qubit を単一 Pauli 基底で測定し、その測定結果で短縮後の stabilizer 符号を補正する。 例えば \(Z\)-basis で data qubit を測定して取り除く場合、その qubit を含む Z-type stabilizer の値は測定値で決まり、 その qubit と反可換な X-type stabilizer は停止・置換される。測定結果が \(-1\) なら、隣接する新 stabilizer または Pauli frame に sign update が必要である。

Shrink の危険。 除去した線が logical string の短絡路を作ると、一瞬で distance が落ちる。特に hole を小さくしすぎる、細い bridge を切る、twist を近づけすぎる操作は、 単に最終 layout の distance だけ見ても fault tolerance を保証しない。

4.3 Puncture:穴を開ける

Hole は、内部 stabilizer の測定を停止し、その周囲に boundary を作ることで得られる。 Z-hole は Z-boundary の円周を持つ puncture、X-hole は X-boundary の円周を持つ puncture と呼ぶ。 同じ型の hole のペアは 1 logical qubit を符号化できる。典型的な選択は次の通り。

hole pairlogical の代表直観
Z-hole pair\(\bar Z\):2 つの hole を結ぶ Z string。\(\bar X\):片方の hole を回る X loop。Z string の端点は Z-boundary に終端できる。
X-hole pair\(\bar X\):2 つの hole を結ぶ X string。\(\bar Z\):片方の hole を回る Z loop。X string の端点は X-boundary に終端できる。

Hole の作成が新 logical qubit を生む場合、その logical qubit は作り方により初期化される。 どの logical が固定され、どの logical がランダムになるかは、停止した stabilizer と測定した data qubit の product によって決まる。

4.4 Move:hole または boundary を動かす

Hole movement は「前方を grow、後方を shrink」の繰り返しである。論理的には puncture の worldline を描く。 Z-hole を動かすとき、Z string は hole とともに引きずられ、X loop は hole の周囲で更新される。 異なる型の hole の周りを braid すると、logical operator の交差数が変わり、CNOT 型の Clifford action が生じる。

4.5 Merge / split:lattice surgery の primitive

2 つの patch の Z-boundary を bridge check で結合して測定すると、\(\bar Z_A\bar Z_B\) が測定される。 同様に X-boundary を結合すると、\(\bar X_A\bar X_B\) が測定される。 Merge 後に split すれば、patch を分離したまま parity measurement の結果だけを logical circuit に渡せる。

Z-merge / X-merge。 本稿の convention では、Z-boundary を merge する操作を Z-merge と呼び、測定する logical product は \(\bar Z_A\bar Z_B\)。 X-boundary を merge する操作を X-merge と呼び、測定する logical product は \(\bar X_A\bar X_B\)。

4.6 Twist と domain wall

Surface code には \(e\) anyon と \(m\) anyon がある。\(e\)-\(m\) domain wall は string operator の型を入れ替える壁であり、 その端点が twist defect である。Twist の近傍では stabilizer が CSS でなくなり、\(X\) と \(Z\) が混在する mixed check が現れる。 Twist の移動は、mixed check の位置を局所的に更新する deformation として実装される。

4.7 Gauge fixing

Gauge fixing は幾何学的に見えない deformation も統一する。 2 つの code \(\Cg_A,\Cg_B\) が共通の gauge group \(\Gg\) の異なる fixing として表せるなら、 \(\Cg_A\to\Cg_B\) は、\(\Gg\) 内の別の可換 subgroup を測って固定する操作である。 Lattice surgery でも、merge された一時的な code と分離された code は、適切な親 subsystem code の異なる fixing と見なせる。

5. Fault tolerance:変形中に何を保証するべきか

Code deformation の正しさは、理想 stabilizer algebra だけでは不十分である。 実験・アーキテクチャでは measurement error、data error、reset error、leakage、hook error、遅延した classical feed-forward がすべて関わる。 Fault-tolerant deformation の目標は、距離 \(d\) の code で、少なくとも \(t=\lfloor(d-1)/2\rfloor\) 個までの fault が logical failure を起こさないようにすることである。

5.1 Spacetime distance

通常の memory では、space 方向の非自明 chain が logical error である。 しかし noisy syndrome extraction では、measurement fault が time 方向の edge を作るため、decoder graph は 3 次元になる。 Deformation では check の集合が時間で変わるので、decoder graph には past boundaryfuture boundarydeformation boundary が生じる。

Operation の fault distance \(d_{\mathrm{op}}\) は、間違った logical outcome または誤った logical frame update を引き起こす最小 fault chain の重みとして見るとよい。 安全な設計では \[ d_{\mathrm{op}} \ge d_{\mathrm{target}} \] を満たすように、merge の幅、hole 間距離、braid の離隔、測定ラウンド数を選ぶ。

5.2 なぜ lattice surgery で \(d\) ラウンド測るのか

Merge seam の local check product が logical parity になるとしても、1 ラウンドの測定結果は measurement error 1 個で反転する。 距離 \(d\) の parity measurement にするには、通常は seam check を \(O(d)\) ラウンド測り、space-like と time-like の両方の fault chain を decoder に渡す。 実装によって \(d\) ラウンド、\(d_m\) ラウンド、またはノイズモデルに合わせた可変ラウンドが使われるが、原理は「時間方向の距離も確保する」ことである。

5.3 Dynamic checks の detection event

固定 stabilizer \(S_j\) なら、連続ラウンドの syndrome \(s_{j,t}\) から detection event \[ \delta_{j,t}=s_{j,t}s_{j,t-1} \] を作る。Deformation 中に check が変わる場合、単純な差分は使えない。代わりに、旧 check の product と新 check の product の間にある既知の関係、 または split / merge 時の data measurement から得た boundary condition を使って、比較可能な syndrome quantity を作る。

例:Z-merge の parity vertex。 Seam 上の新しい Z-type check \(z_1,\dots,z_d\) を測る。理想的には product \[ m_{ZZ}=\prod_{i=1}^d z_i \] が \(\bar Z_A\bar Z_B\) に等しい。ただし各 \(z_i\) は noisy なので、decoder は \(z_i(t)z_i(t-1)\) と seam 周辺 data fault を同時に扱い、 logical parity を反転させる最小 chain を判定する。

5.4 Hook error と syndrome extraction schedule

Ancilla を使って重み 4 stabilizer を測る場合、CNOT の順序によって 1 つの ancilla fault が 2 つの data qubit error に広がる。 この hook error が logical string 方向に伸びると effective distance を下げる。 Deformation で check 形状が変わると、普段の schedule がそのまま安全とは限らない。Bridge check、mixed twist check、truncated boundary check では、hook の向きを再評価する必要がある。

5.5 インタラクティブ:deformation bottleneck calculator

空間距離 \(d\)、変形中の最小 neck 幅 \(w\)、merge 測定ラウンド数 \(r\) を入れると、単純化した bottleneck を表示する。

これは設計初期の sanity check であり、実際の circuit-level distance は schedule と decoder graph で確認する必要がある。

図 4:deformation で生じる spacetime syndrome graph の概念図


        

6. Lattice surgery を完全に追う

Lattice surgery は、patch を merge / split することで logical Pauli product を測定する code deformation である。 Surface code の 2D nearest-neighbor 制約を保ちながら、多 qubit Pauli measurement を実現できるため、大規模 surface-code architecture の中心的 primitive になっている。

6.1 Z-merge:\(\bar Z_A\bar Z_B\) 測定

2 つの patch \(A,B\) の Z-boundary を向かい合わせる。間に bridge 領域があるなら、bridge data qubit を準備して、 境界をまたぐ Z-type check を測定し始める。Seam check の product は、stabilizer を除いて \(\bar Z_A\bar Z_B\) に等しい。

  1. 事前に各 patch を通常 round で安定化する。
  2. bridge を準備し、Z-type seam check を導入する。
  3. seam check と周辺 check を \(d\) ラウンド程度測定する。
  4. decoder で parity outcome \(m_{ZZ}\) を推定する。
  5. 必要なら bridge qubit を Z-basis で測って split する。

Ideal level では、merge 測定は projector \[ P_{m}^{ZZ}=\frac{I + m\,\bar Z_A\bar Z_B}{2} \] を logical state に作用させる。

6.2 X-merge:\(\bar X_A\bar X_B\) 測定

X-boundary を merge する場合は、X-type seam check の product から \(\bar X_A\bar X_B\) を得る。 Ideal projector は \[ P_{m}^{XX}=\frac{I + m\,\bar X_A\bar X_B}{2}. \] X-merge と Z-merge は CSS duality で対応するが、hardware schedule では CNOT 向きや hook error の向きが入れ替わるため、同一視してはいけない。

6.3 Split:merge 後に patch を切り離す

Split は bridge / cut line の data qubit を単一 Pauli 基底で測定して取り除く。 本稿の convention では、Z-boundary を作る split では cut qubit の Z-basis 測定、X-boundary を作る split では X-basis 測定を使う。 測定結果の product は新しい patch の Pauli frame、特に分離後 logical の符号に影響する。

重要なのは、split は単なる幾何操作ではなく non-unitary logical map であることだ。 Merge / split は ZX-calculus の spider と同様に、状態をコピーするのではなく、特定 basis の parity と byproduct を持つ射影写像として振る舞う。

6.4 CNOT を Pauli product measurement で実装する

CNOT は lattice surgery で直接 unitary として実装するというより、ancilla logical qubit と Pauli product measurement の列で実装するのが標準的である。 Control を \(c\)、target を \(t\)、ancilla を \(a\) とする。

  1. Ancilla \(a\) を \(\ket{+}_L\) に準備する。
  2. Z-merge により \(Z_c Z_a\) を測定し、結果を \(m_1\) とする。
  3. X-merge により \(X_a X_t\) を測定し、結果を \(m_2\) とする。
  4. Ancilla を \(Z_a\) basis で測定し、結果を \(m_3\) とする。
  5. Pauli frame を更新する。

Ideal measurement algebra では、出力は CNOT 後に byproduct \[ Z_c^{(1-m_2)/2}\; X_t^{(1-m_1m_3)/2} \] が掛かったものに等しい。したがって classical Pauli frame で \[ Z_c \text{ correction if } m_2=-1, \qquad X_t \text{ correction if } m_1m_3=-1 \] を記録すればよい。

6.5 インタラクティブ:CNOT byproduct 計算

図 5:lattice-surgery CNOT の測定フロー


        

6.6 Multi-Pauli measurement

Lattice surgery の強みは 2-qubit parity に限られない。複数 patch を ancilla / routing region に merge して、 \[ P = \bar P_1 \bar P_2 \cdots \bar P_r, \qquad \bar P_i\in\{\bar X_i,\bar Y_i,\bar Z_i\} \] のような logical Pauli product を測れる。\(\bar Y\) を含めるには twist、basis change、または一時的な deformation が必要になる。 大規模アルゴリズムでは Clifford+T circuit を Pauli product measurement へコンパイルし、lattice surgery layout 上で実行する設計がよく使われる。

7. Hole / defect braiding と code deformation

Lattice surgery は patch を merge/split する「不連続」な deformation と見なせる。一方、defect braiding は hole や twist を連続的に動かすことで logical gate を得る。 Surface code の初期の topological-computing picture では、puncture の worldline が 3D spacetime で braid を形成し、その linking が Clifford gate を決める。

7.1 Two-hole encoding

同じ型の hole を 2 つ用意すると、1 logical qubit を符号化できる。Z-hole pair の例では、\(\bar Z\) は 2 つの hole を結ぶ Z string、 \(\bar X\) は片方の hole の周りの X loop である。2 つの operator は 1 回交差するため反可換になる。 距離は hole 間距離、hole 周長、外部境界までの距離の最小値で決まる。

7.2 Hole movement の局所手順

Z-hole を 1 plaquette 分動かす場合、次のように考える。

  1. 移動先の stabilizer を停止し、hole の前方に boundary を拡張する。
  2. 旧 hole 後方の data qubit / check を再有効化し、必要な qubit を初期化して stabilizer 測定へ戻す。
  3. 後方を埋めるときの測定結果で loop logical の frame を更新する。
  4. decoder graph では hole boundary の worldline を更新する。

7.3 Z-hole と X-hole の braid による CNOT

Z-type defect と X-type defect の braid は、交差数に応じて logical operator を変換する。 Convention に依存する control/target の割り当てを固定すれば、CNOT の Heisenberg action は \[ \bar X_c \mapsto \bar X_c\bar X_t, \qquad \bar Z_c \mapsto \bar Z_c, \] \[ \bar X_t \mapsto \bar X_t, \qquad \bar Z_t \mapsto \bar Z_c\bar Z_t. \] である。Braid がこれを実現する理由は、defect の周りを回る loop と defect 間 string の交差数が braid 後に変わるためである。

図 6:hole braid の logical operator 変換イメージ


        

7.4 Braiding の利点と欠点

観点利点欠点
位相的直観gate が worldline の braid として見える。spacetime 体積が大きくなりやすい。
局所性2D nearest-neighbor のまま実装できる。長距離 braid には時間がかかる。
decoderdefect boundary を時間追跡すればよい。moving boundary と hook schedule の扱いが複雑。
現代 architecture概念的基礎として重要。多くの設計では lattice surgery の方が resource-efficient。

8. Twist defects、corner、domain wall

Twist は surface code の e-m duality を局所的に導入する defect である。通常の CSS surface code では e anyon と m anyon が別々に扱われるが、 e-m domain wall を横切ると label が入れ替わる。Domain wall の端点では、anyon が自分自身と異なる型に変換されるため、twist defect は Ising/Majorana 的な振る舞いを持つ。

8.1 Domain wall crossing

\(Z\)-string は e anyon を端点に持つ。もし e-m domain wall を横切ると、壁の向こう側では \(X\)-string として続く。 そのため twist 近傍の stabilizer は純粋な \(X\)-type / \(Z\)-type ではなく、例えば \(XZXZ\) や重み 5 の mixed check になることがある。

図 7:domain wall と twist の label tracking


        

8.2 Corners as twists

Planar patch の corner は、Z-boundary と X-boundary が接する場所である。ここでは string の終端規則が切り替わるため、corner を twist と同一視できる枠組みがある。 Corner を code deformation で交換すると、logical operators の対応が変わり、単一 qubit Clifford gate を実現できる。

例えば Hadamard-like な操作は \(\bar X\leftrightarrow \bar Z\) の交換として現れる。 Phase-like な操作は \(\bar X\mapsto \bar X\bar Z\)、\(\bar Z\mapsto \bar Z\) のような symplectic transformation として記述される。 実際の protocol では patch の角を切る、穴を開ける、twist pair を動かすなどの局所変形列に分解する。

8.3 Twist-based lattice surgery

\(Y\)-type logical measurement や一部の Clifford gate では、通常の X/Z boundary merge だけだと補助状態や追加変形が必要になる。 Twist を利用すると \(Y\) を含む Pauli product をより直接扱える場合がある。 ただし twist check は高重みまたは非 CSS になりやすく、syndrome extraction circuit が深くなることがある。

9. Gauge fixing としての code deformation

Code deformation の設計を厳密にするには、各ステップを subsystem code の gauge fixing として見るのが強力である。 親 gauge group \(\Gg\) を用意し、旧 code と新 code を同じ \(\Gg\) の異なる stabilizer fixing として表す。

旧 code: \[ \Sg_{\mathrm{old}} = \langle Z(\Gg), F_{\mathrm{old}}\rangle \] 新 code: \[ \Sg_{\mathrm{new}} = \langle Z(\Gg), F_{\mathrm{new}}\rangle \] と書けるなら、\(F_{\mathrm{old}}\) の固定を外し、\(F_{\mathrm{new}}\) を測って固定することで移行できる。

9.1 Fault tolerance の gauge-fixing test

Gauge fixing view では、deformation step の安全性は親 subsystem code の距離で評価できる。 直観的には、変形中に gauge として無視される自由度を使って、低重み operator が logical を短絡しないかを確認する。 実務では次をチェックする。

  1. 旧 logical と新 logical の対応が symplectic form を保存するか。
  2. 新しく測る operator が意図した logical measurement 以外の情報を漏らさないか。
  3. 変形中の subsystem distance が target distance 以上か。
  4. 測定結果の sign が Pauli frame で一意に処理できるか。
  5. decoder graph が measurement fault と data fault の両方を正しく model 化しているか。

図 8:2 つの stabilizer fixing と親 gauge code


        

9.2 Toy example:2-qubit repetition fixing

これは QEC として強力な例ではないが、stabilizer replacement の構造を示す。 \(Z\)-repetition code を \[ \Sg_Z=\langle Z_1Z_2\rangle, \qquad \bar Z=Z_1,\quad \bar X=X_1X_2 \] とする。一方、\(X\)-repetition code は \[ \Sg_X=\langle X_1X_2\rangle, \qquad \bar X'=X_1,\quad \bar Z'=Z_1Z_2. \] \(X_1X_2\) は \(Z_1Z_2\) と反可換ではない、実は可換なので同時に固定すると Bell state になり \(k=0\) になる。 Code switching として扱うなら、どの logical を測って消費するか、どの logical を新 code の logical として残すかを明示しなければならない。 この toy example が教えるのは、stabilizer を増やすことは logical qubit を減らすことであり、単なる「形の変更」ではないという点である。

9.3 Code deformation 設計手順

  1. 目的の logical map を Heisenberg picture で書く。例:CNOT なら \(X_c\to X_cX_t\)、\(Z_t\to Z_cZ_t\)。
  2. 各時刻の \(\Sg_t\)、物理 qubit set、測定 circuit を列挙する。
  3. 各 step で \(k_t\) と logical operator basis を計算する。
  4. 測定 outcome と logical byproduct の式を導出する。
  5. 変形中の space distance と spacetime distance を見積もる。
  6. decoder graph を構築し、boundary / parity vertex / time-like edge を追加する。
  7. circuit-level noise simulation で logical failure rate と hook sensitivity を評価する。

10. 実装上の詳細:回路、decoder、制御系

Code deformation は、紙の上では境界を変えるだけに見えるが、実機では制御システム全体の問題である。 以下では、surface-code workflow に入れるときの実装粒度で整理する。

10.1 データ構造

変形 protocol を実行する compiler / control stack は、少なくとも次の情報を時刻ごとに持つ必要がある。

データ内容注意
qubit mapdata / syndrome / routing / disabled qubit の区別defect や leakage により runtime で変わる場合がある。
check schedule各 stabilizer の support、測定 ancilla、CNOT 順序hook error の向きを含める。
check identity時刻をまたいで「同じ syndrome」と比較できるか変形時には product relation が必要。
logical framelogical Pauli basis と byproduct signsClifford frame と Pauli frame を分けるとよい。
decoder graphspace/time edge、boundary、edge weightsノイズ bias と測定失敗確率を反映する。

10.2 Syndrome extraction circuit

Standard surface code の重み 4 check では、ancilla を準備し、data qubit と CNOT し、ancilla を測定する。 変形時には重み 2/3 の boundary check、重み 5 以上の twist check、bridge check、または mixed Pauli check が現れる。 Mixed check \(XZXZ\) は、各 data qubit に対応する CNOT / CZ / basis rotation を組み合わせて測る。

高重み check の扱い。 Twist や一部 deformation で高重み stabilizer が現れると、ancilla fault が多数の data error に伝播しやすい。 Flag qubit、cat-state measurement、分割測定、または twist-free protocol を検討する。

10.3 Decoder graph の更新

MWPM / union-find / belief matching / tensor network decoder など、どの decoder でも、変形中の check identity を知る必要がある。 固定 memory の decoder graph を使い回すだけでは、merge の parity outcome や split の data measurement outcome が正しく入らない。

  1. 新 check の初回 syndrome は、旧 syndrome と比較できなければ boundary node へ接続する。
  2. merge parity を返す check product は、logical measurement outcome として別途集約する。
  3. split の data measurement は、boundary stabilizer の符号補正と logical frame に反映する。
  4. disabled qubit 周辺は、欠損 edge として decoder graph に入れる。
  5. hole / twist の移動では、boundary node 自体が時間方向に移動する。

10.4 Dynamic defects への応用

実機では一時的に使えない qubit、leakage、cosmic ray による burst、calibration drift が起きる。 Code deformation は、欠陥周辺の stabilizer を停止し、patch を迂回・拡大・縮小することで QEC capability を保つ方法として使える。 この場合は「logical gate のための deformation」ではなく「faulty resource を避ける deformation」になる。

Dynamic defect mitigation では、単に欠陥 qubit を hole として扱うだけでは距離が落ちることがある。 迂回後の最短 logical string、欠陥 hole と外部境界の距離、decoder graph の重み、routing region の混雑を同時に最適化する必要がある。

10.5 Classical control と frame tracking

Code deformation の多くは physical correction を即時に打たず、Pauli frame / Clifford frame を更新する。 たとえば CNOT lattice surgery の \(m_1,m_2,m_3\) は、後続の logical measurement basis を変える classical metadata である。 Frame が物理 gate schedule と非同期になると、特に adaptive T gate、magic state injection、feed-forward 測定で問題が出る。

11. 具体例

例 1:Z-boundary を 1 列だけ grow する

状況。 距離 \(d=5\) の rotated patch の上側 Z-boundary を 1 列外側に広げたい。

  1. 外側の data qubit を準備する。Z-boundary の安定化を優先するなら \(\ket{0}\) 準備が自然。
  2. 新しい boundary 近傍の Z-type check は初回から deterministic に近い。X-type check は新 qubit の \(X\) 成分に依存してランダムになりうる。
  3. 初回 syndrome を decoder の boundary event として入れ、以後の round で通常の detection event に戻す。
  4. logical \(\bar Z\) の代表は新しい Z-boundary まで伸ばせる。\(\bar X\) の最短距離が減っていないか確認する。

例 2:d=3 の Z-merge parity

Seam に 3 つの Z-type parity check \(z_1,z_2,z_3\) があるとする。ある round の測定結果が \[ z_1=+1,\quad z_2=-1,\quad z_3=+1 \] なら、raw product は \[ m_{ZZ}^{\mathrm{raw}}=z_1z_2z_3=-1. \] ただしこれは raw parity であり、measurement error や seam 近傍 data error を decoder で補正した後の parity を logical measurement outcome として使う。

例 3:CNOT byproduct

測定結果が \(m_1=-1\)、\(m_2=+1\)、\(m_3=-1\) だったとする。 \(m_1m_3=+1\) なので target の \(X_t\) correction は不要。 \(m_2=+1\) なので control の \(Z_c\) correction も不要。 したがって Pauli byproduct は identity である。

一方、\(m_1=-1\)、\(m_2=-1\)、\(m_3=+1\) なら、\(m_1m_3=-1\) かつ \(m_2=-1\) なので \[ Z_c X_t \] を Pauli frame に記録する。

例 4:Z-hole を右に 1 step 動かす

  1. 右側 plaquette の Z/X check を停止し、hole の前方 boundary に加える。
  2. 左側の旧 boundary セルを再び通常 stabilizer 領域に戻す。必要 data qubit を準備し、check を再開する。
  3. 左側を埋める測定値の product で、hole 周回 \(\bar X\) の sign が反転したかを frame に記録する。
  4. decoder には hole boundary の時刻 \(t\to t+1\) の移動を入力する。境界が移動した場所に time-like edge を追加する。

例 5:domain wall を横切る logical string

\(Z\)-string が e-m domain wall を 1 回横切ると、壁の反対側では \(X\)-string として続く。 したがって全体の logical operator は CSS Pauli ではなく、support 上で \(Z\) と \(X\) が混じった Pauli product になる。 これが twist code における mixed stabilizer と \(Y\)-type logical measurement の源である。

例 6:deformation protocol の検証 checklist

  1. 各時刻で \(-I\notin\Sg_t\) か。
  2. \(k_t=n_t- ank\Sg_t\) が意図通りか。
  3. 測定したい logical product 以外の logical 情報を測っていないか。
  4. logical basis の symplectic commutation relation が保たれているか。
  5. 変形中の最短 nontrivial string が target distance 未満になっていないか。
  6. measurement error を含む time-like logical fault が target distance 未満になっていないか。
  7. hook error の向きが logical operator の短い方向に揃っていないか。
  8. 初回 syndrome / split measurement / final readout の sign を Pauli frame に入れているか。

12. インタラクティブ DOT ラボ

下の selector は、同じ概念図を deformation step に応じて DOT で書き換え、d3-graphviz で再描画する。 図は抽象化されており、実際の qubit 座標ではなく logical / boundary の関係を示す。

step 0

図 9:deformation DOT lab


        

13. 演習問題

各問題は解答を折りたためる。計算問題では、まず stabilizer rank、commutation、logical operator の対応を紙に書いてから解くとよい。

Stabilizer 測定の rank 変化

問題。 \([[n,k]]\) stabilizer code で、独立な logical operator \(M\in\N(\Sg)\setminus\Sg\) を測定して stabilizer に追加した。新しい \(k'\) は何か。

解答。 rank が 1 増えるので \(k'=n-(\rank\Sg+1)=k-1\)。これは logical Pauli measurement が logical qubit 1 個分の自由度を消費することを意味する。

反可換 stabilizer replacement

問題。 測定 operator \(M\) が stabilizer generator \(g_1,g_2\) と反可換し、他とは可換だとする。可換な新 generator set を構成せよ。

解答。 \(g_1\) を \(mM\) で置き換え、\(g_2\) を \(g_2g_1\) に置き換える。\(g_2g_1\) は \(M\) と可換で、他の generator との可換性も保てる。

Z-boundary merge は何を測るか

問題。 本稿の convention で 2 patch の Z-boundary を merge した。測定される logical product は何か。

解答。 \(\bar Z_A\bar Z_B\)。Seam の Z-type check product が、旧 patch の Z-boundary を結ぶ logical Z string の product と等価になる。

X-boundary merge は何を測るか

問題。 本稿の convention で 2 patch の X-boundary を merge した。測定される logical product は何か。

解答。 \(\bar X_A\bar X_B\)。CSS duality により Z-merge の X 版である。

CNOT byproduct 1

問題。 CNOT lattice surgery で \(m_1=+1,m_2=-1,m_3=-1\)。必要な Pauli frame correction は何か。

解答。 \(m_2=-1\) なので \(Z_c\)。また \(m_1m_3=-1\) なので \(X_t\)。よって \(Z_cX_t\)。

CNOT byproduct 2

問題。 \(m_1=-1,m_2=+1,m_3=-1\) のときは?

解答。 \(m_1m_3=+1\)、\(m_2=+1\) なので correction は identity。

なぜ 1 round の merge 測定では不十分か

問題。 Seam check product が logical parity になるなら、なぜ 1 round だけ測って終わりにしないのか。

解答。 1 個の measurement error で parity product が反転しうるため、time-like distance が 1 になる。距離 \(d\) の logical measurement にするには複数ラウンド測り、measurement fault と data fault を decoder で同時に推定する。

Hole pair の logical

問題。 Z-hole pair で \(\bar Z\) と \(\bar X\) の代表を述べよ。

解答。 \(\bar Z\) は 2 つの Z-hole を結ぶ Z string。\(\bar X\) は片方の hole を一周する X loop。両者は 1 回交差するため反可換。

Hole distance

問題。 Hole pair encoding の code distance を決める幾何学的量を 3 つ挙げよ。

解答。 hole 間距離、hole 周長、hole から外部境界または別 defect までの距離。最小 nontrivial logical string / loop が distance を決める。

Boundary grow の初回 syndrome

問題。 新 qubit を追加して境界を grow したとき、初回 syndrome を単純に前 round と比較できない場合がある。なぜか。

解答。 新 check は前 round に存在しないか、旧 stabilizer product から予測できない成分を含むため。初回値は preparation randomness または gauge choice として扱い、decoder graph の boundary condition にする。

Twist wall crossing

問題。 e-m domain wall を横切る \(Z\)-string はどうなるか。

解答。 壁の反対側で \(X\)-string として続く。したがって operator は support 上で Pauli label が混在する。

Corner と twist

問題。 Planar patch の corner を twist と見なせる理由を説明せよ。

解答。 Corner は Z-boundary と X-boundary が接する場所であり、anyon condensation rule が切り替わる端点である。これは e-m domain wall の端点と同様に、string type の変換点として振る舞う。

Gauge fixing の必要性

問題。 Code deformation と lattice surgery を gauge fixing として見る利点を 2 つ挙げよ。

解答。 1 つ目は、旧 code と新 code の logical 対応を stabilizer algebra で厳密に追えること。2 つ目は、変形中の subsystem distance を使って fault tolerance を評価しやすいこと。

Logical operator の symplectic 条件

問題。 Deformation 後の logical basis が正しいか確認するには、どの commutation relation を保存すべきか。

解答。 同一 qubit の \(\bar X_i\) と \(\bar Z_i\) は反可換、異なる qubit の logical は可換、同種同士は可換という symplectic form を保存する必要がある。

Hook error の向き

問題。 変形中の bridge check で hook error の向きが重要になる理由は?

解答。 1 つの ancilla fault が 2 data error に広がり、そのペアが最短 logical string 方向に並ぶと、実効距離が下がるから。Bridge や boundary では通常 layout と最短方向が変わる場合がある。

Split measurement の frame

問題。 Split 時に cut qubit の単一 Pauli 測定結果を捨ててはいけない理由は?

解答。 その product が新しくできた stabilizer や logical operator の sign を決めるため。無視すると Pauli frame が誤り、後続 logical measurement の符号が反転する。

Dynamic defect

問題。 一時的に使えない data qubit が patch 内に現れた。単にその周囲の stabilizer を止めるだけで十分とは限らない理由は?

解答。 欠陥が hole として振る舞い、外部境界や他の defect との距離が短いと logical string が短絡するため。decoder graph と layout を再設計し、必要なら patch を拡大・迂回させる。

Merge outcome と stabilizer sign

問題。 Z-merge で raw seam product が \(-1\) だった。この \(-1\) は physical correction を直ちに打つべきか。

解答。 通常は physical correction ではなく logical measurement outcome として Pauli frame / classical control に入れる。実際の値は decoder で補正した parity を使う。

Clifford frame と Pauli frame

問題。 Twist/corner deformation では Pauli frame だけでなく Clifford frame が必要になる場合がある。なぜか。

解答。 Hadamard や phase のように logical Pauli basis 自体を写す操作が起きるため。単なる Pauli sign ではなく、\(X,Z,Y\) のラベル変換を tracking する必要がある。

Code distance bottleneck

問題。 target \(d=9\) の patch を変形中に幅 \(w=5\) の neck でつないだ。単純な空間 bottleneck はいくつか。

解答。 \(\min(d,w)=5\)。この部分により operation distance が最大でも 5 に落ちる可能性がある。

Product check の意味

問題。 Seam check product が logical product に等しい、という主張で「stabilizer を除いて」とは何を意味するか。

解答。 2 つの Pauli operator が stabilizer の積だけ異なるなら、code space 上では同じ logical action を持つ。したがって local check の product が logical string と stabilizer の積になれば、測定 outcome は logical parity を与える。

Measurement-based CNOT の projector

問題。 CNOT protocol の最初の測定 \(Z_cZ_a\) の projector を書け。

解答。 \(P_{m_1}^{Z_cZ_a}=\frac{1+m_1 Z_cZ_a}{2}\)。ここで \(m_1=\pm1\)。

Surface code 以外への拡張

問題。 Code deformation は surface code 固有か。

解答。 固有ではない。Stabilizer / subsystem code の測定集合を時間的に変える一般手法なので、color code、subsystem code、LDPC code、code switching などにも広がる。ただし幾何学的直観と locality は code ごとに異なる。

Decoder に渡すべき情報

問題。 Deformation-aware decoder に渡すべき情報を 4 つ挙げよ。

解答。 時刻ごとの check support、check identity / product relation、boundary node と time-like edge、measurement outcome と edge weights、disabled qubit map、logical parity vertex など。

Y 測定が難しい理由

問題。 標準 CSS surface code の X/Z boundary merge だけで \(Y\)-logical measurement が直接でない理由は?

解答。 \(Y=iXZ\) は X/Z の混合であり、CSS check product だけでは単純な X-boundary または Z-boundary merge として表しにくい。Twist、basis change、ancilla protocol などが必要になる。

Code deformation と transversal gate

問題。 Code deformation は transversal gate と何が違うか。

解答。 Transversal gate は各 code block の対応する物理 qubit に並列 gate をかける unitary 操作。Code deformation は stabilizer / gauge 測定の集合を変え、しばしば non-unitary measurement と Pauli frame update により logical operation を実現する。

最終確認問題

問題。 Code deformation protocol を論文・実装で提案するとき、最低限示すべきものを 5 つ挙げよ。

解答。 目的の logical map、時刻ごとの stabilizer/check set、測定 outcome からの frame update、変形中の distance または fault-distance 解析、decoder graph または decoding rule、syndrome extraction circuit と hook error 解析、resource overhead。

14. 典型的な落とし穴

境界名の混乱

rough/smooth は文献により X/Z edge の呼び方が異なる。常に「どの Pauli string が終端できるか」で判断する。

raw parity を信用する

Merge の check product は noisy。decoder 後の logical measurement outcome を使う。

最終 distance だけ見る

変形中の neck、hole 距離、time-like boundary が operation distance を決める。

split measurement を捨てる

Split の単一 qubit 測定値は stabilizer sign と logical frame に入る。

hook schedule を再利用する

変形 check は形が違う。既存 schedule が hook-error avoiding とは限らない。

logical basis を追わない

Twist/corner では Pauli label の交換が起こる。Clifford frame を明示する。

15. 参考文献と読み進め方

Code deformation は文献ごとに用語・図式・境界 convention が異なる。以下の順に読むと、幾何学的直観から gauge fixing の定式化まで繋がりやすい。

  1. H. Bombin and M. A. Martin-Delgado, Quantum Measurements and Gates by Code Deformation, J. Phys. A 42, 095302 (2009), arXiv:0704.2540. 古典的な「cut and paste」型 code deformation の出発点。
  2. H. Bombin, Clifford Gates by Code Deformation, New J. Phys. 13, 043005 (2011), arXiv:1006.5260. Topological subsystem color code と twist braiding による Clifford gate。
  3. D. Horsman, A. G. Fowler, S. Devitt, R. Van Meter, Surface code quantum computing by lattice surgery, New J. Phys. 14, 123011 (2012), arXiv:1111.4022. Surface-code lattice surgery の基本文献。
  4. B. J. Brown, K. Laubscher, M. S. Kesselring, J. R. Wootton, Poking holes and cutting corners to achieve Clifford gates with the surface code, PRX 7, 021029 (2017), arXiv:1609.04673. Hole、corner、twist を統一的に扱う。
  5. T. J. Yoder and I. H. Kim, The surface code with a twist, Quantum 1, 2 (2017), arXiv:1612.04795. Twist defect と triangle code、Clifford gates。
  6. C. Vuillot, L. Lao, B. Criger, C. García Almudéver, K. Bertels, B. M. Terhal, Code Deformation and Lattice Surgery Are Gauge Fixing, New J. Phys. 21, 033028 (2019), arXiv:1810.10037. Gauge fixing としての厳密な見方。
  7. D. Litinski, A Game of Surface Codes, Quantum 3, 128 (2019), arXiv:1808.02892. Lattice surgery architecture と tile-based な設計。
  8. A. Dua, A. Kubica, L. Jiang, S. T. Flammia, M. J. Gullans, Clifford-Deformed Surface Codes, PRX Quantum 5, 010347 (2024), arXiv:2201.07802. 局所 Clifford deformation と biased noise。
  9. K. Yin et al., FlexiSCD: Flexible Surface Code Deformer for Dynamic Defects, arXiv:2405.06941. Dynamic defect mitigation と deformation framework の近年例。
次の学習ステップ。 この HTML の図を DOT から改造し、具体的な rotated-code 座標、check support、CNOT schedule、decoder graph edge list に落とすと、シミュレータ実装へ進める。 Stim / PyMatching / sinter などを使う場合は、変形時刻ごとの detector と observable include を明示するのが最重要である。