2024年5月16日木曜日

IBM Quantum Labは廃止、だが新Composerがある

 【要旨】予告通り本日(現地時間 2024-5-15)、IBM Quantum Labのサービスが停止。これまでWeb上でQiskitコード(with Python)で量子回路を編集し、シミュレータや実機で実行できた環境がなくなってしまった!そのかわり、従来のComposerと呼ばれるビジュアル量子回路編集のサービスの質向上が図られた。そこから、実機で実行することもできるので、全体としては、ユーザサービスは向上したと言える。

🔴IBM Quantumからのアナウンス

 図1に示す通りだが、アナウンスはこのサイトの中にある。今後は、Qiskitコード編集、および実行環境はユーザ自身がローカルマシンに構築しなければならない。Webでのサービスは終了したのである。量子コンピュータハードウェア開発競争が激化し、IBMもハードウエア開発により注力するためらしい。
 Qiskitで作成した量子回路は、ユーザのローカル環境からもIBM Quantumマシン実機で実行できるので、中級以上のユーザには特に問題ないであろう。一方、初級ユーザ(および中級ユーザ)は、従来のビジュアル型のComposerが利用でき、今回はそのサービス内容もかなり向上したようである。

 ローカルにQiskit環境を構築後は、こちらのドキュメントが参考になる。

🔴新しいIBM Quantum Composerを使ってみる

 前向きに捉えて、新しくなったComposerを使ってみた。簡単な例題として、先のポストで示した「位相キックバックの量子回路」を使う。図2上部のように、量子回路の編集において、その各フェースで、確率振幅と位相を分かりやすく円盤で表示できる。また、図2下部に示すように、基底ベクトル毎の確率計算結果も表示される。

 このようにビジュアルに編集した量子回路に対して生成されるQiskitコードも見ることができる。図3にそれを示す。このコードをコピーして、自分のQiskit環境で使うこともできる。そして、注目すべきは、この画面から、IBM Quantumマシン実機で実行させることができることだ。特に嬉しいことに、利用可能なマシンそれぞれの混み具合(キューに何個のジョブが実行待ちか)を確認できるので、早く実行できそうなマシンを指定できる。性能(誤り発生率など)指標も表示されるので選択の参考にもなる。

 今回は、ibm_brisbaneという名称のマシンを指定したところ、まもなく実行された。実行結果として、1024ショット(デフォルト試行回数)のうちの、各基底ベクトルの出現頻度(Frequency)がヒストグラムで表示される。

 ここで良いことがある。この実行の結果、基底ベクトル|01>の頻度は図4の通り、94%であった。本来は、図2に示した通り、この頻度は理論計算上100%のはずだが、実際のマシンでは、このように数%程度の誤差が生ずる。

 もう一例示そう。図5は、3-qubitの強い量子もつれを起こすGHZと呼ばれる量子回路である。そのシミュレータ(小生自作のアプリ)とQuantumマシン実機(ibm_brisbane)の結果も図4の場合と同様に若干の差異が生じている。理論計算では、右側のシミュレータが示す通り、基底ベクトル|000>と|111>以外の基底ベクトルの頻度はゼロになるはずである。

 現状の本物の量子コンピュータとはこういうものである。それを実感することはとても重要なのではないか。現在の量子コンピュータ開発競争ではこのような誤差の低減を目指しているのだが、量子物理の世界はそういうものだ、として受け入れて利用したいという気にもなる。もちろん、幾つか分野の数理アルゴリズムでは、このような少しの誤差も許容できない場合があることも事実だ。

 IBMは、こういう状況ではあっても、ユーザには、「シミュレータよりも量子コンピュータ実機を使って欲しい」と言っているように思える。そこから得られる知見を今後の研究開発に生かしていくのであろう。

2024年5月15日水曜日

量子計算における位相キックバック(Phase Kickback)

【要旨】量子コンピューティングの(恐らく)中級レベルになると、位相キックバックと呼ばれる現象の利用が重要となる場面がある。その数学モデルを調べる。

🔴 位相キックバックとは

 「キックバック」と言っても、もちろん、最近話題になっている「⚪︎⚪︎資金のキックバック」ではない。「位相のキックバック」のことである。具体例を一つ見てみよう。図1において、レジスタが2つあり、2つのqubitを使うとする。上段のqubitの状態を|0>とし、アダマールゲートHを適用する。下段は|1>に初期設定する。次に、上段を制御ビット、下段を標的ビットとする制御付きZゲート(CZゲート)を適用する。

 この時、CZの前後で、両方のqubitの状態はどのように変わるであろうか。下段のqubitは、上段のqubitの値が1になった時にZゲートが作用するので、|1>が-|1>に変化(相対位相が180度増加)するが、上段のqubitは単に制御用なので変化はないはずである。ところが、実際には、そうはならず、下段のqubitは変化せず、上段のqubitの相対位相が反転する!これは不思議に思える!この現象が、位相キックバックである。

🔴 位相キックバックの数学モデル

 だが、この不思議に思える現象は、図2に示す数学モデルで明確に説明できる。とりあえず、上部qubitに適応される最後「H」と「測定」はここでは無視して欲しい。図1ではCZを用いたが、ここでは一般的に、制御付きユニタリ行列Uを使っている。ただし、Uへの入力状態|v>は、Uの固有状態であるとする。

 図2に示す通り、下段のqubitに起こった位相の変化が直ちに上段のqubitに反映される(キックバックされる)ことが分かる。

 次に、上部qubitに適応される「H」と「測定」のもつ意味を図3に示した。これにより、このHadamard Testと呼ばれる量子回路は、ユニタリ行列Uの固有状態|v>の固有値、従って固有位相を推定できることがわかる。

🔴 位相キックバックの数学モデルの確認

 ここまでで、位相キックバックの仕組みは分かったのだが、念のため、図1でのケースを図2と図3に当てはめてみた結果を図4に示した。

🔴 自作量子回路シミュレータによる位相キックバックの確認

 最後に、自作のシミュレータ(スマホアプリとして作成)を使って、図1に相当する位相キックバックを図5に示した。量子状態|q0q1>の基底ベクトルのそれぞれを円グラフにして、確率振幅(塗りつぶし円の面積)と位相(黒実線の角度)を示している。左隅と中央の図から、上段(Alice)のqubitの位相が、CZの前後で180度反転していることが分かる。また、右端図から、測定結果が必ず1となることも分かる。測定するまでもなく。


2024年5月6日月曜日

量子論理ゲートZの復習(固有値と固有状態)

  時に、量子コンピューティングの基礎に立ち返る。忘れていたことを思い起こす意味もあるが、再訪することで(自分にとって)新しい発見もある。今回は、量子論理ゲートZを復習する。これは、単に量子状態ベクトルをZ軸中心に反時計周りに180°回転させるに過ぎない、というイメージがあるだろう。だが、そこから、量子力学に基づくもっと深い意味を読み取れる。

手作りBloch球も今回リニューアル

(1)ケットベクトルとブラベクトルの積

(2)ケットとブラの積は射影演算である

(3)ユニタリ行列としてのZはエルミートでもある

(4)ObservableとしてのZ:固有値と固有状態はどう関係するか

(5)量子論理ゲートZは、位相シフトゲートΦの特別なケースである。

2024年4月9日火曜日

かなり残念:IBM Quantum Labの廃止...

 😖量子コンピューティングに関して、続けてまた、残念なことが起こった。人生と同じで、量子コンピュータの世界も波乱万丈である。それにしても、かなりショックである。これまで数年間愛用してきたIBM Quantum Labが約1ヶ月後(2024-5-15)に廃止になるとのアナウンスが...これによって、ibm_qsam_simulatorなどのシミュレータが使えなくなるのである!

 悲しい。instructions to download filesが示されている。これを使って、既存のあなたのプロジェクト(ソースコード)をダウンロードして、これ以降は、自分でローカルマシンにQiskit環境を設定してシミュレーションして下さい、とのことである。

 IBMは、今後、開発競争が激化する量子コンピュータ(ハードウェア)に注力するために、今回のようにシミュレータのサービスを停止するとのことのようだ。素人の邪推だが、昨年末のハーバード大学からの衝撃的発表(中性原子方式の量子コンピュータ)によって、戦略を変更する必要が生じたのかもしれない。

 これまで、無償でクラウドでシミュレータを提供してくれたことに感謝するしかない。多分、グラフィカルインタフェースで試すことができるQuantam Composerはサポートし続けるようである。特に心配なのは、これまで使えていた実機の無償提供は続行されるのか否かである。多分、Yesだとは思うが。でも、Quantum Lab自体が削除されるとすれば、どのように実機にアクセスできるのだろうか。

2024年4月8日月曜日

ちょっと残念:IBMのQiskit Algorithms

 😖ここには、ネガティブなことは書かないようにしているのだが、ちょっと残念な状況を書きます。実は、今年に入ってから、IBMの公式サイトにあるQiskit Algorithmsのうちから、かの有名なShor's(素因数分解)やHHL(疎な正則対称行列の逆行列計算)などが、除外(deprecated )されていました。それは知っていました。その理由は、これらの本格的適用に必要な大規模なノイズ耐性量子コンピュータの実現が未だ見通せないためのようです。

 ですが、基本的に優れた有用な量子アルゴリズムとして、教育的な観点から、別の場所には保存されていました。しかしながら、またここに問題がありました。メンテナンスが止まってしまっているところに、ちょうど同じ2月頃に、Qiskitのバージョンが上がり、そのままでは動かなくなっていました。一般的なmigrationのドキュメントはあるのですが、自分で修正して動かすことは面倒そうです。そのままにしてありました。

 そんな時に、雑誌Interface 2024年4月号に、「数学100 - AI/量子/信号処理/画像/暗号/...」という特集が載っていました。"量子"のところに、HHLアルゴリズムの解説があるじゃないですか!

 However、解説はあるものの、動かすプログラムでは、上記のdeprecatedにされたQiskit Algorithmsのものをそのまま使っています。今は、そこにはそれはありません!やるとしたら、保存されているHHLのソースコードを使うことになります。しかし、上記の通り、それは現在のQiskitバージョンと互換性がありません。ちょっと、一息入れてから考えます。

2024年3月16日土曜日

量子コンピュータで動的回路(Dynamic circuits)を使う

要旨:量子コンピューティングでは、量子ビットを測定してしまうとそこでお終いになる。つまり、その測定結果に応じて量子回路を変更することはできない、と思っていたが、最近それができるようになっていた。QiskitでIBM Quantumマシンを使う場合のDynamic Circuits機能がそれだ。

動的回路(Dynamic Circuits)機能
 量子回路を実行していて、あるところで測定を実行したとする。その結果(古典ビット0か1)に応じて、その後に必要な量子ゲートを動的に加えて実行を継続することができる機能[1][2][3]である。具体的には、図1(a)のようなif文による制御、(b)のようなswitch(case)文による制御、それ以外に、forループやwhileループも使える。ただし、使用するシミュレータ、および実機マシンによっては、これらのいくつかはサポートされていないようだ。


動的回路で量子テレポーテーションを実行
 参考資料[3]に示されているように、このような動的回路で思いつくのが、量子テレポーテーションである。量子テレポーテーションの仕組みについては、[4]の記事を参照願いたい。図2に示す、Aliceによる2つの量子q0とq1の測定後、Bobにその古典2ビット情報を通常通信で送るのだが、そこでその量子回路はおしまいになっていた。その後別途、Bobは受信内容を確認し、それに応じたデコード用の量子回路を設定していた。

 この状況に対して、動的回路を図3のように組むことができる。これによって、途中の動的回路を含む、全体で一つの量子回路で動作を完結させることができる。これは、アルゴリズムを確かめる上でとても便利であり、強力である。
 念の為であるが、qc0はどんな状態であっても良い。ここでは一例として、|0>にRX(π/4)を適用した状態とした。もちろん、その状態はBobは知らない訳だが、動的回路の部分はいつもこのままで良く、Bobは送られてきたどんな状態でも再現できるのである。そこが、量子テレポーテーションの驚異的なところである。


量子テレポーテーションの実機による確認 
 さて、図3の量子回路がうまく働くかを、IBM Quantum実機(ibm_kyoto)で確認した結果が図4である。結論を言うと、この図から、この実機では80%の確率で量子テレポーテーションが成功した。全部で1000shotの実行のうち、図4の赤点線で囲ったカウント(合計200)は、何らかのノイズによるエラーであろう。本来はこの部分は全て0となるはずである。
 ここで80%成功とは何か?それは、図4の左側4本のカウントは、いずれも最上位ビット(qc2に対応)が0であることを指す。レジスタqc2の最後でBobが測定する直前に、RY(-π/4)を設定しているので、これによって、元々Aliceがqc0に設定した状態をキャンセルする、すなわち|0>に戻るからである。

 なお、実機ではなくシミュレータで実行した結果は図5のようになった。現状の実機では、シミュレータとの差がこのように生ずる場合がある。

 なお、IBM Quantum Composer(ただし、シミュレータによる実行)でも以下ように同様にできる。だが、古典ビットレジスタCの検査が、図3の場合と異なり、ビット毎ではなく、3ビットの10進数として扱うので、注意が必要である。if文による動的ゲートの設定が4つになっている。

(補足事項1)Quantum Labに置くfile容量に注意
 突然、QuantumのLabサーバ起動しなくなった。ブラウザのキャッシュやクッキーを削除したりしてみたが直らない。Qiskiには、ipynbファイル内で、ブロッホ球やその上のtransition表示や、Latex形式回路図表示などができる。しかし、これらはかなりのファイル容量を占める。一つの回路で35MBにもなっていた。それが数十個もあった。そこが原因だったらしい。これらの表示をコメントアウトしてsaveして、再起動したところ回復したようだ。

(補足事項2)実機使用可能無料枠
 実機での実行を繰り返してきたので、使用状況を見てみた。今月は、無料枠ではあと3分強しか使えない。有効に活用しよう。

参考文献

[1] Classical feedforward and control flow
https://docs.quantum.ibm.com/build/classical-feedforward-and-control-flow

[2] Repeat until success
https://learning.quantum.ibm.com/tutorial/repeat-until-success

[3] @kifumi、動的回路で量子テレポーテーションを実行する
Qiita記事、最終更新日 2023年03月20日

[4] 超高密度符号化と量子テレポーテーション(その3)
https://sparse-dense.blogspot.com/2022/12/blog-post_2.html

2024年3月15日金曜日

動画:量子コンピューティングに親しむためのスマホアプリ

"量子コンピューティングに親しむためのスマホアプリ"動画をここに公開しました。
神奈川工科大学「ITを活用した教育研究シンポジウム2023」で発表したものです。

"量子コンピューティングに取り組む"動画はここに公開しました。
神奈川工科大学「ITを活用した教育研究シンポジウム2022」で発表したものです。

2024年3月13日水曜日

Qiskit API for IBM Quantumが変更になった!

 数週間までまで正常に動いていた、Qiskitコードが、2024-03-10現在、突然エラーが出て動かなくなった。これはどうしたことか。Qiskitドキュメントを調べると、Qiskit 1.0.1になって、かなりの変更があったことが分かった。よくみると、migration guideもあるではないか。それに従って、以下のような点を修正する必要があった。

シミュレータを使う場合:以下のようにして解決
 qiskitからAer, executeなどをimportできなくなった。
 qiskit.tools.visualizationからplot_histogramなどがimportできなくなった。等々。
→別のライブラリから、QiskitRuntimeService等のimportが必要。

IBM Quantum実機を使う場合:以下のようにして解決
 Qiskitの素晴らしい点として、シミュレータibmq_qasm_simulatorで動かしていた量子回路はそのままIBM Quantum実機でも動くことであった。シミュレータの名前を単に、実機の名前、例えばibm_brisbane等に変更するだけであった。

 しかし、こちらも、突然動かなくなったのである。実機で動かす前に、まず、無償で利用できる実機を確認した。登録ユーザの地域で異なるのだろうが、私の場合、ibm_brisbane、ibm_osaka、ibm_kyotoの3つであったが、いずれも、127量子ビットを装備した新鋭機 Eagle r3である。素晴らしい!だが、早速実行させてみると、以下のエラーが発生。しかも、"CX (CNOT) is not supported"という信じ難いエラーメッセージが!

 最初は、戸惑ったのだが、すぐにピンと来ました。このCXやHなどという量子ゲートは数学モデルにすぎない。実機がそのまま実装している訳ではないということだろうと。案の定そのその通りでした。シミュレータで動かしていた時の量子回路をtranspileというツールで変換した後に実機で実行すると成功しました!
 これまでは、実機で使う場合にはシステムが自動transpileをやっていたが、それを止めたと言うことであろう。

 このような状況は、確実な量子コンピュータの進歩の一面と言えるだろう。今後の色々な量子コンピュータ実機はそれぞれ独自の命令セットを持つはずだ。だから、論理レベルと物理レベルを明確に分離しているのだ。従来のプログラミング言語のコンパイラみたいなものが必須になってくる。

Transpileが1分間でわかるビデオ解説
 以下のビデオはとても良いのではないか!最適化レベルもいくつかある!
How can I Transpile a Quantum Circuit? 1 Minute Qiskit
https://www.youtube.com/watch?v=8mrPNSctRIg


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)