超高密度符号化と量子テレポーテーション
はじめに
「みんなの量子コンピュータ」を読んでいて、超高密度符号化(superdense coding)と量子テレポーテーションの関係について面白いと思ったので書きたいと思います。
間違いがありましたらコメントお願いします。
- 作者:Chris Bernhardt
- 出版社/メーカー: 翔泳社
- 発売日: 2020/01/24
- メディア: 単行本(ソフトカバー)
超高密度符号化と量子テレポーテーションのどちらも概念は似ていて、
- もつれた状態(ベル状態)の2つの量子ビットを用意
- そのうち一つをAlice、もう一つをBobに渡す
- Aliceはある操作(符号化)を行い、情報をBobに送る
- BobはAliceから受け取った情報を復号化することで情報を受信
の流れで情報の送信を行います。
下の画像のように、超高密度符号化は古典情報を量子情報へ符号化することで、効率良く古典情報を送信することができ、
一方、量子テレポーテーションは無限の状態を取りうる量子状態を少ない古典情報で送信することができます。
それぞれ、詳しく見ていきます。
超高密度符号化(superdense coding)とは
もつれ状態にある量子ビットを1つずつ共有したAliceとBobとの間で、1量子ビットを送信することで、古典的な2ビットの情報を送信できる方法です。
つまり、AliceがBobに古典的な2ビットの情報00,01,10,11のうち1つを送信する場合、1量子ビット送信することで情報を伝達できます。
例えば、AliceがBobにを送信すると、Bobは測定することで、確率 で、確率 でを得ます。これでは、ボブは1ビット分の情報しか得ることができません。
そこで、Bobは2ビットの情報を取得するために、Aliceから受け取った量子ビットと自分が持っていた量子ビットの2つを測定します。
BobはAliceがどの情報を送信したいのか知らないため、どの情報に対しても同じ測定しかすることができません。
そのため、Aliceは送信したい情報をBobが測定したときに得られるように、Aliceは自分の量子ビットに操作を加えてからBobに量子ビットを送信します。
送信したい情報と量子ビットの操作は下記のようになっています。
送信したい情報 | 量子ビットの操作 |
---|---|
00 | I |
01 | X |
10 | Z |
11 | ZX |
それでは、IBM Quantum Experienceで確かめてみます。
q[0]をAliceの量子ビット、q[1]をBobの量子ビットとします。
00を送信する場合
HゲートとCNOTゲートでベル状態を作り、Aliceは何もせずそのままBobに送信し、Bobは逆ベル測定を行います。
すると、状態ベクトルのグラフにあるように00の情報を得ることができます。
確率を得るには、状態ベクトルの値を2乗することで得られます。
01を送信する場合
同様にベル状態を作り、AliceはXゲートの操作を行ってからBobに送信します、Bobは逆ベル測定を行います。
すると、グラフにあるように01の情報を得ることができます。 IBM Quantum Experienceの結果は桁ラベルの順序が逆になっているので注意してください。
10を送信する場合
AliceはZゲートの操作を行ってからBobに送信します。
グラフにあるように10の情報を得ることができます。
11を送信する場合
AliceはXゲートとZゲートの操作を行ってからBobに送信します。
グラフにあるように11の情報を得ることができます。
いずれの場合でもBobはAliceが送信したい情報を受信することができることを確認できました。
量子テレポーテーションとは
もつれ状態にある量子ビットを1つずつ共有したAliceとBobとの間で、もつれ状態の量子ビットは別にAliceが持っているが、状態の分からない量子状態を、2つの古典ビットを送信することでBobの持っている量子ビットの量子状態をにすることです。
テレポートするのは量子状態です。テレポーテーションという名前がついていますが、粒子は瞬間移動せず、情報は光速よりも速く伝達しないです。
2つの古典ビットを使用して、無限のパターンを取りうるとの1つを送信できるのは面白いですね。
量子テレポーテーションのプロセスを見ていきます。
Aliceが送信したい量子状態の情報を得るため、逆ベル測定を行いもつれ状態を作ります。を行います。(上図の1番目と2番目の行)
3つの量子ビットがあり、初期状態は
であり、次のように書けます。
Aliceが自分の量子ビットを操作するため、わかりやすく書き直します。
Aliceの量子ビットに逆ベル測定を適用します。まずCNOTゲートを適応すると
となり、1番目の行へ操作がわかりやすいように書き直すと、
となり、Hゲートを適用すると
となり、式を整理すると、
となりました。 Aliceがとの基底で自分の2つの量子ビットの測定を行うと、のうちのどれか1つを1/4の確率で得ます。また、Aliceが測定することで、Bobの量子ビットは4種類にジャンプします。しかし、Bobの量子状態をにするのが目的でした。そこで、Aliceが測定した結果に対応する2つの古典ビットをBobに送信します。Bobは受信した情報をもとに、自分の量子ビットに操作を適用します。
受信した情報 | 量子ビットの操作 |
---|---|
00 | I |
01 | X |
10 | Z |
11 | ZX |
この操作を適用することで、Bobの量子ビットは最終的にAliceがテレポートしたい量子ビットの状態であるになります。
この一連のプロセスでにある量子ビットは1つだけで、量子状態の複製が不能なことからAliceかBobのどちらか一方だけが持つことができます。また、面白いことに情報に対応する量子ビットの操作が超高密度符号化と量子テレポーテーションで一致しています。(表を見比べてください)
それでは、IBM Quantum Experienceで確かめてみます。 q[0]、q[1]をAliceの量子ビット、q[2]をBobの量子ビットとします。
の量子テレポーテーション
量子テレポーテーションの回路は次のようになります。
1番目のbarrier(縦の点線)の右側でベル測定でもつれ状態を生成しています。2番目のbarrierの右側で逆ベル測定を行い、テレポートした量子ビットともつれさせます。3番目のbarrierの右側で、Aliceの量子ビットq[0]、q[1]に対応したBobの量子ビットへの操作を行うためCNOTゲートとCZゲートを加えます。
送信したい量子状態は1番目のbarrierの左側でq[0]に用意します。
上の回路ではq[0]はであるため、最終的にq[2]はになります。
グラフのラベルがの順で並んでいることに注意して、結果を確認すると、どれもが0となっており量子テレポーテーションできていることが確認できます。下2桁はAliceの量子ビットの状態ベクトルを表しており、となっています。
の量子テレポーテーション
次はをテレポートしてみます。
barrierの左側でq[0]にXゲートの操作を行いを用意します。
結果をみると、どれもが1となっており量子テレポーテーションできていることが確認できます。
の量子テレポーテーション
barrierの左側でq[0]にHゲートの操作を行い を用意します。
結果をみると、が1/2の確率でとなっていることが確認できます。グラフは状態ベクトルの係数を表すので、確率は2乗することで得られることに注意してください。
最後に
超高密度符号化と量子テレポーテーションの関係のおもしろさについて書いてみました。