ラベル Bell回路 の投稿を表示しています。 すべての投稿を表示
ラベル Bell回路 の投稿を表示しています。 すべての投稿を表示

2022年12月2日金曜日

超高密度符号化と量子テレポーテーション(その3)

【要旨】前報(その1)(その2)に引き続き、本報では量子テレポーテーションについて纏めた。"量子テレポーテーション"という言葉は、宇宙SF映画Star Trekなどで有名になった"瞬間移動"を想起させるが、真の意味はどうなのか?数年前には、実際に数十キロ離れた量子(光子)間でこれが実験で確認されたとの報道もあった。ここでは、Prof. Chris Bernhardt著[1]に書かれている量子の数学モデルを当方が理解し、それを量子シミュレータで確認した結果を説明したい。

量子テレポーテーションとは何か
 これを図1の例で説明する。AliceとBobはそれぞれ1量子ビットを持っており、それらは量子もつれ状態(entangled)にある。さらにAliceは別のもう一つの量子を持っている。その量子状態はAliceもBob知らない。Bobは量子もつれ状態を保ったまま、遠方へ行ってしまった。その状況で、Aliceはこの別の量子の状態を、遠く離れたBobの量子の状態として設定したい。それは、量子もつれの効果により(あたかも光速を超えるかのように)瞬時に実現される。これが量子テレポーテーションである。
 ここで、注目すべき点がいくつかある。まず、この実現は、Aliceの量子をコピーして送信したのではない。実際、量子(の状態)の複製は、量子複製不可能定理(No Cloning Theorem)によりで不可能である。この定理は数学的には簡単に証明できる。つまり、複製ではなく、状態の即時転送であり、元のAliceの量子は破壊され、もはや存在しない。だが、実はBobはその転送結果を知るには、Aliceからの古典的通信による情報を別途受ける必要がある。従って、量子テレポーテーションは、実質的には古典的通信の速度で抑えられてしまうのである。以下において、それを詳しく述べる。

量子テレポーテーションの仕組み
 上記例に基づく量子テレポーションの仕組みを図2(a)に示した。図の長い縦青線の左側で初期設定を行う。Aliceの量子ビット(上から2番目)とBobの量子ビット(上から3番目)は、Bell回路によって量子もつれ状態に設定されている。Aliceの「別の量子(上から1番目)」は任意の状態で良いのだが、ここでは、「RY(π/3)」ゲートを通して設定した。
 次に、Aliceは自分の2つの量子に逆Bell回路を作用させる。その結果、3つの量子の状態は、(計算過程は略すが)図の右下枠内のような計算式になる。4項の加算になっているが、Bobの持つ量子については、(テンソル積⊗の右側に示すとおり)以下の状態がそれぞれ等しく1/4の確率で発生することが分かる:
aǀ0⟩+bǀ1⟩, aǀ1⟩+bǀ0⟩, aǀ0⟩-bǀ1⟩, aǀ1⟩-bǀ0⟩
 従って、このままでは、Bobは自分の量子の状態がこのうちのどれなのかを判断できない。そこで、Aliceが自身の2量子ビットを測定した結果(古典2ビット情報:00, 01, 10, 11)を古典的通信で送ってもらう必要がある。その受信結果に従って、Bobはある量子ゲート[?]を選定し、その作用の結果を測定することになる。

量子テレポーテーションにおいて必要な古典通信
 上記に示した、Bobが選定すべき量子ゲート[?]は何かを示したのが図2(b)である。Aliceから受信した結果の"00", "01", "10", "11"に対応して、それぞれ、I, +(X), Z, Yゲートを選定する。それを作用させると、素晴らしい結果が得られる!どのケースでも、Bobは、自分の量子状態が、Aliceが元々持っていた量子の状態そのもになることが分かる!これが量子テレポーテーションの結果なのである!

超高密度符号化(Superdense Coding)との関係
 本報の前に(その2)で、超高密度符号化を取り上げた。以下のように、これと量子テレポーテーションとの関係は興味深い。
 すなわち、超高密度符号化では、Aliceは古典2ビット情報をBobへ伝えるために、1つの量子ビットを送った。一方、今回の量子テレポーテーションでは、Aliceは1つの量子ビットをBobへテレポートするために古典2ビット情報を送信した。
 さらに、超高密度符号化では、Aliceは4つのPauliゲートを用いてエンコードを行い、Bobは逆Bell回路を持ちいてそれをデコードした。量子テレポーテーションでは、逆に、Aliceが逆Bell回路でエンコードを行い、BobはPauliゲートを用いてそれをデコードしたのである!

 今回の記事も、参考文献[1]第7章後半の内容を当方の理解に基づいて纏めたものである。また、量子シミュレータ[2]を利用して量子回路動作を確認できた。

References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 
https://www.chrisbernhardt.info/

[2] Qni; https://github.com/qniapp/qni


2022年12月1日木曜日

超高密度符号化と量子テレポーテーション(その2)

【要旨】前回の(その1)での準備をもとに、本報では超高密度符号化(Superdense Coding)について述べる。極く簡単に言うならば、量子コンピューティングの世界において、Aliceが古典2ビットの情報(00, 01, 10, 11のどれでも)をBobへ送りたい場合、Aliceの持っている一つの量子ビット(電子など)を送るだけで済むという仕組みである。一見、話は簡単そうに見えるかもしれないが、そこには基本量子ゲートとBell回路と逆ベル回路が美しく簡潔に組み合わされている。だが、その仕組みの要点は、前回(その1)で述べた内容に尽きるのである。

続編の量子テレポーテーション(その3)はこちら

超高密度符号化の問題設定
 この問題設定の例を図1に示す。AliceとBobはそれぞれ1量子ビットを持っている。それら2つは、図に示したような「量子もつれ状態(entangled)」にあるとする。Bobは、この量子もつれ状態を保持したまま、自分の量子を持って遠くへ出掛けてしまった。(現実には遠隔の量子もつれは破壊されやすいのだが、量子の測定を行なわない限り理論的に保持されると仮定する。)ここで、Aliceは、古典2ビットの情報(00, 01, 10, 11のどれでも)をBobへ送りたい。
何が問題なのか?
 AliceがBobへ送ることができるのは、自分の持つ1つの量子ビットだけである。それをBobが受け取った場合、Bobがその情報を得るには測定するしかないが、そうすると量子もつれは無くなり、測定結果は |0⟩か|1⟩のどちらかになる。いずれの場合も、Aliceが送る前の量子状態は壊れてしまうので、Aliceは何を送ったのかをBobは判定できない。さらに問題なのは、この方法では、Aliceは1個の古典ビット(0 or 1)しか送れない。

Bell基底ベクトルと逆ベル回路を利用する発想
 これを解決する素晴らしい発想がある!!!
 Aliceは、初期設定後の自分の量子ビットをそのまま送信せずに、まず、ある量子ゲートを作用させる。その際、測定は行わないので、もつれ状態は保持され、Bobの持つ量子ビットに影響はない。図2の上部に示すその量子ゲート「?」を以下のように決める。
 すなわち、送りたい古典ビット列が "00"ならば「I」ゲート(何もしない)、"10"ならば「+」(Pauli X)ゲート、"01"ならば「Z」ゲート、"11"ならば「Y」ゲートとする。これらのゲートを、初期設定後のもつれ状態に作用させると、それぞれの結果はBell基底の各ベクトルになる!これをBobへ送る。そこがポイントである。Bell基底とは、Bell( |00⟩), Bell( |01⟩), Bell( |10⟩), Bell( |11⟩)の作用結果として得られるentangledな状態ベクトルのセットである。

 ここまでくると、あとは(その1)の記事に書いた通り、Bobは、逆Bell回路を作用させればよい。それによって、Bobは、Aliceが送ったのと同じ古典2ビット情報を得る。図2に示す通りである。ここで注目すべきは、Aliceが送る古典2ビット情報が何であれ、Bobは決まったやり方、すなわち、逆Bell回路を適応するだけでよいのである。なんと美しい解法ではないか!

 今回の記事も、参考文献[1]第7章後半の内容を当方の理解に基づいて纏めたものである。また、量子シミュレータ[2]を利用して量子回路動作を確認できた。

References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 
https://www.chrisbernhardt.info/

[2] Qni; https://github.com/qniapp/qni

2022年11月28日月曜日

超高密度符号化と量子テレポーテーション(その1)

【要旨】超高密度符号化と量子テレポーションに関して、Prof. Chris Bernhardt著[1]第7章をどのように学んだかをメモしておきたい。安易にツールや可視化に頼らずに、紙と鉛筆だけを用いて考えながら取り組むことに徹してきた。そして、今や機は熟した。ツール等で知識を確認する段階に達した。こういう手順を踏む方が「分かった喜び」が大きいことを実感した。本報(その1)では、幾つかの基本量子回路の作用を量子シミュレータQni[2]を利用しながら確認した。

単一量子ビットに対するXゲートとHゲートの適用
 量子ゲートのうち、単一量子ビットに作用させるPauli X(NOT)ゲートとHadamard(アダマール)ゲートは特に重要だ。図1に示すとおり、これらの作用を量子シミュレータQniで確認した。Xゲートは、量子状態ベクトルをX軸を回転中心としてπだけ回転させる。また、Hゲートは、X軸とZ軸間のπ/4の傾きの軸を中心としてπだけ回転させる。これらによる量子状態ベクトルの確率振幅θと位相φの変化を確認できる。Hゲートの作用として、|0〉と|1〉との重ね合わせ状態(superposition)が作られることが極めて重要である。
 図中に、自作の透明ブロッホ球を示しているが、これを手に取りながら、シミュレータの結果を確認できたのはとても良かったと思う。

2つの量子ビットの状態における量子ゲートの作用
 2つの量子ビットの場合、それがなす状態(2つの状態ベクトルのテンソル積)は、4つのケットベクトル |00〉、|01〉、|10〉、|11〉 の線形結合で表わされる。図2に、2番目の量子ビットq1にのみHゲートを作用させた結果を示した。この場合は、共に (1/√2 = 0.707) の2乗の確率(0.5)で |00〉、または |10〉 となることが確認できた。

Bell回路とReverse Bell回路
 次に、本報の続編で述べる「超高密度符号化」と「量子テレポーション」で必要となるBell回路とその逆作用となるReverse Bell回路を示す。図3に示すとおり、Bell回路は2つの量子ビットのち最初の量子ビットにまずHゲートを作用させ、続けて2番目の量子ビットにCNOT(制御付きNOT)を作用させるものだ。結果として、両量子ビットは「もつれた状態(Entangled)」となることが重要な点である。そして、両量子ビットの状態は、それぞれ50%の確率で |00〉 または |11〉 となる。これ以外の状態にはならない。すなわち、両量子ビットに相関関係が生じていることが分かる。
 この状態にさらにReverse Bell回路を作用させたのが図4である。Bell回路は自分自身が可逆回路である。従って、入力される2量子が4つの状態のいずれであっても、最終的に最初の状態に戻っている。図4には、Bell回路を作用させた後(Entangledの状態)と、さらにReverse Bell回路を作用させた後の状態(Unentangledの状態)を示しているので、このことが確認できるであろう。(なお、回路の適用結果では、量子ビットの並び順が最初の量子状態での量子ビット並びと逆順になっている。)
References
[1] Chris Bernhardt, “Quantum Computing for Everyone”, MIT Press, 2020 
https://www.chrisbernhardt.info/
[2] Qni; https://github.com/qniapp/qni