超密度符号化
ベル状態の判別
1 量子ビットで 2 古典ビット分のデータを表す
アリスの操縦する量子ドローンが、おじいさんの広い畑のどこかに墜落してしまいました。 おじいさんの畑は A, B, C, D の区画に分かれています。 ドローンはどこに落ちた?
最低限どの区画に落ちたかさえ分かれば、家族総出で手分けすれば夕方までにはなんとかドローンを見つけ出すことができます。 しかし見つからないまま夜を迎えてしまうと、タヌキやキツネやハクビシンといった野生動物たちにドローンがかじられてしまい、使いものにならなくなってしまうでしょう。
幸いなことにドローンには量子通信機能が付いていて、アリスとの間で量子ビットを送受信できます。 しかしバッテリーがほとんど残っておらず、できることはアリスからの 1 量子ビットの受信と、アリスへの 1 量子ビットの送信だけです。 こんな状況で、ドローンはどうやったら自分の位置をアリスに知らせることができるでしょうか?
ドローンが区画データを量子ビットに乗せてアリスへ送るためには、区画 A, B, C, D をビットで表す必要があります。 これは全部で 4 通りで、番号を振ると 0, 1, 2, 3 になります。 2 進数で表すと、00, 01, 10, 11 と 2 ビットのデータなので、ドローンがアリスへ送ることのできる 1 量子ビットではどうしても表せません。
しかし、さすがは小さい頃から「量子ネイティブ」と呼ばれてきたアリスです。 すぐに超密度符号化 (スーパーデンス・コーディング) のテクニックが使えるとひらめきました。 超密度符号化とは、1 量子ビットで 2 古典ビット分のデータを送ることのできる量子圧縮アルゴリズムです。 これを使えば、ドローンからアリスに 1 量子ビットを送ることで 2 ビット分の区画データを伝えることができます。
アリスはまず、手元に 2 量子ビットを用意します。 これらをベル回路によってもつれさせ、そのうち 1 つの量子ビットをドローンへ送信します。 このとき、もつれた量子ビットの片方をドローンが、もう片方をアリスが持っている状態です。
量子ビットを受け取ったドローンは、自分のいる区画 A, B, C, D に応じたゲートを適用することで、4 つのベル状態のうちの 1 つを作り出します。
区画 | 適用するゲート | ベル測定で取り出せる値 |
---|---|---|
A | なし | 00 |
B | Z | 01 |
C | X | 10 |
D | Y | 11 |
たとえば区画 B (01) に墜落したならば、アリスから受け取った量子ビットに Z ゲートを適用します。 そしてその量子ビットをアリスへ送り返します (ここでドローンはすでに 1 量子ビットの送受信を行ったので、完全にバッテリー切れとなります)。
アリスはドローンから受け取った量子ビットと自分の量子ビットをベル測定し、2 ビットのデータを得ます。 ドローンは Z ゲートを適用したので、アリスはベル測定によって 01 という値が得ます。 これによって、ドローンが墜落した区画を見事特定できました!
まとめ
超密度符号化によって 1 量子ビットで 2 古典ビット分のデータを送る方法を紹介しました。 送信者は 2 ビットのデータを 4 つのベル状態の 1 つにエンコードし、受信側がベル測定でデコードすることで 2 ビットのデータを受け取ります。 送信側と受信側はあらかじめ、もつれた量子ビットを共有している必要があるものの、送受信するデータには関係なく準備することができます。