進捗のようなもの

やったこと書きます

超高密度符号化と量子テレポーテーション

はじめに

「みんなの量子コンピュータ」を読んでいて、超高密度符号化(superdense coding)と量子テレポーテーションの関係について面白いと思ったので書きたいと思います。
間違いがありましたらコメントお願いします。

みんなの量子コンピュータ

みんなの量子コンピュータ

  • 作者:Chris Bernhardt
  • 出版社/メーカー: 翔泳社
  • 発売日: 2020/01/24
  • メディア: 単行本(ソフトカバー)

超高密度符号化と量子テレポーテーションのどちらも概念は似ていて、

  1. もつれた状態(ベル状態)の2つの量子ビットを用意
  2. そのうち一つをAlice、もう一つをBobに渡す
  3. Aliceはある操作(符号化)を行い、情報をBobに送る
  4. BobはAliceから受け取った情報を復号化することで情報を受信

の流れで情報の送信を行います。

下の画像のように、超高密度符号化は古典情報を量子情報へ符号化することで、効率良く古典情報を送信することができ、
一方、量子テレポーテーションは無限の状態を取りうる量子状態を少ない古典情報で送信することができます。

f:id:SJSY:20200203221606p:plain

それぞれ、詳しく見ていきます。


\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}

超高密度符号化(superdense coding)とは

もつれ状態 \frac{1}{\sqrt{2}} \ket{00}+\frac{1}{\sqrt{2}}  \ket{11}にある量子ビットを1つずつ共有したAliceとBobとの間で、1量子ビットを送信することで、古典的な2ビットの情報を送信できる方法です。
つまり、AliceがBobに古典的な2ビットの情報00,01,10,11のうち1つを送信する場合、1量子ビット送信することで情報を伝達できます。
例えば、AliceがBobに a_0 \ket{0}+a_1\ket{1}を送信すると、Bobは測定することで、確率{a_0}^2 \ket{0}、確率{a_1}^2 \ket{1}を得ます。これでは、ボブは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を送信する場合

f:id:SJSY:20200203232210p:plain

HゲートとCNOTゲートでベル状態を作り、Aliceは何もせずそのままBobに送信し、Bobは逆ベル測定を行います。

f:id:SJSY:20200203232524p:plain

すると、状態ベクトルのグラフにあるように00の情報を得ることができます。
確率を得るには、状態ベクトルの値を2乗することで得られます。

01を送信する場合

f:id:SJSY:20200203233708p:plain

同様にベル状態を作り、AliceはXゲートの操作を行ってからBobに送信します、Bobは逆ベル測定を行います。

f:id:SJSY:20200203234020p:plain

すると、グラフにあるように01の情報を得ることができます。 IBM Quantum Experienceの結果は桁ラベルの順序が逆になっているので注意してください。

10を送信する場合

f:id:SJSY:20200203234314p:plain

AliceはZゲートの操作を行ってからBobに送信します。

f:id:SJSY:20200203234415p:plain

グラフにあるように10の情報を得ることができます。

11を送信する場合

f:id:SJSY:20200203234538p:plain

AliceはXゲートとZゲートの操作を行ってからBobに送信します。

f:id:SJSY:20200203234534p:plain

グラフにあるように11の情報を得ることができます。

いずれの場合でもBobはAliceが送信したい情報を受信することができることを確認できました。

量子テレポーテーションとは

もつれ状態 \frac{1}{\sqrt{2}} \ket{00}+\frac{1}{\sqrt{2}}  \ket{11}にある量子ビットを1つずつ共有したAliceとBobとの間で、もつれ状態の量子ビットは別にAliceが持っているが、状態の分からない量子状態 a \ket{0}+b\ket{1}を、2つの古典ビットを送信することでBobの持っている量子ビットの量子状態を a \ket{0}+b\ket{1}にすることです。
テレポートするのは量子状態です。テレポーテーションという名前がついていますが、粒子は瞬間移動せず、情報は光速よりも速く伝達しないです。
2つの古典ビットを使用して、無限のパターンを取りうる a bの1つを送信できるのは面白いですね。

量子テレポーテーションのプロセスを見ていきます。 f:id:SJSY:20200209112133p:plain
Aliceが送信したい量子状態の情報を得るため、逆ベル測定を行いもつれ状態を作ります。を行います。(上図の1番目と2番目の行)
3つの量子ビットがあり、初期状態は

 \left( a \ket{0}+b\ket{1} \right)\otimes \left(\frac{1}{\sqrt{2}} \ket{00}+\frac{1}{\sqrt{2}}  \ket{11}\right)

であり、次のように書けます。

 \frac{a}{\sqrt{2}}  \ket{000} + \frac{a}{\sqrt{2}}  \ket{011} +\frac{b}{\sqrt{2}}  \ket{100} +\frac{b}{\sqrt{2}}  \ket{111}

Aliceが自分の量子ビットを操作するため、わかりやすく書き直します。

 \frac{a}{\sqrt{2}}  \ket{00}  \otimes \ket{0}  + \frac{a}{\sqrt{2}}  \ket{01} \otimes \ket{1} +\frac{b}{\sqrt{2}}  \ket{10} \otimes \ket{0} +\frac{b}{\sqrt{2}}  \ket{11} \otimes \ket{1}

Aliceの量子ビットに逆ベル測定を適用します。まずCNOTゲートを適応すると

 \frac{a}{\sqrt{2}}  \ket{00}  \otimes \ket{0}  + \frac{a}{\sqrt{2}}  \ket{01} \otimes \ket{1} +\frac{b}{\sqrt{2}}  \ket{11} \otimes \ket{0} +\frac{b}{\sqrt{2}}  \ket{10} \otimes \ket{1}


となり、1番目の行へ操作がわかりやすいように書き直すと、

 \frac{a}{\sqrt{2}}  \ket{0} \otimes \ket{0} \otimes \ket{0}  + \frac{a}{\sqrt{2}}  \ket{0} \otimes \ket{1}\otimes \ket{1} +\frac{b}{\sqrt{2}}  \ket{1} \otimes \ket{1} \otimes \ket{0} +\frac{b}{\sqrt{2}}  \ket{1}\otimes \ket{0} \otimes \ket{1}

となり、Hゲートを適用すると

 
\begin{aligned}
&\frac{a}{\sqrt{2}}  \left(\frac{1}{\sqrt{2}} \ket{0}+\frac{1}{\sqrt{2}}  \ket{1}\right) \otimes \ket{0} \otimes \ket{0}  \\
+ &\frac{a}{\sqrt{2}}  \left(\frac{1}{\sqrt{2}} \ket{0}+\frac{1}{\sqrt{2}}  \ket{1}\right) \otimes \ket{1}\otimes \ket{1} \\
+&\frac{b}{\sqrt{2}}  \left(\frac{1}{\sqrt{2}} \ket{0}-\frac{1}{\sqrt{2}}  \ket{1}\right) \otimes \ket{1} \otimes \ket{0} \\
+&\frac{b}{\sqrt{2}}  \left(\frac{1}{\sqrt{2}} \ket{0}-\frac{1}{\sqrt{2}}  \ket{1}\right)\otimes \ket{0} \otimes \ket{1} 
\end{aligned}

となり、式を整理すると、

 
\begin{aligned}
&\frac{1}{2}\ket{00} \otimes \left(a\ket{0}+b\ket{1}\right)  \\
+ &\frac{1}{2}\ket{01} \otimes \left(a\ket{1}+b\ket{0}\right)  \\
+&\frac{1}{2}\ket{10} \otimes \left(a\ket{0}-b\ket{1}\right)  \\
+&\frac{1}{2}\ket{11} \otimes \left(a\ket{1}-b\ket{0}\right)  
\end{aligned}

となりました。 Aliceが \ket{0} \ket{1}の基底で自分の2つの量子ビットの測定を行うと、 \ket{00},\ket{01},\ket{10},\ket{11}のうちのどれか1つを1/4の確率で得ます。また、Aliceが測定することで、Bobの量子ビットは4種類にジャンプします。しかし、Bobの量子状態を a\ket{0}+b\ket{1}にするのが目的でした。そこで、Aliceが測定した結果に対応する2つの古典ビットをBobに送信します。Bobは受信した情報をもとに、自分の量子ビットに操作を適用します。

受信した情報 量子ビットの操作
00 I
01 X
10 Z
11 ZX

この操作を適用することで、Bobの量子ビットは最終的にAliceがテレポートしたい量子ビットの状態である a\ket{0}+b\ket{1}になります。
この一連のプロセスで a\ket{0}+b\ket{1}にある量子ビットは1つだけで、量子状態の複製が不能なことからAliceかBobのどちらか一方だけが持つことができます。また、面白いことに情報に対応する量子ビットの操作が超高密度符号化と量子テレポーテーションで一致しています。(表を見比べてください)

それでは、IBM Quantum Experienceで確かめてみます。 q[0]、q[1]をAliceの量子ビット、q[2]をBobの量子ビットとします。

 \ket{0}量子テレポーテーション

量子テレポーテーションの回路は次のようになります。

f:id:SJSY:20200209123831p:plain

1番目のbarrier(縦の点線)の右側でベル測定でもつれ状態を生成しています。2番目のbarrierの右側で逆ベル測定を行い、テレポートした量子ビットともつれさせます。3番目のbarrierの右側で、Aliceの量子ビットq[0]、q[1]に対応したBobの量子ビットへの操作を行うためCNOTゲートとCZゲートを加えます。

送信したい量子状態は1番目のbarrierの左側でq[0]に用意します。
上の回路ではq[0]は \ket{0}であるため、最終的にq[2]は \ket{0}になります。

f:id:SJSY:20200209124123p:plain

グラフのラベルが q_2q_1q_0の順で並んでいることに注意して、結果を確認すると、どれも q_2が0となっており量子テレポーテーションできていることが確認できます。下2桁はAliceの量子ビット状態ベクトルを表しており、 1/2 =0.5となっています。

 \ket{1}量子テレポーテーション

次は \ket{1}をテレポートしてみます。

f:id:SJSY:20200209124550p:plain

barrierの左側でq[0]にXゲートの操作を行い \ket{1}を用意します。

f:id:SJSY:20200209124734p:plain

結果をみると、どれも q_2が1となっており量子テレポーテーションできていることが確認できます。

 \frac{1}{\sqrt{2}} \ket{0}+\frac{1}{\sqrt{2}}  \ket{1}量子テレポーテーション

f:id:SJSY:20200209125132p:plain

barrierの左側でq[0]にHゲートの操作を行い  \frac{1}{\sqrt{2}} \ket{0}+\frac{1}{\sqrt{2}}  \ket{1}を用意します。

f:id:SJSY:20200209125204p:plain

結果をみると、 q_2が1/2の確率で \ket{0},\ket{1}となっていることが確認できます。グラフは状態ベクトルの係数を表すので、確率は2乗することで得られることに注意してください。

最後に

超高密度符号化と量子テレポーテーションの関係のおもしろさについて書いてみました。