2026年5月26日火曜日

スマホで動くスタンドアロン型量子回路シミュレータ

【要旨】本格的な量子回路シミュレータとして、IBM QiskitやGoogle Cirqなど広く使われている。しかし、電卓のように、いつでもどこででも、さーっと取り出して、web接続も不要な量子回路シミュレータが欲しくて、数年前、[2]に示すアプリを自作した。これを使って、一般的な量子コンピューティングのテキストブックに出てくる基本的な例題の多くを試すことができた。今でも、重宝している。一方、最近になって、同様のシミュレータが他にもあることを知った。Codexus Technologiesの製品[1]である。今回、これら両者を、いくつかの例題を通して、使い勝手などを簡単に比較してみた。両者の設計思想を探るのは楽しいことである。

🟢スタンドアロン量子回路シミュレータ
 
いずれも、Androidモバイルフォン単体で動作するのである。ユーザによる環境設定や、Web接続は全く必要としないので、電卓を使うような感覚で、基本的な量子回路を動かすことができる。それぞれの特徴を簡単にあげる。

・Codexus Technologies のアプリ[1]
 デザインが美しく、綺麗な画面である。基本的な量子ゲートの多くを使うことができる。量子回路の規模は5量子ビットまで。GUIでゲートを置いていく形式であり、テキストでのプログラミングは不要である。1024ショットのシミュレーションの結果を、ヒストグラムと state vector(確率振幅)をテキストで得ることができる。どのような開発環境で作成されたかは不明である。

・Fujio Yamamoto のアプリ[2]
 1-qubit用とn-qubit用の2種類がある。1-qubit用は、GUIで各種の量子ゲートを連続的に適用でき、State vectorは、3Dブロッホ球に表示できる。n-qubit用は、IBMのQASMに近いテキスト形式で与える。シミュレーション結果は円盤形式とテキスト形式の両方で、State vectorとして示す。作成した回路は、ボタン操作で格納でき、あとで取り出して再編集できる。このアプリは、MIT App Inventorで効率良く作成されたものである。ただし、複素数演算の多くは、 JavaScriptでコーディングして組み込んでいる。

🟢例題による使い勝手の比較
 この比較は、両者の優劣を論じるものではない。それぞれのアプリの作者がどのような設計思想を抱いて、そのシミュレータを作り上げたのかを探るのが主な目的である。それを調べることは楽しいことである。以下の3つの例題を、それぞれのシミュレータで実行してみよう!

(1)量子ゲートXとHを連続して1-qubitへ適用
 Codexus
アプリは、下図の通り、洗練されたデザインで、ポンポンと量子ゲートを並べれば良い。”simulate"ボタンを押すと、1024回ショットが自動的に実行され、State VectorとHistogramが表示され、わかりやすい。

 Fujioアプリも、同様にGUIで量子ゲートを適用する。最大の特徴は、3Dブロッホ球にState vectorを表示することある。下部には、確率振幅も複素数で表示される。

(2)3-qubitを使ったGHZ
 Codexus
アプリでは、CNOTゲートの設定に工夫が見られる。まず、コントローラをどのqubitにするかを決める。すると、NOTゲートを置けるqubitの候補が示されるので、適当なqubitをクリックすれば良い。シミュレーション結果は、000と111だけが表示され、量子もつれを確認することができる。

 Fujioアプリでは、量子ゲートの配置をテキストで与える。それを編集できるので、自由度は高い。また、いくつかの例題がすでに組み込まれているので、ボタンを押して、その量子回路をすぐに使える。シミュレーションの結果は、円盤に、確率と位相が表示されるので、親しみやすい。

(3)4-qubitを使ったMermin-Peres Magic
 
この例題は、ここまでの2つよりも若干複雑であり、量子もつれを巧みに利用したマジックである。詳細は[3]を参照されたい。

 Codexusでは、画面を横方向にスクロールすることで、ゲート数が多くなってもうまく設定できる。出力は、4量子ビットのすべての組み合わせ16個のうちの、8個だけがほぼ同数出現するという正しい結果を示している。
 ここで、一つ要望事項がある!このくらい長い回路になると、この結果をsaveして、後でそれを取り出して編集したい!次回のバージョンではそれを追加してほしい!

 Fujioアプリでは、他の2つの例題と同じく、テキストで量子ゲートを配置している。右側のシミュレーション結果には、基底ごとの出現確率と位相が円盤に示されるので、分かりやすい。Codexusと全く同じ結果が得られている。

 しかし、ちょっと違うことに気づく人もいるだろう!たとえば、Codexusでは、"0001のamplitudeが-0.354"となっているのに対して、Fujioでは、"1000のamplitudeが-0.354"となっている。これは単に、ビットの並べ順が異なるだけである。つまり、Google Cirq流かIBM Quantum流かの違いである。

(4)7k mod 15 (where k=8)の計算
 
この例題は、量子位相推定(QPE)の一部として出てくる。ここでは、"7k mod 15"という簡単な例である。k= 8の場合、答えは11であることを確認している。

 Codexusでは、swapゲートでこれを実現している。シミュレーション結果は、|1101>の確率振幅が1.0となる。これは、答えが、古典2進で1011、10進で11であることを意味する。ビットの並び順に関しては、例題(3)で説明した通りである。

 Fujioの結果については、説明は不要であろう。

(5)4-qubit QFT without swap
 
この例題は、4-qubitを使う量子フーリエ変換(QFT)である。残念ながら、Codexus appでは、Control Phaseや、Control S、Control Tが使えないようである。したがって、QFTの量子回路を作ることはできなかった。
 一方、Fujio appでは、Control Phaseゲートを使って、以下の図のような結果を得ることができる。

 この後、引き続いて、逆量子フーリエ変換IQFTx(小文字のxはno swapを意味する)を適用すると、以下の図の通り、QFTxを適用する前の状態 |1111>へ戻ることが確認された。

🟢結 論
 Codexusアプリも、Fujioアプリもそれぞれ特徴があり、楽しく、気軽に使える。高校、あるいは大学ででも、入門的な量子コンピューティングに活用できるのではないだろうか!

References
[1]Quantum Circuit Simulator by Codexus Technologies (Sri Lanka)
https://play.google.com/store/apps/details?id=com.codexustechnologies.quantumcircuitsimulator&hl=en-US

[2] Redesigned Mobile Quantum Circuit Simulators by Fujio Yamamoto
https://sparse-dense.blogspot.com/2024/08/redesigned-mobile-quantum-circuit.html

[3] Mermin-Peres Magic
Exploring Quantum Entanglement through Visualization
https://sparse-dense.blogspot.com/2025/05/exploring-quantum-entanglement-through.html

0 件のコメント:

コメントを投稿