ラベル Surface code の投稿を表示しています。 すべての投稿を表示
ラベル Surface code の投稿を表示しています。 すべての投稿を表示

2026年10月31日土曜日

Stabilizerによる量子誤り訂正を理解するためのアプリ

【要旨】量子誤り訂正の一例として、先の記事で9-qubit Shor codeについて述べた。このShor符号を含む多くの量子誤り訂正符号を、統一的に記述する枠組みがStabilizer(スタビライザー)形式である。Rotated Surface符号も、この枠組みに基づいている。今回、エラーと、それによって生じるシンドロームの関係を操作しながら確認し、Stabilizerによる量子誤り訂正への理解を深めるためのモバイルアプリを開発した。

🟢Stabilizerに基づくRotated Surface Codeの概要
 数学のアーベル群(可換群)の構造に基づく、Stabilizer群と呼ばれるものを導入する。その生成元であるstabilizerは、いくつかのパウリ演算子XおよびZの積である。そのいずれのstabilizer Sも、ある符号空間(複数の量子ビットのテンソル積で作られるある空間)のどの量子状態|ψ⟩に対しても、その測定値(固有値)が+1になるように作られている。すなわち、以下を満たす。

S|ψ⟩ = |ψ⟩

 そして、一般の量子誤りは、パウリ演算子X、Z、Y(=XとZの積)、およびそれらの線型結合が、意図せずに作動した結果と同等とみなされる。どの2つのstabilizerも互いに可換であるが、量子誤りを起こす演算Eは、いずれかのstabilizerと非可換となるように、stabilizer群が設計されている。それゆえ、エラーが起こった量子状態に、Eと非可換となったstabilizer Seを作用させると、(詳細は略すが)その測定値(固有値)は-1に変わる。すなわち、以下のようになる。

E|ψ⟩ = |ψerror⟩
Se|ψerror⟩ = - |ψerror⟩

🟢エラー シンドローム(Error Syndromes)
 上記に述べたように、いくつかのstabilizerが、エラー状態に作用した際に、その測定値(固有値)の符号がマイナス(-)に変化することを利用して、エラーの種類とエラー発生元を特定する。そのような符号の変化を計算したもの(Table 1参照)をError Sydromeと呼ぶ。

Table 1 Error Syndrome measurements
 量子ビット数25のこの例では、表の横軸に、エラー検出のために、2種の合計24個のstabilizerが置かれており、行単位で見て、その行のいくつかが、本来の+(+1)から-(-1)に変化していることで、エラーの発生を知る。そのエラーの種類と位置の特定については、以下に述べる。

🟢Rotated Surface Codeに親しむためのモバイルアプリ
 この仕組みを理解するには、いくつかの例について、手計算で確認するのが良いだろう。その計算が正しいかどうかを見るために、また、これに親しむためにも、Fig.1に示すアプリを開発したことは意味があるだろう。スマホを片手に、理解を深めることができるのである。その具体的な操作例は次の節で述べる。
Fig.1 Mobile app demonstrating rotated surface code

 このアプリでは、左側の図では、3x3=9量子ビット、または5x5=25量子ビットを選び、エラーを起こす量子ビットとエラータイプを指定する。測定結果から得られるシンドロームがその下に図示される。右側の図には、そのシンドローム関する補足情報が表示される。

🟢Rotated Surface Codeの動作例
 このスマホアプリを使って、エラー検出の一例を見てみます。Fig.2は、25個の量子ビットを平面に5x5の形に配置している。丸印が量子ビット(データ)であり、その間に、エラーを検出するためのstabilizerが合計24個配置されている。A1〜A12はZ型エラー、B1〜B12はX型エラー検出のためである。
 ここで特筆すべきは、どのstabilizerも近接の2個、または4個量子ビットだけにアクセスしていることである。対象データとしての量子ビット数がこれ以上増えてそれは変わらない。これは、大規模量子ビットシステムの検査に非常に有利に働くことは明らかであろう。

Fig.2 Deployment of qubits and the stabilizers

 さて、この回路を動かして、stabilazerを測定した結果、Fig.3のようになったする。すなわち、4つのstabilizer A3, A5, B3, B5が符号"-"を与えている。この結果を、Table 1のError Sydromeで調べると、そのエラーはY型で(すなわち、ビット反転と位相反転が同時におこり)、それは量子ビットq12で発生したことが分かる!それが分かれば(ここでは略すが)q12を訂正することができる。
Fig.3 Detecting errors (both bit-flip & phase-flip) on a qubit

🟢シンドローム計算の詳細
 上記で、測定結果"-"を与えたstabilizerの具体的な演算構成は以下の通りである。演算子X, Zの添え字は、それが作用する量子ビット番号を示している。なお、念の為であるが、A3は次のようなテンソル積であるが、以後、省略形を使っている。"I" は、恒等演算子である。
A3 = I⊗I⊗I⊗I⊗I⊗I⊗Z⊗Z⊗I⊗I⊗I⊗Z⊗Z⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I

    A3 = Z7 Z8 Z12 Z13
    A5 = Z11 Z12 Z16 Z17
    B3 = X6 X7 X11 X12
    B5 = X12 X13 X17 X18

 このうち、A3をq12へのパウリYによるエラー発生状態に作用させる計算を詳しく見てみよう。ポイントは、以下の2項である。

(a)同一の量子ビットに対しては、 ZY = -YZ, XY = -YX
(b)異なる量子ビットに作用する演算同士は可換。

 正常状態を|ψ⟩とする。q12へのパウリY(=Y12)による誤り状態を|ψerror⟩とすると、|ψerror⟩ = Y12|ψ⟩である。
 
A3 Y12 
= Z7 Z8 Z12 Z13Y12
= Z7 Z8 Z12 Y12Z13     ---------- (b)による
= - Z7 Z8Y12 Z12 Z13    ---------- (a)による
= - Y12Z7 Z8 Z12 Z13    ---------- (b)による
= - Y12 A3 
 ここで、エラー状態|ψerror⟩にA3を作用させると、
A3 |ψerror⟩ 
= A3 Y12|ψ⟩ 
= - Y12 A3|ψ⟩
= - Y12|ψ⟩   ---------- A3はstabilizer生成元のため
= - |ψerror⟩  ---------- A3の測定値 "-1"が得られた!