2022年8月26日金曜日

量子もつれをIBM Quantum実機で体験

 前報のアダマールゲートの模型まで行ったところで、今回は、そのような量子ゲートを使った簡単な量子回路を試してみる。ここに出現するのは「量子のもつれ」である。これは、複数量子ビットのうちのあるビットを量子ゲートで操作した時に、別の量子ビットの状態に瞬時に影響を与える現象のようだ。これを利用して、演算結果として得たい状態を作り出す(結果を絞り込む)量子回路を作ることができる。これは重要な機能となるだろう。

2量子ビット回路による結果の絞り込み
  まず、図1(a)の量子回路だが、これは2つの量子ビットを共に確定値 |0>に初期化し、それらにアダマールゲートとCNOTゲートを適用している。これらのゲートの機能から、最初のビットを観測すると|0>|1>がそれぞれ50%の確率で得られる。それが |0>ならば、2番目のビットは何も影響を受けないが、|1>ならば、2番目のビットは反転して |1>となる。すなわち、この回路の実行結果としては、"00"と"11"がそれぞれ確率50%で得られる。これを、量子シミュレータQniでやってみると、図1(b)(c)のように、確かにそうなるようだ。

3量子ビット回路による結果の絞り込み
 次に、図2(a)は、3量子ビットで量子もつれを引き起こす回路である。今度は、アダマールゲートとCNOTゲートに加えて、パウリXゲートも使われている。この回路の実行結果を予測する手計算も可能ではある。というのも、前回の記事で実施したアダマールゲートの2回適用と同様の計算をすれば良いからである。しかしながら、かなり入り込んだ計算となるので、ちょっとやめておく。

 そこで、図1の場合と同じく、量子シミュレータQniでやってみた。図2 (b) (c)のように、この量子回路の実行結果として、"000"と"111"がそれぞれ50%の確率で得られるようだ。すなわち、量子重ね合わせ状態 (|000> + |111>) / √2 が得られる。ただ、本当にその確率になることを知るには、何度もこの回路を実行して観測する必要がある。

IBM Quantum実機による3量子ビット回路の実行
 この3量子ビット回路の量子もつれによる、上記のような"000"と"111"への絞り込みを実際に確認するため、IBM Quantum実機(5量子ビットのmanilaというマシン)を使ってみた。回路の作成は、図2と同じようなインタフェースで行える。実際、それは図3のようになり、量子シミュレータQniとあまり差はないようだ。
 そして、その実行結果が図4である。ここで注意すべきは、黒枠内の"computational basis states"のグラフである。これは回路を構成(compose)した後に得られたものだ。回路の実行前である。従って、これは事前予測なのだろう。これから試行する1024回のうち、確かに、"000"と"111"がそれぞれ確率50%で得られることを示している。

一方、外側の赤枠の結果が、このIBM機での実際の実行結果である。確かに、"000"と"111"がそれぞれ確率50%近い出現状況となっているが、少し歪んでいる。また、"110"や"101"などの他のビット組み合わせも僅かながら観測された。これは現実の量子コンピュータには種々のノイズが生ずることを示唆しているのかも知れない。
 これは、5量子ビットのmanila機の場合だが、別の7量子ビットのoslo機でも状況は同じようだ。下図も参照願いたい。
 しかしながら、量子コンピュータは、従来のコンピュータとは全く異なり、このように確率の概念の上に組み立てられているのだろう。その特性を把握して、利用価値を見出して行くものなのだろう。
 量子コンピュータは、量子状態の重ね合わせと波の干渉の両方をうまく活かすことができて初めてその真価を発揮すると言われる。上記のように量子ゲートを用いて量子回路を作るという現状は、従来コンピュータで言えば、まだアセンプラかそれ以下の低水準の操作に留まる。しかし、ここまでくると、「波の干渉」を直接考慮する場面は多分少ないので、情報系技術者にとって良いことであろう。

0 件のコメント:

コメントを投稿