ラベル 量子テレポーション の投稿を表示しています。 すべての投稿を表示
ラベル 量子テレポーション の投稿を表示しています。 すべての投稿を表示

2023年9月3日日曜日

量子テレポーテーションをQiskitでもやってみる

 量子テレポーテーションに関しては、これまでに何度か記事を書きました。例えば次のようなものです:
 これらの記事では、主に量子回路シミュレータQniを使って、説明してきました。内容はほぼ同じなのですが、今回は、Qiskitを使ってみました。新たに分かったこともあるので、記録しておきたいと思った次第です。
地球と月の間の量子テレポーテーション

量子ビットと古典ビットの並び順の相違
 これは(Qiskitに限らず)混乱しやすいので、改めて図1にまとめた。(本図は、私のオリジナル作品)まず、複数の量子ビットシステムのテンソル積での並び順であるが、量子回路図では、これを右側に起こして直立させたものになる。次に、これらの量子ビットの測定結果(古典ビット列)の並び順は、これを右側へ倒して水平にしたものと対応する。すなわち、テンソル積と古典ビット列では、上位と下位が逆転する。これは、慣例となっているので、注意する必要がある。図3にもこれが表れる。

量子テレポーテーションで転送したい量子ビット状態の設定
 任意の量子ビット状態を転送できるのだが、ここでは、一例として、図2に示す量子状態とする。すなわち、量子ビット|0>に対して、Y軸周りに60°回転、さらにZ軸周りに60°回転させた状態を設定した。
 QiskitではComposerとQuantum Labの2つが使える。どちらでも、量子状態ベクトルを表示できる。何か詳細な設定が必要であれば、上図のように、Quantum Labでコーディングすることができる。もちろん、次の図3と同じ量子回路図も、Quantum Labで書くこともできる。

量子テレポーテーションをQiskit Composerでシミュレートする
 さて、ここからが本論なのであるが、原理的なことはすでに上記ブログ記事に十分書いているので、重複する部分は省略する。図3は、図2で設定した量子ビット状態を、AlcieからBobへ転送する様子である。下段には、Aliceの測定結果としての古典2ビット情報の発生確率と、AliceとBobの3量子ビットシステムの確率振幅が表示されている。
 この図で最も重要な点は、Aliceの量子ビット状態①が、Bobの量子ビットに設定されることである。つまり、①と⑥は全く同一の状態である。しかし、①の状態はすでに消滅して⑦のようになっている。これは量子複製不可定理に則っていることなのである。

 すでに既報では、Aliceが②で測定を行う直前の状態は、4通りあり、それぞれ1/4の確率で発生することを示した。図下段の③からそのことが確認できる。これは、Composerが自動的に②の測定を1024回実行(shot)した結果なのである。つまり、測定結果の古典ビット列000、001、010、011の出現確率がそれぞれほぼ等しく、25%程度となっており、それらの合計は100%であることが実証された。なお、3ビットの並びの最上位は0となっているが、これは、Bobの量子ビットがこの時点では測定されていないことによる。また、②の測定の直前に、Aliceが自分の2量子ビットに逆Bell回路を適用していることにも注意する。

 最後に、右端の3量子ビットシステムの状態をみてみよう。この例では、②の測定結果が10であり、|q[2]>|1>|0>という状態になっている。測定結果によらず、q[2]の状態は必ず⑥(すなわち①)となる。そうなるように、Bobによる④の操作(制御付き量子ゲート)が設定されているのである。q[2]が|1>となる確率が0.25(|0>となる確率は0.75)であることは図2に示したので、⑤の確率振幅の分布は納得できるであろう。

Qiskit Composerのその他の機能
 図3の②での一回の測定結果として、特定の2ビットパタンが必要な場合は、図4上部のVisualizations seedを変更して試すことができる。また、図中の量子ビット状態を示す円盤には、量子ビットのpurity(量子もつれの有無)を示す情報も含まれるので、量子回路の検証に利用することができるだろう。

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年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