2024年3月12日火曜日

量子コンピューティングを学ぶためのアプリをMIT App Inventorで開発(総集編)

----------------------------------------
この記事は、MIT App Inventorで量子コンピューティングの総集編であり、こちらの英文記事の和訳です。
----------------------------------------
 私は、日本の神奈川工科大学の名誉教授(コンピュータサイエンス)山本富士男です。実用的な量子コンピュータはまだ完成していないが、それが実用に供されれば社会に与える影響は非常に大きいと予測されるので、企業や大学での量子コンピューティングに関する研究開発は盛んになっている。私は、量子コンピューティングの基礎を学ぶための多数のアプリを、App Inventorを用いて開発を行なってきた。その目的は、関数電卓を使うような手軽な感覚で、少数の量子ビットを使う計算を楽しむことにある。だが、それだけではない。小規模であっても、量子回路シミュレータなどのアプリを自作するならば、理解は一層深まるに違いない。そのように考えて行ってきた取り組みを紹介したい。
 最初に、最も基本となるシングル量子ビットとはどんなものなのかを、自分の操作で確かめられるアプリを作成した。つまり、古典ビットに対する演算に該当する量子ビット操作のためのシミュレータアプリである。次に、2量子ビット、または3量子ビットを使う量子アルゴリズムのための、量子回路シミュレータアプリを開発した。実際、数例の量子アルゴリズムをそのシミュレータで再現してみた。最後に、別の観点から、大量の量子ビットのストリームを入力とする、個別のアルゴリズムについて、それぞれの動作原理の把握を容易にするアプリも開発した。

何と言ってもまずはQubit(量子ビット)
 まず、基本となる量子ビットがある。これは、0と1とを値とする従来のビットとは大きく異なる。量子ビット(Qubit)は、下図に示すようなブロッホ球と呼ばれる球面上にあると考えられる。北極点は従来の0、南極点は1に該当する。したがって、量子ビットは、一般に、北極点と南極点をある確率で重ねあわせた状態にあると言える。量子ビットは「測定」という操作を行うことによって初めて、その値が0か1かのどちらかに、確率的に確定する。測定するまでは、0と1の値が重なった状態にある。その不確定な状態のまま、種々の操作、すなわち演算を行うことができる。演算の結果として、qubitの状態、すなわちブロッホ球面上の位置が変化する。その際の変化に随伴する情報を利用して、必要な計算を進めることができる。複数の量子ビットの場合は、それらの情報の相互干渉さえも有効に利用できる。では、最初に、単一量子ビットの場合を見てみよう。
 量子ビットの状態をどのような方法で変化させるのだろうか?それに答えるのが、下図に示すアプリである。ブロッホ球面の量子ビットの緯度と経度を、(a)のようにスライダーで自由に変えることができる。しかし、通常は、むしろ、量子ゲートと呼ばれる演算で変える。例えば、アダマールゲート(H)を、北極点の状態に適用すると、それは赤道上に移動する。下図の(b)では、Hゲート適用後にさらにSゲート(赤道上を90°回転)を適用した例である。他にも多数の量子ゲートを利用できる。
2量子ビットを一つのシステムとして扱う
 一つの量子ビットだけでできることは少ないが、2量子ビットを使うと、急に様子が変わる。一般に、複数量子ビットを扱う場合には、個々の量子ビットを個別に扱うのではなく、一つのシステムとみなすことが必要となる。例えば、2量子ビットの場合、下図のように一方にHゲートを適用し、次に、両者に跨るCNOT(Controlled NOT)を適用すると、有名な量子もつれ状態(Bell状態)にすることができる。
 この場合の量子もつれとは、AliceとBobの量子ビット間に、強い相関関係が生ずることを意味する。すなわち、たとえ、AliceとBobが遠隔にあっても、Aliceが自分の量子ビットを測定して0を得た場合は、Bobの量子ビット自動的に即座に0になる。同様に、測定結果が1であれば、両者とも1となる。以下の図のアプリは、その状況を示している。
 しかしながら、現状の量子回路シミュレータや量子コンピュータでは、AliceとBobが遠隔にいるというイメージを持つことができない。そこで、私は両者の量子ビットをそれぞれ別のモバイイルフォン割り当てることにした。これらにコントロール用の1台を加えて、3台のモバイルフォンの構成で、遠隔にある量子間のもつれを模倣し、実感できるアプリを作った。下図にそれを示す。この図のトップにある、Cloud DB(リアルタイムDB)は、量子もつれの効果を表現する上で重要な役割を果たしている。

3量子ビットを使う色々な量子アルゴリズム
 次のステップとして、種々の基本的な量子アルゴリズムを試すには、3量子ビットが必要となる。だが、上記のように、各量子ビットを1台の台のスマホに割り当てる方法は、煩雑になるので採用しないことにした。それに替えて、ここでは、1台のモバイルフォンで3-qubitを扱えるように、新たに設計し直した。そのアウトラインを下図に示す。
 この3-qubitシミュレータアプリを使って、例えば、以下のような量子アルゴリズムを実装することができた。
(1) Phase kickback(制御ビットへの位相変化の戻し)
(2) Grover’s algorithm(構造化されていないデータの探索)
(3) Superdense coding(少数の量子ビットで多くの古典ビット情報を送信)
(4) Quantum Fourier Transform(to find out the frequency of coprime powers sequence)

 詳細説明は略すが、このうちの(2)のGrover’s algorithmの実行例を下図に示す。(a)では、8個の要素のうちの、探索対象をマーキングしている。(b)では、確率振幅の増幅という手法で解を求めている。
 もう一例示そう。次の図は、量子フーリエ変換QFTの利用例である。詳細説明は略すが、ここでは、ある数列(coprime powers sequence)から、その構成要素のパタンの周期、あるいは周波数を求めている。この結果は、IBM Quantumマシンでの実行結果と一致することも示している。このような周波数の検出は、Shor’s素因数分解アルゴリズムでも重要である。

大量の量子ビットのストリームを入力とするアルゴリズム 
 ここまでは、汎用的な量子回路シミュレータ利用であったが、次に、個別の量子アルゴリズムに特化した、説明用アプリを示す。例えば、大量の量子ビットのストリームを入力とするアルゴリズムがいくつかある。ここでは、光子の偏光の量子計算モデルと、量子もつれを利用する量子鍵配送を取り上げる。

(1) 量子計算モデルに基づく光子の偏光
 Qubitは、電子のspinや光子の偏光で表現される。ここでは、後者を扱う。今、偏光板3枚の軸角度を様々に変えて重ねる。その状態で物体を見た場合の明るさを問題とする。その際に必要なのは、入射される大量の光子が、それぞれの偏光板を通過する確率の計算である。作成したアプリでは、それらの通過確率を、偏光板の色の透明度に反映させて、実際の見え方を模倣した。その様子を下図に示す。

(2) 量子もつれに基づく量子鍵配送
 次のアプリは、量子鍵配送プロトコルEkertのイラストレーションである。このプロトコルでは、2者間の情報が第3者に盗聴されたか否かを確実に判定できる。その方法では、もつれた状態の量子ビット対から成る十分長いストリームを用意する。対の一方をAliceが、他方をBobが受け取る。各対毎に、両者はそれぞれ独立に、3種類の基底から一つをランダムに選び測定を行う。全ストリームの受信を完了後、両者はそれぞれ、古典ビット列(測定結果)と選択基底の列を得ることになる。
 明らかに、確率2/3で両者の基底は合致しない。もつれた状態において、両者が異なる基底で測定した結果は、確率1/4で合致することが、Bellの定理で示されている。ただし、それは、第3者による盗聴が無い場合である。
 一方、例えば、第三者Eveが、AliceとBobの測定よりも前に量子を盗聴したとする。盗聴には必ず、適当な基底での測定が必要となる。その結果、AliceとBobの量子対のもつれ状態が消失することに起因して、測定結果の一致確率は3/8に上昇する。これにより、盗聴を検出できる。これをシミュレートするアプリの様子を下図に示す。理論値通りの実行結果が得られていることが分かる。
まとめ
 量子コンピューティングの基礎に親しむためのモバイルフォンアプリとして、量子回路シミュレータや量子アルゴリズムのイラストレーションを開発してきた。これらの開発は、すべて、MIT App Inventorのみを用いて、効率的に行うことができた。App Inventorは、このように、新しい分野を学ぶためのアプリの開発に極めて有用であることを再確認できた。
 なお、この記事で省略した内容の詳細をご覧になりたい場合は、以下のブログ記事を参照いただきたい。ここには、約90件の関連記事の一覧が掲載されている。

In these developments, the books [1] , [2] and [3] written by three professors, Chirs Bernhardt, Barry Burd and Shigeru Nakayama, respectively, were very helpful.

参考文献

[1] Chris Bernhardt: Quantum Computing for Everyone, The MIT Press, 2020.

[2] Barry Burd: Quantum Computing Algorithms -Discover how a little math goes a long way, Packt Publishing, 2023.

[3] Shigeru Nakayama(中山 茂): Quantum app Qni, Gaia Education series 52, 2022. (In Japanese)

 

0 件のコメント:

コメントを投稿