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は、位相シフトゲートΦの特別なケースである。