【要旨】これまでに、Surface codeに関して2つの記事を書き(こちらとこちら)、本方式の概要を把握した。今回は、そのための量子回路がどんなものかを調べた。一つの論理量子ビットを構成する最小のSurface code (3x3レイアウト)の場合であっても、必要な物理量子ビット(今後は単に量子ビットと呼ぶ)の個数は意外に多く、符号空間へのエンコード、誤り検出(シンドローム測定)、デコード・誤り訂正から成る量子回路全体は深いものになる。誤りを訂正できる論理ビットのハードウェア実装の難しさが見えてくる。(最後の節「ここで湧く疑問...」は重要と思います!)
🟢シンドロームを算出するための量子回路
最初に、stabilizerの測定回路を見てみよう。Surface code 3x3において、量子ビットq5にX誤り(bit-flip)が起こった場合を示す。Fig.1の右側に、使われるstabilizer 8個を示した。左側の図の通り、これのうち、A1とA4の測定値(固有値)はマイナス(-)であり、他のstabilizerは全てプラス(+)を与える。
これらのstabilizers を測定するための量子回路をFig.2に示す。例えば、左端の区画にあるA1は、一つのancillaビットa0を利用している。4つのCNOTを経た後に、a0の測定値がmであるならば、A1の固有値は(-1)mであることから、この値がFig.1に示すシンドロームを対応する。他のstabilizerも同様である。Fig.2はZ型stabilizer、Fig.3はX型のstabilizerの測定回路である。各stabilizer毎にancillaビットが必要なので、合計8個となる。
🟢エンコードのための量子回路
上に述べたstabilizersを稼働させるためには、適切な符号空間を設定する必要がある。そのための論理基底の選択には自由度があるが、標準的に使われるのは以下のものである。
4|0L⟩ =
|000000000⟩+ |110000000⟩+ |101011000⟩+ |011011000⟩+
|000110110⟩+ |110110110⟩+ |101101110⟩+ |011101110⟩+
|000110101⟩+ |110110101⟩+ |101101101⟩+ |011101101⟩+
|000000011⟩+ |110000011⟩+ |101011011⟩+ |011011011⟩
4|1L⟩ =
|100100100⟩+ |010100100⟩+ |001111100⟩+ |111111100⟩+
|100010010⟩+ |010010010⟩+ |001001010⟩+ |111001010⟩+
|100010001⟩+ |010010001⟩+ |001001001⟩+ |111001001⟩+
|100100111⟩+ |010100111⟩+ |001111111⟩+ |111111111⟩
すなわち、(エラーが無いように保護したい)量子ビットq1の状態を|ψ⟩とすると、これをこの符号空間へエンコードして得られる状態|ψL⟩に対して、Fig.2とFig.3に示したstabilizerが働くのである。
このためのエンコード量子回路は、Fig.4に示すものである。
🟢Surface code全体の量子回路
Fig.4のencode回路の後に、Fig.2、Fig.3に述べたstabilizers測定が来る。その結果がシンドロームを与える。これらを含めた、Surface code全体の量子回路はFig.5 (a) (b) (c)である。
Fig.5(a)の先頭(左端)で、先頭の量子ビットq1の初期状態|0⟩に対して、2つの回転ゲートRy(1.98)とRz(0.7)を施して状態を変えている。これが、保護したいq1の状態である。これを上記に述べたencodeを施し、その後に、デモとして、Xエラーをq5に起こしている。
これで誤り訂正は完了なのであるが、Fig.5(c)で、この誤り訂正が正しく行われたことを確認している。すなわち、q1に逆回転ゲートRz(-0.7)とRy(-1.98)を施して、初期状態|0⟩に戻ることを確認している。q1を測定している。
これまで検討してきたSurface codeによるエラー訂正技術は、理論的にも美しく、実用面でも期待が高いと思います。しかし、これは、「エンコード、スタビライザーの測定、error訂正などの量子回路にはエラーがなく、正常に作動するという前提」で、誤りのない論理量子ビットを構成しようする、と思っていました。













