Report 2 / many concrete examples

表面符号 lattice surgery
具体例40選

抽象式だけでは見落としやすい、初期化 basis、seam check、split basis、decoder observable、Pauli frame の具体的な組み合わせを大量に並べた例集です。

0. 具体例集の読み方

各例は「物理操作」「論理的な意味」「落とし穴」に分けています。タグ検索で CNOT, X型, decoder, 失敗例, multi-qubit などを入力すると絞り込めます。

1. 操作の対応表

測りたい論理量routing 初期化turn on する checkssplit basis出力の扱い
\\(X_AX_B\\)\\(\\ket{0}\\)X-type seam checksZ basis復号済み observable \\(m_{XX}\\)
\\(Z_AZ_B\\)\\(\\ket{+}\\)Z-type seam checksX basis復号済み observable \\(m_{ZZ}\\)
CNOTancilla \\(\\ket{+}_L\\)\\(Z_CZ_A\\), then \\(X_AX_T\\)ancilla \\(Z\\) 測定\\(Z_C\\) if \\(m_2=-1\\), \\(X_T\\) if \\(m_1m_3=-1\\)
multi-PauliPauli 型に応じる選んだ Pauli 型の seam/gauge checks双対 basisobservable support を GF(2) で定義

2. 具体例40選

E01. 隣接2パッチの X 型 parity 測定

X型基本物理操作
物理操作

2つの rotated patch を X-string が seam を横切る向きに置き、routing qubit を \(\ket{0}\) に準備する。seam の X-type checks を \(d_m\) ラウンド測る。

論理的な意味

seam check 積は \(X_A X_B\) と stabilizer 同値なので、復号後の observable bit が \(X_AX_B\) の測定値。

落とし穴

1ラウンドの raw product を使わない。split の Z-basis 測定値を frame に入れる。

E02. 隣接2パッチの Z 型 parity 測定

Z型基本物理操作
物理操作

routing qubit を \(\ket{+}\) に準備し、Z-type seam checks を測る。split は X basis。

論理的な意味

復号後の observable は \(Z_AZ_B\)。Z 型 surgery は X 型の双対。

落とし穴

X/Z の記法と rough/smooth 名称を混同しない。

E03. merge のみで2論理を1論理にする

merge状態写像
物理操作

2パッチを seam checks で接続し、split せずに大きな1パッチとして以後 syndrome extraction を続ける。

論理的な意味

2 qubit 空間を parity sector に射影し、残る自由度を1 logical として再定義する。

落とし穴

merge 後の logical \(X_L,Z_L\) の代表元を必ず再定義する。

E04. merge+split による非破壊 parity 測定

splitmerge基本
物理操作

merge 後に routing region を適切 basis で測定して切り離し、元の2 patch に戻す。

論理的な意味

論理的には \(P_m=(I+mP_L)/2\) の projective measurement。2 logical qubits は残る。

落とし穴

split 測定値は classical garbage ではなく logical frame の一部。

E05. CNOT: outcome がすべて +1

CNOTPauli frame
物理操作

ancilla \(A\) を \(\ket{+}_L\) に準備。\(Z_CZ_A\), \(X_AX_T\), \(Z_A\) を測る。

論理的な意味

\(m_1=m_2=m_3=+1\) なら byproduct なしで CNOT tableau が得られる。

落とし穴

この場合でも測定履歴は後続の decoder observable として保持する。

E06. CNOT: \(m_2=-1\) の場合

CNOTPauli frame
物理操作

同じ CNOT pattern で \(X_AX_T\) の復号済み outcome が -1。

論理的な意味

control の Pauli frame に \(Z_C\) を入れる。target の correction は \(m_1m_3\) に依存。

落とし穴

物理的に Z pulse を打つ必要は通常ない。frame 更新でよい。

E07. CNOT: \(m_1m_3=-1\) の場合

CNOTPauli frame
物理操作

\(Z_CZ_A\) outcome と ancilla Z 測定 outcome の積が -1。

論理的な意味

target の Pauli frame に \(X_T\) を入れる。

落とし穴

ancilla の最後の論理測定も decoder を通した logical measurement として扱う。

E08. Bell pair 生成: \(\ket{+}\ket{0}\) と \(ZZ\) 測定

Bell状態生成
物理操作

\(A\) を \(\ket{+}\)、\(B\) を \(\ket{0}\) に準備し、\(X_AX_B\) または \(Z_AZ_B\) を組み合わせて相関を作る。

論理的な意味

例えば \(ZZ\) と適切な single-logical preparation/measurement により Bell stabilizer \(ZZ=+1, XX=+1\) を作る。

落とし穴

どちらの Bell stabilizer を surgery で得て、どちらを初期化で得るかを明記する。

E09. GHZ state を star 状に作る

multi-qubit状態生成
物理操作

中央 ancilla/bus patch を使い複数 patch と同種の parity 測定を行う。

論理的な意味

\(Z_1Z_2, Z_1Z_3, ...\) と全体の X 相関を stabilizer として持つ GHZ 型状態を構成できる。

落とし穴

bus が長いと seam distance と測定ラウンドが支配的になる。

E10. 3 qubit Pauli product \(Z_AZ_BZ_C\) 測定

multi-qubitZ型
物理操作

3つの patch を共通 routing region に接続し、Z-type seam/super-checks の積を observable にする。

論理的な意味

decoder observable が \(Z_AZ_BZ_C\) になるように support を設計する。

落とし穴

中間で2体測定を2回行うのと同じではなく、保持される相関が異なる場合がある。

E11. 3 qubit Pauli product \(X_AX_BX_C\) 測定

multi-qubitX型
物理操作

routing data を \(\ket{0}\) にし、X-type seam checks を複数 patch にまたがって測る。

論理的な意味

seam check 積が \(X_AX_BX_C\) に stabilizer 同値となる。

落とし穴

分岐点の hook error と weight reduction gauge の設計に注意。

E12. Y を含む Pauli product

YClifford frame
物理操作

\(Y=iXZ\) なので、logical S/H frame で測定基底を変換するか、X/Z surgery と Clifford frame を組み合わせる。

論理的な意味

実装上は物理ゲートで patch 全体を回すのではなく、logical frame 変換として扱える場合が多い。

落とし穴

位相 \(i\) は measurement sign convention に入る。符号表を明示する。

E13. split で1 patch から2 patch の相関を作る

split状態写像
物理操作

1つの長い patch の中央列を Z または X basis で測り、2 patch に分割する。

論理的な意味

切断 basis と元の logical state に応じ、2つの新 logical の parity が固定される。

落とし穴

測った列の outcome product が byproduct sign を決める。

E14. logical \(Z\) 測定としての境界 readout

logical measurement
物理操作

patch 全体の適切な data-qubit string/全体 basis 測定から logical \(Z\) outcome を復号する。

論理的な意味

terminal round の syndrome と data measurement を合わせた observable が logical \(Z_L\)。

落とし穴

最後の data measurement だけの product は noisy。decoder に終端 detector を入れる。

E15. surgery 中に隣の patch を idle memory として保持

スケジュールlayout
物理操作

対象でない patch は通常の syndrome extraction を継続し、seam 近傍の競合する ancilla schedule だけ避ける。

論理的な意味

論理的には identity memory channel。ただし同時実行可能性は stabilizer schedule の衝突で決まる。

落とし穴

隣接 patch の hook error が surgery observable に混入しないようにする。

E16. 短すぎる seam の失敗例

距離失敗例
物理操作

code distance \(d\) の patch なのに seam 長が \(d-2\) しかない。

論理的な意味

surgery observable を反転する space-like error chain の最小重みが下がり、操作距離が \(d\) 未満になる。

落とし穴

patch の静的距離だけでは手術の距離は保証されない。

E17. 少なすぎる syndrome ラウンド

時間方向失敗例
物理操作

\(d_m=1\) で seam checks を測って即 split。

論理的な意味

measurement error 1個が parity bit を反転できるため time-like distance が1。

落とし穴

実験デモでは post-selection と区別する。fault-tolerant とは言えない。

E18. measurement error が seam observable を反転

decoderobservable
物理操作

同じ seam check の outcome が1ラウンドだけ反転。

論理的な意味

detector pair は出るが、observable と同時に相関するかは decoder graph で決まる。

落とし穴

observable bit を raw product でなく correction class と一緒に計算する。

E19. data error chain が \(XX\) surgery を壊す

error chainX型
物理操作

Z error chain が X-type seam checks の syndrome を作り、seam を横切って logical observable に接続する。

論理的な意味

decoder が誤った homology class を選ぶと \(X_AX_B\) outcome が反転する。

落とし穴

seam 近傍の境界 detector を正しく入れる。

E20. data error chain が \(ZZ\) surgery を壊す

error chainZ型
物理操作

X error chain が Z-type seam checks に syndrome を作る。

論理的な意味

誤った correction class は \(Z_AZ_B\) observable bit を反転する。

落とし穴

X/Z duality を使うが noise bias があると対称ではない。

E21. hook error の向きを seam から逃がす

hook errorスケジュール
物理操作

ancilla-data CNOT の順序を、相関2-qubit error が短い logical operator を作らない向きに設定する。

論理的な意味

stabilizer は同じでも circuit-level noise で有効距離が変わる。

落とし穴

phenomenological model だけで安全と判断しない。

E22. weight-4 seam check を gauge checks に分解

gauge物理操作
物理操作

直接 weight-4 を測れない場合、複数の低重み gauge operators を測り、その積を super-stabilizer として使う。

論理的な意味

gauge outcome 自体は logical 情報ではなく、積が seam stabilizer と observable を構成する。

落とし穴

gauge fixing の detector model を明示的に作る。

E23. rotated patch の corner surgery

rotatedcorner
物理操作

隣接方向が辺ではなく角に近い場合、短い routing strip と変形した check support を使う。

論理的な意味

observable support が連結し、最小エラー鎖が距離 \(d\) を保つなら parity 測定として使える。

落とし穴

corner で距離が落ちやすい。図の見た目ではなく homology で確認する。

E24. patch movement は連続した surgery と見なせる

patch deformation
物理操作

片側の境界を伸ばし、反対側を測定で削る。

論理的な意味

logical operator representatives が空間的に移動するが、Pauli frame により同じ logical qubit を追跡する。

落とし穴

移動中の最小論理距離を各時刻で確認する。

E25. 測定値 -1 は失敗ではない

測定Pauli frame
物理操作

parity measurement の outcome が -1。

論理的な意味

射影先の parity sector が異なるだけ。必要なら後続の Clifford frame で補正する。

落とし穴

post-selection しない設計では -1 を正常な分岐として扱う。

E26. ancilla patch の初期化失敗を decoder で扱う

初期化decoder
物理操作

logical \(\ket{+}\) や \(\ket{0}\) は数ラウンドの syndrome と logical observable で検証される。

論理的な意味

初期化は ideal projection ではなく noisy preparation + decoding。

落とし穴

初期化直後の boundary detectors を忘れない。

E27. 非隣接 patch を bus で接続

routingbus
物理操作

間に空の routing region を置き、長い seam/bus を準備して parity 測定する。

論理的な意味

logical product は測れるが、space-time volume は bus 長と測定ラウンドに比例。

落とし穴

bus 自体が別の logical degree を持たないよう stabilizer/gauge を設計する。

E28. asymmetric distance の surgery

距離非対称
物理操作

\(d_A=7,d_B=5\) の patch 間で surgery。

論理的な意味

操作距離は通常、小さい方、seam geometry、round 数で制限される。

落とし穴

大きい patch の距離に合わせても小さい patch 側で logical fault が起きる。

E29. bias-preserving な Z 型 surgery

biased noiseZ型
物理操作

dephasing bias が強いなら、X/Z surgery の選択と repetition 回数を非対称にする設計があり得る。

論理的な意味

論理測定の失敗確率はノイズモデルに依存し、X/Z 双対の完全対称性は壊れる。

落とし穴

bias を使うなら decoder weights と schedule も一緒に変える。

E30. lattice surgery と braid の対応

braiding概念
物理操作

braiding は defect world-line の絡み、surgery は patch 間 Pauli product measurement の列。

論理的な意味

どちらも surface code の logical Clifford を作れるが、resource layout と直感が異なる。

落とし穴

surgery は測定 pattern なので byproduct 管理が中心。

E31. ZX-calculus 的な rough/smooth merge

ZX図式
物理操作

merge/split を Frobenius algebra の spider として抽象化する。

論理的な意味

同色 spider の fusion が同種の merge/split 合成に対応する。

落とし穴

ZX 図式は高レベル検証に有効だが、物理 schedule と距離評価は別途必要。

E32. Stim/decoder に渡す observable の考え方

detector model
物理操作

各 seam check outcome と split measurement outcome を observable include する。

論理的な意味

decoder は検出イベントから correction class を選び、observable flip を出力する。

落とし穴

observable の符号 convention を circuit generator と一致させる。

E33. 測定後に単独 Pauli が未定義になる例

論理代数
物理操作

\(Z_AZ_B\) を測った直後、\(X_A\) は測定演算子と反交換する。

論理的な意味

事後状態では \(X_A\) 単独の期待値は一般に消え、\(X_AX_B\) など可換な組み合わせが意味を持つ。

落とし穴

split 後の新しい single-logical operators は frame とともに再選択される。

E34. 測定で entanglement を作る最小例

状態生成
物理操作

独立な \(\ket{+}\ket{+}\) に \(Z_AZ_B\) surgery を行う。

論理的な意味

outcome \(z\) に応じて \(Z_AZ_B=z\) の entangled parity sector に入る。

落とし穴

完全な Bell pair には追加の stabilizer/measurement か初期化条件が必要。

E35. routing qubit の初期化 basis を間違えた場合

初期化失敗例
物理操作

X型 surgery なのに routing qubit を \(\ket{+}\) に準備。

論理的な意味

意図した split basis と gauge-fixing 条件が合わず、余計な logical 情報・ランダム frame が入る。

落とし穴

実装仕様では seam type と初期化/split basis をペアで固定する。

E36. surgery の classical control latency

制御architecture
物理操作

CNOT の byproduct を物理 pulse で即時補正せず、後続の測定 basis/結果解釈に反映する。

論理的な意味

Clifford frame なら古典制御遅延を Pauli frame propagation で吸収できる。

落とし穴

non-Clifford injection の feed-forward では遅延が resource に影響する。

E37. 連続した \(XX\) と \(ZZ\) 測定の非可換性

測定順序
物理操作

同じ patch を共有する \(X_AX_B\) と \(Z_AZ_C\) を測る。

論理的な意味

共有 qubit 上で X と Z が反交換するため、測定順序が論理 map を変える。

落とし穴

スケジューラは同時実行だけでなく論理可換性も確認する。

E38. stabilizer code の syndrome と surgery outcome の違い

概念
物理操作

bulk syndrome はエラー検出用、surgery observable はアルゴリズム上の測定結果。

論理的な意味

どちらも check outcome から作るが、前者は detector、後者は logical observable として扱う。

落とし穴

decoder 出力で observable flip を補正する。

E39. 実験デモ: post-selection ありの小距離 surgery

実験距離
物理操作

距離3未満または少数ラウンドで syndrome がきれいな試行だけ採用する。

論理的な意味

概念実証として parity 相関を観測できるが、完全な fault tolerance とは区別する。

落とし穴

post-selection の閾値・破棄率を報告する。

E40. GF(2) で observable support を合成

GF2compiler
物理操作

物理 checks を binary vector とし、測りたい logical support に一致する check 積を線形方程式で探す。

論理的な意味

\(H^T a = \ell + s\) のような形で seam check の選択を求める。

落とし穴

不完全 hardware や欠陥 qubit では可解性判定が重要。

3. 物理 qubit level の実装レシピ

3.1 二体 Pauli product 測定の共通レシピ

input: patches A,B; desired P_A P_B where P is X or Z; code distance d; measurement rounds d_m
1. choose seam geometry so product of seam checks is P_A P_B modulo bulk stabilizers
2. initialize routing data qubits in the basis dual to the split measurement:
   if P=X: prepare |0>, later measure Z
   if P=Z: prepare |+>, later measure X
3. update syndrome extraction schedule: pause incompatible boundary checks, activate seam checks
4. repeat for d_m rounds; collect raw check outcomes with timestamps
5. build detectors including start/end boundary detectors
6. define observable O_PP from seam outcomes plus terminal data measurements if needed
7. decode; report corrected parity m_PP
8. split; restore patch checks; update Pauli frame from m_PP and split outcomes

3.2 CNOT レシピ

prepare A = |+>_L
m1 = measure_logical_product(Z_C, Z_A)  # Z-type surgery
m2 = measure_logical_product(X_A, X_T)  # X-type surgery
m3 = measure_logical_Z(A)               # destructive logical measurement
if m2 == -1: frame.add(Z_C)
if m1*m3 == -1: frame.add(X_T)
retire ancilla A

参考文献と位置づけ

本レポートは、下記の文献・実装系解説を参照しつつ、物理チェックの切替、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 にレンダリングするライブラリ。