Report 1 / graphical expansion

DOT + d3-graphviz で見る
表面符号 lattice surgery

この版は、lattice surgery を「patch」「seam」「new stabilizer」「logical observable」「decoder observable」の依存グラフとして可視化するためのものです。d3-graphviz により、DOT 記述をボタンで切り替えながら観察できます。

CDN 注意: MathJax、d3、hpcc-js/wasm、d3-graphviz を CDN から読み込みます。オフラインで開くと、数式と DOT レンダリングは fallback 表示になる場合があります。

0. この図解版の使い方

lattice surgery は、見た目には「隣の patch と境界をつなぐ」操作ですが、量子情報としては 特定の論理 Pauli 積を fault-tolerant に測定する操作です。DOT 図では、次の4階層を分けます。

物理層

data qubit を準備・測定し、ancilla による syndrome extraction のチェック集合を一時的に変更する。

ゲージ/スタビライザー層

seam に新しいチェックを入れる。測定された seam checks の積が、スタビライザー剰余で論理 Pauli 積に等しい。

論理層

射影 \(P_m=(I+mP_L)/2\) として働く。ここで \(P_L\) は \(X_AX_B\) または \(Z_AZ_B\)。

decoder 層

各ラウンドの raw syndrome ではなく、時空間 detector と observable をまとめて復号し、logical measurement bit を補正する。

1. convention と記法

境界名は文献・図の置き方で混乱しやすいので、本レポートでは以下を一次的な定義とします。

本レポートの名前物理的に turn on する seam checkbridge/routing data qubit の初期化split で測る basis測定される論理量
X型 seam surgeryX-type seam checks\(\ket{0}\)Z basis\(X_A X_B\)
Z型 seam surgeryZ-type seam checks\(\ket{+}\)X basis\(Z_A Z_B\)
rough/smooth の注意: planar code の primal/dual 境界の呼び方、rotated patch の描き方、論理 \(X\)/\(Z\) の向きの選び方により、「rough merge」「smooth merge」という語が逆に見えることがあります。実装仕様書では、名称だけでなく「どの物理チェックを seam に入れるか」「どの論理 observable を出力するか」を明記してください。

以下では stabilizer 群を \(\S\)、物理 Pauli 群を \(\P\) とし、論理演算子は \(N(\S)/\S\) の元として扱います。seam checks の集合を \(\Gamma_X\) または \(\Gamma_Z\) と書きます。

2. DOT + d3-graphviz 図解

下のボタンで DOT グラフを切り替えてください。左から右へ進む矢印は「物理操作」「測定 outcome」「Pauli frame への入力」の因果を表します。

Graphviz を読み込み中です。

現在の DOT source を表示・編集する

3. X型 seam surgery: \(X_A X_B\) 測定を物理 qubit 操作に分解する

2つの patch \(A,B\) を、\(X\)-logical が seam を横切れる向きに隣接させます。ここで行うことは「境界を接着する」というより、seam をまたぐ X-type stabilizer/gauge checks を一時的に測ることです。

3.1 物理操作列

  1. routing region の data qubits を \(\ket{0}\) に初期化する。\(Z\) の既知固有状態なので、後で Z-basis で切り離すときの classical record と整合する。
  2. seam 近傍の古い境界チェックを停止し、代わりに seam をまたぐ X-type checks \(S^X_i\) を syndrome extraction schedule に入れる。weight-4 を直接測る場合も、weight-2 gauge checks に分解してから積で super-check を得る場合もある。
  3. 通常の bulk checks と seam checks を \(d_m\) ラウンド、典型的には code distance \(d\) 程度、繰り返し測る。1ラウンドだけでは measurement error が logical parity bit を直接反転し得る。
  4. decoder に、開始時・終了時の境界変化を含む時空間 detector model と observable \(O_{XX}\) を渡す。
  5. split する場合、routing region の data qubits を Z basis で測り、元の境界 checks を復帰する。測定値は split 後の patch の Pauli frame に入る。

3.2 なぜ \(X_AX_B\) を測ったことになるか

seam checks の積を \(M_X=\prod_{i\in\Gamma_X} S^X_i\) とする。個々の \(S^X_i\) は物理 stabilizer/gauge check だが、積を取ると内部の物理 \(X\) は偶数回現れて消え、seam を貫く端の support だけが残る。適切な向きの patch では、これは論理演算子の代表元 \(X_A X_B\) に bulk stabilizer を掛けたものになる:

\[ M_X = X_A X_B \cdot S_{\mathrm{bulk}},\qquad S_{\mathrm{bulk}}\in\S. \]

コード空間上では \(S_{\mathrm{bulk}}=+1\) なので、\(M_X\) の測定 outcome は \(X_AX_B\) の outcome と同じです。実際には noisy なので、raw product ではなく decoder が推定した observable bit を使います。

論理作用は非ユニタリな射影です:

\[ \rho \longmapsto \frac{P_x \rho P_x}{\Tr(P_x\rho)},\qquad P_x=\frac{I+xX_AX_B}{2},\quad x\in\{+1,-1\}. \]

4. Z型 seam surgery: \(Z_A Z_B\) 測定

Z型は X型の双対です。routing region を \(\ket{+}\) に準備し、Z-type seam checks を入れ、split 時は X basis で routing qubits を測ります。

\[ M_Z=\prod_{i\in\Gamma_Z} S^Z_i = Z_A Z_B\cdot S_{\mathrm{bulk}}, \qquad P_z=\frac{I+zZ_AZ_B}{2}. \]

\(Z_AZ_B\) 測定後は、\(Z_A\) と \(Z_B\) は測定値により相関しますが、\(X_A\) や \(X_B\) 単体は測定した observable と反交換するため、それぞれ単独では事後状態の well-defined logical observable ではなくなります。split 後にどの物理 string を新しい \(X_A,X_B\) と呼ぶかは、split 測定 outcome を含む Pauli frame によって固定されます。

5. split/merge の状態写像

「merge」はしばしば、2個の logical qubit を 1個の大きな patch にする操作を指します。一方、量子回路の parity measurement として使うときは、merge 後に split して 2個の logical qubit に戻します。両者を混同しないことが重要です。

操作論理 Hilbert 空間抽出される classical bit典型的 byproduct
merge のみ2 logical \(\to\) 1 logicaljoint parity残った logical basis の定義に吸収
merge + split2 logical \(\to\) 2 logicaljoint paritysplit 測定値に依存する Pauli frame
split のみ1 logical \(\to\) 2 logical切断線 qubit 測定値Bell/GHZ 型の相関または frame correction
merge/split は gauge fixing として見ると整理しやすいです。測定される新しいチェックは新しい stabilizer 群の生成元であり、古い stabilizer 群と新しい stabilizer 群の差分が「どの logical observable を測ったか」を決めます。

6. CNOT のグラフ的構成

lattice surgery の CNOT は「CNOT を直接かける」のではなく、ancilla patch を使った Pauli product measurement pattern です。

  1. ancilla \(A\) を \(\ket{+}_L\) に準備する。
  2. Z型 surgery で \(Z_CZ_A\) を測る。outcome を \(m_1\in\{\pm1\}\) とする。
  3. X型 surgery で \(X_AX_T\) を測る。outcome を \(m_2\in\{\pm1\}\) とする。
  4. ancilla を logical Z basis で測る。outcome を \(m_3\in\{\pm1\}\) とする。
  5. Pauli frame: \(m_2=-1\) なら control に \(Z_C\)、\(m_1m_3=-1\) なら target に \(X_T\) を入れる。

CNOT byproduct calculator

measurement outcomes をクリックすると、必要な Pauli frame correction を計算します。

この pattern が CNOT になる理由は、Clifford tableau で見れば、入力の Pauli generators が測定と feed-forward 後に次のように変換されるためです:

\[ X_C\mapsto X_CX_T, \quad Z_C\mapsto Z_C, \quad X_T\mapsto X_T, \quad Z_T\mapsto Z_CZ_T. \]

7. detector graph と observable

物理 qubit level の手術では、最終的に必要なのは「raw seam product」ではなく、復号後の logical measurement observable です。時刻 \(t\) の check outcome を \(s_i(t)\in\F_2\) とすると、通常の detector は差分

\[ D_i(t)=s_i(t)\oplus s_i(t-1) \]

で作られます。seam を入れた最初のラウンドと、seam を消した最後のラウンドでは、比較対象が変わるため boundary detector が必要です。

space-like fault

seam を横切る物理エラー列が observable \(O_{XX}\) または \(O_{ZZ}\) を反転させる。

time-like fault

同じ seam check の measurement error が時間方向に連なり、parity bit を誤らせる。

したがって、surgery の code distance は「patch の静的距離」だけでなく、seam 長、測定ラウンド数、境界 detector の設計、hook error の向きで決まります。

8. 典型的な誤解

誤解1: seam check の積を1回取れば十分

measurement error が1個あるだけで logical parity が反転するため、fault tolerance がありません。\(d_m\) ラウンドの時空間復号が必要です。

誤解2: merge はユニタリゲートである

merge/split は測定 outcome を持つ CPTP map です。CNOT などのユニタリは、測定 pattern と Pauli frame correction を含めて初めて実現されます。

誤解3: rough/smooth の名前だけで \(XX\) か \(ZZ\) が決まる

名前は convention 依存です。実験制御では seam check type、routing qubit 初期化 basis、split measurement basis、observable の support を仕様にするべきです。

誤解4: split 測定値は補助情報であり無視できる

split 測定値は、split 後の patch の logical frame を固定します。無視すると後続の測定結果を誤って解釈します。

参考文献と位置づけ

本レポートは、下記の文献・実装系解説を参照しつつ、物理チェックの切替、logical observable の同定、Pauli frame の処理を教育目的に再構成したものです。文献により rough/smooth の命名や patch の向きが異なることがあるため、本文では必ず「X型 seam surgery」「Z型 seam surgery」のように、測る論理演算子と物理チェック型を明示します。

  1. Dominic Horsman, Austin G. Fowler, Simon Devitt, Rodney Van Meter, Surface code quantum computing by lattice surgery, New Journal of Physics 14, 123011 (2012).
  2. Austin G. Fowler, Matteo Mariantoni, John M. Martinis, Andrew N. Cleland, Surface codes: Towards practical large-scale quantum computation, Phys. Rev. A 86, 032324 (2012).
  3. Daniel Litinski, A Game of Surface Codes: Large-Scale Quantum Computing with Lattice Surgery, Quantum 3, 128 (2019).
  4. Austin G. Fowler, Craig Gidney, Low overhead quantum computation using lattice surgery (2018).
  5. Niel de Beaudrap, Dominic Horsman, The ZX calculus is a language for surface code lattice surgery (2017).
  6. magjac, d3-graphviz: DOT を d3 と Graphviz/WASM で SVG にレンダリングするライブラリ。