2022年12月4日日曜日

量子テレポーテーションを利用した量子ビットのエラー訂正

【要旨】量子ビットは環境とのインタラクションによって壊れやすい性質があるので、量子コンピューティングおいてエラー訂正は非常に重要である。エラーの種類は様々だが、ここでは、量子ビットの誤反転の訂正(Quantum Bit-Flip Correction)を考える。その方法は、古典ビットにおいて広く利用されているパリティチェックに基づく。だが、それを量子ビットへ拡張するには、量子ビットの複製を作成できないことや、量子ビットの測定によりその状態は消滅するなどの問題がある。参考文献[1]には、量子テレポーテーションを利用してそれらを解決する素晴らしい発想が示されている。

従来の古典ビットのエラー訂正(パリティチェック)
 まず、古典ビットのエラー訂正の簡単だが有効な方法を復習する。例えば、1ビット情報(0 or 1)を送信する場合、それらの複製を作って合計3ビットを送る。つまり、000か111が送られる。エラーの発生は稀であり、発生したとしても3ビットのうち高々1ビットだけと仮定する。これは現実的な想定である。そうすると、受信側で受け取った3ビットb0b1b2が、例えば、101の場合は111に、001の場合は000に訂正されることになる。一般的には以下のようにすればよい。
    b0⊕b1とb0⊕b2が、
    00ならば、訂正なし。
    01ならば、b2を反転させる。
    10ならば、b1を反転させる。
    11ならば、b0を反転させる。

量子ビットのエラー訂正(パリティチェックの拡張)
 ここで扱うエラーは、量子ビットの誤反転である。すなわち、量子の本来の状態 a|0⟩+b|1⟩が何らかの理由でa|1⟩+b|0⟩に変化したエラーを検出し、それを訂正したい。そのために、上記の考え方を量子ビットに拡張するのだが課題がある。第一に、量子ビット(qubit)の複製は一般に不可能(量子複製不可能定理)である。第二に、量子の測定(情報の確認)を行えばその時点で量子状態は失われてしまう。しかし、それらを回避して量子テレポーテーションを利用する(qubitを載せる量子を実際には送信せずにその状態を瞬時に転送する)素晴らしい解法がある!
 まず図1に示すように、Aliceは送信したいqubit a|0⟩+b|1⟩とそのコピー2個に相当するものを作成する。実際には、複写するのではなく、2個のancilla用のqubitを用意し、それらにCNOTを作用させる。その結果として、3qubitsの量子もつれ状態a|000⟩+b|111⟩が作られる。実質的に送信したいqubitのfan-outを作ったことになる。ここでは、送信するqubitの状態を、一例として、量子ゲートRY[π/3]を用いて設定した。
 次に、受信するBob側の量子回路である。詳細は図2をご覧いただきたいが、新たに2個のqubitsを下部に追加した。送信されてきた3個のqubitsの1番目と2番目のパリティと、1番目と3番目のパリティを計算するためである。これらの結果を見れば、前節「古典ビットのエラー訂正」の説明通りに、どのqubitにエラーがあるか、そしてどう訂正すれば良いかが分かるのである。ここで注目すべきは、これらの2個のパリティ用qubitはいずれも、本来の3個の量子ビットとは「もつれた状態にはない」ことである。つまり、これらのパリティ用qubitsを測定して結果を見ても、上部の3個の量子ビットのもつれ状態には何ら影響を与えない。

量子シミュレータによる現象の確認
 以上のエラー訂正の動作を完全に実現することは難しいが、本質的な動きは量子回路シミュレータQni[2]で確認できる。送信された3個のqubitsにエラーが無かった場合を図3(1)に、3番目のqubitにエラーを発生させた場合と、それを検知して訂正した様子をそれぞれ、図3(2)と図3(3)に示した。「古典ビットのエラー訂正」のところで述べたとおり、ここでのパリティ計算結果の01は、上から3番目のqubitにエラーがあることを示している。従って、そのqubitの置かれているwireにPauli Xゲートを作用させればその状態が反転して、エラーが訂正できたことを示している。
感想
 参考文献[1]の著者Prof. Chris Bernhardtは、その第7章の最後で、"We have seen some surprising things we can do with just a few quantum gates."と述べている。まさにその通りであった。古典ビットの世界にはない驚異の発想の存在を知り、それを理解することができ、実際に量子回路シミュレータで(そしてQuantum Computer実機でも)確かめることができたのである。まだまだ氷山の一角というものしか学んでいないが、今後さらにその奥深さを知ることになるだろう。

References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 
      https://www.chrisbernhardt.info/
[2] Qni; https://github.com/qniapp/qni

0 件のコメント:

コメントを投稿