1個の smooth merge はどの論理測定をしているのか
「smooth merge は \(Z\) なのか \(X\) なのか」を、境界名ではなく seam check と logical observable から確認する。 このレポートでは、物理手順、stabilizer 代数、射影測定、decoder observable、merge 後の論理演算子まで一続きで整理する。
0. 結論
このノートの convention では、1個の smooth merge は 2 つの論理パッチ \(A,B\) に対する \(\bar Z_A\bar Z_B\) の parity 測定である。
測っているのは \(\bar Z_A\) 単体でも \(\bar Z_B\) 単体でもない。 わかるのは「2つの \(Z\) 論理値が同じか、違うか」という積の情報だけである。
測定される量
\(\bar Z_A\bar Z_B\)。結果 \(s=+1\) は even parity、\(s=-1\) は odd parity を表す。
物理的に入れるもの
seam data を \(\ket{+}\) に準備し、境界をまたぐ \(Z\)-type seam checks を測る。
保持される情報
\(\bar Z_A\bar Z_B\) と可換な情報は保持される。反可換な \(\bar X_A\), \(\bar X_B\) は測定 back-action を受ける。
ただし、smooth/rough の名前は文献や rotated patch の置き方で入れ替わって見えることがある。
事故を避けるには「smooth merge」とだけ書かず、M_ZZ または
measure ZZ と論理 observable を併記するのがよい。
1. このノートの約束
表面符号の境界名は、どの anyon が凝縮するか、どの向きに patch を描くか、rotated patch の色付けをどう選ぶかで見え方が変わる。 このレポートでは、既存の 表面符号の lattice surgery と同じ約束を使い、 smooth merge を \(M_{ZZ}\)、rough merge を \(M_{XX}\) と呼ぶ。
| 操作名 | seam で有効化する check | 論理測定 | split するなら |
|---|---|---|---|
| rough merge | X-type seam checks | \(\bar X_A\bar X_B\) | seam data を \(Z\) basis 測定 |
| smooth merge | Z-type seam checks | \(\bar Z_A\bar Z_B\) | seam data を \(X\) basis 測定 |
この表の「smooth \(=\) \(ZZ\)」は、境界名そのものから魔法のように出るのではない。 決め手は、merge で新しく測り始める seam check 群の積が、merge 前の符号空間でどの logical Pauli 積と同値かである。
以後、測定結果を符号 \(s\in\{+1,-1\}\) または bit \(m\in\{0,1\}\) で書き、 \(s=(-1)^m\) と対応させる。logical Pauli は \(\bar X_A,\bar Z_A,\bar X_B,\bar Z_B\) と書く。
2. smooth merge の物理手順
2つの距離 \(d\) patch \(A,B\) を、間の routing/seam 領域 \(R\) を使って一時的に大きな patch にする。 実装によっては \(R\) が常に置かれていて普段は使わない qubit であり、別の実装では merge の直前に割り当てる。 どちらでも論理的な意味は同じである。
「\(\ket{+}\) に準備するのに、なぜ \(Z Z\) を測るのか」が最初の混乱点である。 \(\ket{+}\) 準備は、追加した seam data が \(X\) 型の初期化 syndrome と整合するようにするための物理的準備であり、 読み出す論理量は「有効化した \(Z\)-type seam check 群の積」が決める。
-
merge 前: \(S_A\) と \(S_B\) は独立に測られており、\(\bar Z_A,\bar Z_B\) はそれぞれの patch を横切る logical string として定義されている。
-
merge 開始: 境界付近の古い check の一部を止め、merged patch として妥当な \(Z\)-type seam checks を測り始める。
-
結果の読み方: 最初の seam check product は、noiseless なら \(\bar Z_A\bar Z_B\) の値である。 実際には測定誤りと data error があるため、時空間 detector graph で補正する。
3. 射影として見る
入力は 2 つの論理 qubit \(A,B\) である。smooth merge の測定結果を \(s=+1\) または \(s=-1\) とすると、理想的な論理作用は次の射影で表せる。
つまり、\(s=+1\) なら \(\bar Z_A\bar Z_B=+1\) の sector に、 \(s=-1\) なら \(\bar Z_A\bar Z_B=-1\) の sector に状態を射影する。 実機では raw seam product をそのまま使わず、syndrome record と decoder correction を合わせて \(s\) を決める。
この式は「1個の smooth merge はユニタリゲートではない」ことも示している。 測定 outcome \(s\) があり、その outcome に応じて状態は \(ZZ\) parity sector へ射影される。 outcome を捨てると、even/odd sector 間の coherence は失われる。
seam の個々の \(Z\)-type check は局所量だが、それらの積は旧 stabilizer を掛けると \(\bar Z_A\bar Z_B\) と同じ logical observable になる。
4. Stabilizer で見る
merge 前の stabilizer 群を \(S_A\) と \(S_B\) とする。 smooth merge では、境界をまたぐ新しい \(Z\)-type seam check 群 \(G_{\rm seam}^Z\) を測る。 個々の \(g\in G_{\rm seam}^Z\) は旧符号空間上の logical operator ではないが、適切な積を取ると次の同値が成り立つ。
したがって、最初の merge ラウンドで得る seam check の積は、ノイズがなければ \(\bar Z_A\bar Z_B\) の測定値である。ノイズがある場合は、decoder が推定した error chain が この observable を反転するかどうかを加味する。
4.1 なぜ積だけが論理量になるのか
個々の seam check は局所 stabilizer であり、測っても単独では「logical qubit の値」を表さない。 しかし seam に沿ってすべて掛け合わせると、内部の local edge は \(\mathbb F_2\) 上で2回現れて消え、 両端に残る非自明 string が \(A\) と \(B\) の logical \(Z\) string になる。 これが \(\prod G_{\rm seam}^{Z}\equiv \bar Z_A\bar Z_B\) という同値の幾何学的意味である。
4.2 可換性で確認する
| 演算子 | \(\bar Z_A\bar Z_B\) との関係 | smooth merge 後の意味 |
|---|---|---|
| \(\bar Z_A\) | 可換 | merged qubit の \(\bar Z_M\) として使える。 |
| \(\bar Z_B\) | 可換 | constraint \(\bar Z_A\bar Z_B=s\) により \(s\bar Z_A\) と同値。 |
| \(\bar X_A\) | 反可換 | 単独では merge 後の logical operator になれない。 |
| \(\bar X_B\) | 反可換 | 単独では merge 後の logical operator になれない。 |
| \(\bar X_A\bar X_B\) | 可換 | merged qubit の \(\bar X_M\) として使える。 |
5. 基底で見る
\(\bar Z\) の固有基底を \(\ket{0},\ket{1}\) と書く。 一般の 2 logical state を
とすれば、smooth merge は偶奇 parity を読む。
\(s=+1\): even \(ZZ\) sector
\[ c_{00}\ket{00}+c_{11}\ket{11} \] が残る。2つの \(Z\) 論理値は同じである。
\(s=-1\): odd \(ZZ\) sector
\[ c_{01}\ket{01}+c_{10}\ket{10} \] が残る。2つの \(Z\) 論理値は異なる。
ここで重要なのは、\(\ket{00}\) と \(\ket{11}\) のどちらだったかまでは測っていない点である。 だから smooth merge は \(Z_A\) 測定でも \(Z_B\) 測定でもなく、あくまで \(Z_AZ_B\) parity 測定である。
「\(ZZ\) parity を測る」と「\(Z_A\) と \(Z_B\) をそれぞれ測る」は違う。 前者は \(\ket{00}\) と \(\ket{11}\) の重ね合わせを保てるが、後者はどちらかを区別してしまう。
6. merge 後の論理演算子
smooth merge だけで止める場合、2つの logical qubits は1つの merged logical qubit に再定義される。 測定 outcome を \(s\) とすると、新しい stabilizer constraint は
この constraint と可換で、かつ stabilizer ではない代表を1組選べば merged logical qubit の Pauli が得られる。 典型的な選び方は次である。
| merged logical | 代表元 | 理由 |
|---|---|---|
| \(\bar Z_M\) | \(\bar Z_A\) または \(s\bar Z_B\) | \(\bar Z_A\bar Z_B=s\) なので \(\bar Z_A\) と \(s\bar Z_B\) は merged code 上で同じ作用を持つ。 |
| \(\bar X_M\) | \(\bar X_A\bar X_B\) | \(\bar X_A\) と \(\bar X_B\) はそれぞれ constraint と反可換だが、積は可換で \(\bar Z_M\) と反可換。 |
これは rough merge の双対である。rough merge では \(\bar X_A\bar X_B=s\) が固定され、 \(\bar X_M=\bar X_A\)、\(\bar Z_M=\bar Z_A\bar Z_B\) のように選べる。 smooth merge では \(X\leftrightarrow Z\) を交換した対応になる。
6.1 outcome ごとの基底再解釈
| outcome | 残る subspace | \(\bar Z_M=\bar Z_A\) とした基底 |
|---|---|---|
| \(s=+1\) | \(\Span\{\ket{00},\ket{11}\}\) | \(\ket{0_M}=\ket{00},\quad \ket{1_M}=\ket{11}\) |
| \(s=-1\) | \(\Span\{\ket{01},\ket{10}\}\) | \(\ket{0_M}=\ket{01},\quad \ket{1_M}=\ket{10}\) |
7. 「1個の merge だけ」と「merge + split」
smooth merge だけ
2 logical qubits を 1 つの大きな patch に合体する。 \(\bar Z_A\bar Z_B=s\) が stabilizer constraint として固定されるので、 独立な論理自由度は \(2\to1\) に減る。
smooth merge + split
一時的に merge して \(ZZ\) parity を読み、その後 \(X\) basis split で 2 patch に戻す。 この場合は、2 logical qubits を残したまま \(ZZ\) 測定だけを実行したと見なせる。
したがって「1個の smooth merge はどの論理測定か」と聞かれたら、答えは \(\bar Z_A\bar Z_B\) の測定でよい。 ただし merge だけで止めるなら、測定に加えて「2 qubit 空間を 1 qubit 空間へ再符号化する」 という状態写像も同時に起きている。
7.1 split を入れると何が増えるか
計算でよく使うのは、merge したまま論理数を減らす操作ではなく、 merge で \(ZZ\) parity を読み、その後 split して2つの patch に戻す操作である。 smooth merge の逆向き split では、seam data を \(X\) basis で測る。
split の \(X\)-basis 測定値は単なる後片付けではない。 境界を切る transition の detector と Pauli frame 更新に入るため、測定 record として保存する必要がある。
8. Decoder observable と fault tolerance
理想式では seam check product がそのまま \(ZZ\) outcome だった。 しかし実機や circuit-level simulator では、data error、measurement error、reset error、hook error がある。 そのため、smooth merge の出力は raw product ではなく、decoder が補正した observable bit である。
| 項目 | 意味 | 実装上の注意 |
|---|---|---|
| \(m_g(t_0)\) | merge 後最初に測った seam check \(g\) の outcome bit。 | 新規 check なので、通常の「前ラウンドとの差分」と同じ扱いにはしない。 |
| detector graph | merge 開始・継続・split 終了を含む時空間 syndrome の制約。 | transition boundary を入れないと、measurement error が parity 反転に見えない。 |
| \(\operatorname{obsFlip}(\widehat E)\) | decoder が推定した error chain が \(ZZ\) observable と交差するかを表す bit。 | observable support を detector model に明示する。 |
| \(d_m\) | merge layout として syndrome を測るラウンド数。 | fault-tolerant にするなら通常 \(d_m\) は code distance と同程度に取る。 |
procedure SMOOTH_MERGE_MZZ(A, B, R, d):
prepare seam data R in |+>
enable merged-layout Z-type seam checks
for round in 1..d:
measure merged stabilizers
append outcomes to detector record
raw = xor(first-round seam Z-check outcomes)
e_hat = decode(detector record, observable=O_ZZ)
m_zz = raw xor observable_flip(e_hat, O_ZZ)
return s = (-1)^m_zz
「1個の smooth merge」と言っても、fault-tolerant operation としては1回の check 測定ではない。 空間方向の seam 長、時間方向の測定ラウンド数、hook error の向きまで含めて初めて操作距離が決まる。
9. 具体例
例1: \(\ket{0}\ket{0}\)
\(\bar Z_A\bar Z_B=+1\) が確定しているので、smooth merge outcome は理想的には \(s=+1\)。 測定 back-action はあるが、すでに eigenstate なので論理状態は変わらない。
例2: \(\ket{0}\ket{1}\)
\(\bar Z_A=+1,\bar Z_B=-1\) なので \(\bar Z_A\bar Z_B=-1\)。 outcome は理想的には \(s=-1\) である。
例3: \(\ket{+}\ket{+}\)
\[ \ket{+}\ket{+} =\frac{\ket{00}+\ket{01}+\ket{10}+\ket{11}}{2}. \] \(s=+1\) なら \((\ket{00}+\ket{11})/\sqrt2\)、\(s=-1\) なら \((\ket{01}+\ket{10})/\sqrt2\) に射影される。
例4: \(\alpha\ket{00}+\beta\ket{11}\)
すでに even \(ZZ\) sector にいるため、outcome は \(s=+1\)。 \(\alpha,\beta\) の coherence は parity 測定では壊れない。
10. 誤解しやすい点
| 誤解 | 正しい見方 |
|---|---|
| smooth merge は \(\bar Z_A\) と \(\bar Z_B\) を別々に測る。 | 測るのは積 \(\bar Z_A\bar Z_B\) だけ。個別値は区別しない。 |
| \(\ket{+}\) を準備するから \(X\) 測定である。 | \(\ket{+}\) 準備は seam data の初期化。論理 observable は \(Z\)-type seam check product で決まる。 |
| merge はユニタリゲートである。 | merge は outcome を持つ測定付き code deformation。merge だけなら論理自由度も \(2\to1\) に減る。 |
| 最初の raw seam product をそのまま使えばよい。 | fault-tolerant な outcome は decoder correction を含む \(m_{ZZ}^{\rm decoded}\)。 |
| rough/smooth 名だけで実装仕様として十分。 | 文献依存の呼び方があるため、seam check type、初期化 basis、split basis、logical observable を書く。 |
11. 実装チェック
- 名前
smooth mergeだけでなくM_ZZまたはmeasure ZZと書く。 - 物理seam data を \(\ket{+}\) に準備し、\(Z\)-type seam checks を有効化する。
- 出力raw seam product ではなく、decoder correction を含む \(m_{ZZ}^{\rm decoded}\) を使う。
- split2 patch に戻すなら seam data は \(X\) basis で測る。
- frame\(s=-1\) の扱いは物理 correction ではなく Pauli frame / observable sign convention に入れる。
- 距離seam 長、測定ラウンド数、hook error schedule が目的の操作距離を落としていないか確認する。
- 記録merge 開始、first seam product、継続ラウンド、split terminal measurements を detector model に入れる。
関連する既存ノート
- 表面符号の lattice surgery:merge/split、decoder observable、CNOT まで含む本編。
- lattice surgery 具体例集:\(XX\), \(ZZ\), split, Pauli frame の具体例。
- lattice surgery 演習問題と解答:rough/smooth convention の確認問題。
参考文献
- Dominic Horsman, Austin G. Fowler, Simon Devitt, Rodney Van Meter, “Surface code quantum computing by lattice surgery,” New Journal of Physics 14, 123011 (2012). arXiv:1111.4022.
- Daniel Litinski, “A Game of Surface Codes: Large-Scale Quantum Computing with Lattice Surgery,” Quantum 3, 128 (2019). Quantum journal page.
- Austin G. Fowler, Craig Gidney, “Low overhead quantum computation using lattice surgery,” arXiv:1808.06709.
- Niel de Beaudrap, Ross Duncan, Dominic Horsman, Simon Perdrix, “The ZX calculus is a language for surface code lattice surgery,” Quantum 4, 218 (2020). Quantum journal page.