Path: blob/main/translations/ja/ch-algorithms/teleportation.ipynb
3855 views
量子テレポーテーション
このノートでは量子テレポーテーションについて説明します。まず始めに、作成した量子回路を Qiskit に組み込まれているシミュレーターを使ってテストします。その後、その回路を実際の量子コンピューターで動かしてみます。
目次
アリスがボブに量子情報を送りたいとしましょう。これを具体的に、アリスがボブに状態 を送りたい、と仮定します。その為にはまず、 と の情報をボブに渡す必要があります。
量子力学には、未知の量子状態の単純な複製を正確に作ることは出来ない、という定理が存在します。量子複製不可能定理(no-cloning theorem)として知られているものです。この定理ゆえ、アリスが単純に の複製を生成してそれをボブに渡す、という事は出来ません。状態 の複製は古典的な計算でのみ可能なのです(重ね合わせはコピーできません)。
しかし、2つの古典的ビットとエンタングルメントを利用することで、アリスは状態 をボブに転送できます。その結果、最終的にボブが を持ち、アリスがもはや何も持っていない事から、我々はこれをテレポーテーションと呼んでいます。
2. 量子テレポーテーション・プロトコル
量子ビットを転送するためには、アリスとボブは第三者(テラモン)を使ってエンタングルした量子ビットのペアを作り、それを彼ら自身に送ってもらわなくてはなりません。その後アリスは、彼女の量子ビットにいくつかの演算子を作用させ、その結果を古典通信チャンネルを通してボブに送信します。ボブはそれに従って彼の量子ビットにいくつか演算子を作用させることで、結果的にアリスの量子ビットを受け取ることが出来ます。

これらの手順を、以下では量子回路を使って説明していきます。ここでは実際に量子ビットを「送る」わけではありませんので、想像しながら進んでください!
まず初めに、セッションをセットアップしていきます:
それでは量子回路を作成していきます:
ステップ 1
第三者のテラモンは、エンタングルした量子ビットのペアを作り、片方をボブへ、もう片方をアリスへ渡します。
テラモンが作ったこのペアは Bell pair(ベルペア)と呼ばれる特別なものです。量子回路の言葉を使って Bell pair の作成方法を説明すると、まず量子ビットのペアのうち1つをアダマールゲートで X 基底 ( and ) に変換し、これをコントロール・ビットとして、もう片方の量子ビットに CNOT ゲートを適用することで作成できます。
以下では、アリスは 、ボブは を持っているとしましょう。
ステップ 2
アリスは、コントロール・ビットを (彼女がボブに送ろうとしている量子ビット)として、 に CNOT ゲートを作用させます。そして、 にアダマールゲートを作用させます。今回の量子回路では、アリスが送信しようとしている量子ビット()は です:
ステップ 3
次にアリスは、彼女が持っている両方の量子ビット と を測定し、その結果を2つの古典ビットに格納します。これら2つのビットを、彼女はボブに送信します。
ステップ 4
既に を持っているボブは、送られてきた古典ビットの状態に従って に次のゲートを作用させます:
00 何もしません
01 ゲートを適用
10 ゲートを適用
11 ゲートを適用
(注:情報の伝達は純粋に古典的な方法で行われます。 )
できました!プロトコルの最後に、アリスの量子ビットはボブにテレポートされます。
この notebook では、アリスの量子ビットをランダム状態 (psi)で初期化します。この状態はInitialize(初期化)ゲートを に作用させる事で作られます。この章ではpsiを選ぶためにrandom_state関数を使いますが、psiを任意の量子ビット状態に設定してもかまいません。
から を作る初期化ゲートを作りましょう:
(Initializeにはリセット操作が含まれているため、技術的にはゲートではなく、元に戻すことはできません。代わりに「命令」と呼びます。)量子テレポーテーション回路が動作すれば、回路の最後に量子ビット を状態がこの状態になるはずです。状態ベクトル・シミュレーターを使ってこれをチェックしてみましょう。
以下でみるように、この状態ベクトル・シミュレーターを用いると、状態 は上で作った状態 と同じですが、状態 と は、状態 か のどちらかに崩れている事がわかります。状態 は 量子ビット 0 から 2 にテレポートされています。
このセルを何回か実行してみてください。すると、量子ビット 0 と 1 の状態が変化している事に気づくと思いますが、量子ビット 2 は常に状態 のままです。
3.3 QASM シミュレーターを使った方法
量子テレポーテーションは2つのグループ間で量子ビットを送るようにデザインされています。これを実証するハードウェアを私たちは持ち合わせていませんが、単一の量子チップ上でなら、ゲートが正しい変換を行う事を実証することができます。ここでは、QASM シミュレーターを使用して、プロトコルをテストする方法をシミュレートします。
実際の量子コンピューターでは、状態ベクトルをサンプリングする事はできません。なので、テレポーテーション回路が稼働しているかをチェックしたければ手段を変える必要があります。みなさんは、量子ビット を状態 に変えるために初期化したことを覚えているでしょう:
全ての量子ゲートは可逆性を持っているので、次のようにして初期化の逆変換を得ることが出来ます:
この演算子は次のような性質を持っています:
量子ビット が にテレポートした事を証明するには、 に対してこの逆初期化を行えば確実に が測定できる事を期待すればよいのです。下の回路ではこれを実行しています:
回路図では「disentangler」とラベルのついた、inverse_init_gateが表示されているのがわかります。最後に、3番目の古典ビットを測定して、その結果を古典ビットに確認します:
それでは実験を実行しましょう:
(文字列の左端のビット)の測定で 状態 を得る確率が 100% であることがわかります。これは予想された結果であり、テレポーテーション・プロトコルが正常に動作した事を示しています。
4. 量子テレポーテーションを理解する
量子テレポーテーションを実装したので、次にこのプロトコルの背景にある数学を理解しましょう。
ステップ 1
量子テレポーテーションは、アリスがボブに(ランダムな量子ビット)を送信する必要があるという事実から始まります。彼女は量子ビットの状態を知りません。このために、アリスとボブは第三者(テラモン)の助けを借ります。テラモンは、アリスとボブのためにエンタングルした量子ビットのペアを準備します。 エンタングルした量子ビットは、ディラック記法で次のように書くことができます:
アリスとボブはそれぞれ、エンタングルした量子ビットのペアの1量子ビット(それぞれAとBとして示されます)ずつを持っています。
この量子ビットのペアを使って、アリスが始めの2量子ビットを持ち、ボブが残りの1量子ビットを持つ、3量子ビット量子システムを作成します。
ステップ 2
プロトコルに従って、アリスは2つの量子ビットにCNOTゲートを適用し、続いて最初の量子ビットにアダマールゲートを適用します。 これにより、次の状態になります:
次に、これを分離して次のように書くことができます:
ステップ 3
アリスは(彼女が所有している)最初の2量子ビットを測定し、それらを2つの古典ビットとしてボブに送信します。彼女が取得する結果は、常に4つの標準基底状態のいずれかであり、確率は同じです。
彼女の測定に基づいて、ボブの状態は次のように予測されます。 .
ステップ 4
ボブは、アリスからビットを受け取ると、かつてエンタングルされたペアの一部であった量子ビットに適切な変換を適用することで、元の状態を取得できることを知っています。
彼が適用する必要のある変換は次のとおりです:

このステップの後、ボブはアリスの状態を正しく再構築することができます。
5.1 IBMハードウェアと遅延測定
IBMの量子コンピュータは現在、測定の後に行う命令系をサポートしていないため、実際のハードウェア上ではこれまでの形の回路による量子テレポーテーションを実行できません。ただ幸いなことに、[1]の4.4で説明されている「遅延測定原理」のおかげで、計算実行能力を制限することはありません。この原理は、どのような測定も回路の終端まで延期することができるというものです。つまりすべての測定を最後に持ってくる事が可能で、そこで測定しても同じ結果が得られるはずなのです。
早い段階で測定を行うことで得られるメリットは、ハードウェアと関連しています。早期に測定できれば、量子ビットを再利用できるかもしれませんし、量子ビットが壊れやすい重ね合わせ状態にある時間を短縮できるかもしれません。この例では、量子テレポーテーションにおける早期測定が、直接量子通信チャンネルを使わず量子ビットの状態を送信出来たはずです。
ゲートを動かすことで実際のハードウェア上で「テレポーテーション」回路を実証することができる一方で、テレポーテーションプロセス(古典的なチャネルを介した量子状態の転送)の恩恵が失われていることに注意してください。
それでは、bob_gates関数をnew_bob_gatesに書き直してみましょう:
そして新しい回路を作ります:
このように、 の測定結果は複数あります。これらはゲートと量子ビットのエラーに起因したものです。対照的に、この notebook のはじめに使ったシミュレーターではゲートのエラーはゼロであり、エラーのないテレポーテーションが可能でした。
6. 参考文献
[1] M. Nielsen and I. Chuang, Quantum Computation and Quantum Information, Cambridge Series on Information and the Natural Sciences (Cambridge University Press, Cambridge, 2000).
[2] Eleanor Rieffel and Wolfgang Polak, Quantum Computing: a Gentle Introduction (The MIT Press Cambridge England, Massachusetts, 2011).