【要旨】アルゴリズム、アルゴリズムとよく言いますが、コインの真偽判定に関するドイチュのアルゴリズムは、現在のPC上では考えられません。量子計算に特有の全く不思議なアルゴリズムですが、小生なりに理解した結果を、分かりやすく説明します。(なお、量子ビットの状態、重ね合わせ、もつれ、及び量子ゲートの基礎知識を前提としていますが、ご存じなくても、不思議さは感じていただけると思います。)
このアルゴリズムの拡張版であるドイチュ・ジョサのアルゴリズムについてはこちらに簡単な試行結果があります。
●コインの真偽判定の問題
コインをトスして何かを決める場合がある。その際、コインが変造されていないかを検査したい。表裏が同一のデザインならば、それは偽物だ。表と裏をそれぞれ見るので、2回の検査を要する。これを2値(0, 1)関数f(x)の適用に置き換えてみる。変数xも0か1をとるとする。コインの最初の検査をf(0)、2回目の検査をf(1)とする。関数値0と1は、それぞれ、QueenエリザベスIIのデザインと裏地のデザインに対応する。そのような関数fとして、図1に示すように、 f1, f2, f3, f4の4種が考えられる。f1と f2は、平衡関数(裏表が異なる)と呼ばれ、f3, f4は定数関数(表裏が同一)と呼ばれる。
この問題を解く、ドイチュのアルゴリズム(1985年)は、ただ1回のコインの検査だけで済むという。そんなことできるのか?実に不思議だが、それを実現する量子回路が図2に示すものだ。詳細は後で述べるが、まずはそれがどんなものかを見てみよう。
制御ビットと標的ビットという2つの量子ビットを用意し、それぞれ"|0>"と"|1>"に初期化する。それらにアダマールゲートHを通す。その状態にOracleと呼ばれる判定ゲート適用する。Oracleの中身は、図にあるように排他的論理和をとるだけの単純なものだが、Oracleに入ってくる状態①が、すでに量子特有の重ね合わせ状態となっていて、これが常識では考えにくい作用を起こす元になっている。
それはともかく、Oracle適用後の制御ビットにさらにアダマールHを適用し、その結果を観測した結果が、"0"ならば定数関数(偽物)であり、"1"ならば平衡関数(本物)だという。繰り返しになるが、Oracleは1回しか通していない。だから、f(x)の計算も1回しかやっていない。それなのに、このような結論が得られるのだ!
なぜこのアルゴリムでよいのかは後で述べるが、その前に、この回路をQni量子シミュレータで実行して結果を確認する。IBM Quantumの実機でも簡単に実行できるのだが、待ち時間が長すぎるので、今回は保留した。
ここからは、このアルゴリズムが思い通りに働くことを理論的に示す。ここで用いた計算は、渡邉靖志著[1]に従っているが、途中の計算過程もできるだけ省略せずに、独自の説明も加えた。その前に必要となる種々の量子ゲートの働きについては、こちらのブログ記事も参照されたい。また、アダマールゲートHについては、小生自作の図4のブロッホ球の模型もイメージするのに役立つだろう。
量子コンピュータ実機(IBM Quantum - ibm_nairobi)による結果も得られたので記録しておく。下図は、図3の関数f1に対するものであり、観測結果は93.5%(=958/1024)の確率で、"1"、すなわち、平衡関数だという正しい結果となった。
0 件のコメント:
コメントを投稿