2022.06.16量子コンピュータの応用先の一つとして物理系のシミュレーション(何らかの基礎方程式に従う系の時間発展の追跡)が期待されています。量子系のシミュレーションはサイズに対して計算コストが指数関数的増加するため、古典コンピュータによるシミュレーションでは限界があるとされています。そこで量子コンピュータで効率的にシミュレートしようと研究が進められています。この記事では量子系のダイナミクスのシミュレーションを量子コンピュータでどのように実現するか、簡単な例で紹介します。1cまとめ量子系のシミュレーションとは量子系のシミュレーションとは量子のダイナミクス(時間発展の様子)を把握することが目的です。量子系のダイナミクスとは何かをおさらいしましょう。量子系はシュレーディンガー方程式と呼ばれる方程式に従って振る舞います。シュレディンガー方程式とは、高校物理で学んだ物体の運動を記述する運動方程式と同じように、量子系の振舞いを記述する方程式です。\hat{H}|\psi(t)\rangle量子系のダイナミクスとはシュレディンガー方程式を解である$|\psi\rangle$の時間発展の様子を掴むことが目的です。ここでハミルトニアン$\hat{H}$が時間変化しない場合を考えると、シュレーディンガー方程式は単純な微分方程式とみなすことが出来るので、解が容易に求まります。(今回は簡単のためこちらのケースを考えていきます。e^{-i\bar{H}t/\hbar}|\psi(0)\rangleこの式は初期の量子状態$|\psi(0)\rangle$に対して何らかの(ユニタリ)演算$e^{-i\bar{H}t/\hbar}$が作用していると読み取れます。$e^{-i\bar{H}t/\hbar}$の部分を量子回路で表現出来ればこの量子系のダイナミクスを量子コンピュータでシミュレーション可能であることが分かります。tight-bindingモデルの例ハミルトニアン$\bar{H}$が抽象的だとイメージしずらいので、具体例としてtight-bindingモデルという物理のモデルを考えてみましょう。モデルの詳細は本記事の対象外なので、ここではただの数式とみなします。J=1$とすると、この量子系のダイナミクスは以下のように表すことが出来ます。>}(X_iX_j+Y_iY_j)]$を量子回路で表したいわけですが、このままの形式では1・2量子ビットゲートで表現できません。そこで登場するのがトロッター分解というテクニックです。トロッター分解トロッター分解とは数学的には以下の定義を持ちます。B$がエルミート行列のとき、以下が成り立つ。t=t/n$の間であれば、右辺で表現される量子回路は$A,B$の各項を表現する量子回路を並べた結果で近似できることを表しています。トロッター分解をtight-bindingモデルの解に適用すると以下のように表すことが出来ます。式を見やすくするために2粒子系で考えます。tY_1Y_2]$を量子回路で表現出来ればよいということが分かりました。tY_1Y_2]$がどんな量子ゲートで表すことが出来るのかを考えていきます。Z]$から考えてみましょう。Z]$とは以下の位相シフトを行うゲートと考えることが出来ます。$|0\rangle$に作用する場合・・・$e^{-it}$$|1\rangle$に作用する場合・・・$e^{it}$このような振る舞いをする身近な量子ゲートを思い出してみると、Z回転ゲートがマッチすることが分かります。R_Z(2t)ZZの場合では指数がZZの場合を考えてみましょう。同じように考えると次の位相シフトが考えられます。$|00\rangle$または$|11\rangle$に作用する場合・・・$e^{-it}$$|01\rangle$または$|10\rangle$に作用する場合・・・$e^{it}$この条件は$|1\rangle$の状態の量子ビットが偶数か複数かと読み替えることが出来ます。その判定はCNOTゲートを使うことで実現可能です。1番目の量子ビットを制御、2番目の量子ビットを標的ビットとみなすと、CNOTを作用させたときの状態によって判定が可能です。以上を踏まえると指数がZZの場合はCNOTとZ回転ゲートで表せることが分かりました。XX・YYの場合ZZが分かってしまえば、Z軸から見ていた世界をX・Y軸から見ればいいだけです。これを可能にするのがクリフォードゲートという量子ゲート群になります。クリフォードゲートとはパウリゲートを他のパウリゲートにマッピングする量子ゲートのことで、アダマールゲートやSゲートが該当します。HZH=X\\SXS^{\dagger}=YつまりZ軸で見ていた世界はアダマールゲートで挟むとX軸から見る世界となり、X軸で見ていた世界はSゲートで挟むとY軸から見る世界となります。このように考えると、XX・YYは以下の量子回路で表すことが出来ることは納得がいくでしょう。以上でtight-biindingモデルのダイナミクスをシミュレーションするための考え方は理解いただけたと思います。Springの第1問で扱われています。ここではせっかくなので問題の一部にトライしてみましょう。tX_iX_j]$を量子回路で表現せよという問題です。Qiskitで次のように書くことが出来ます。XX_qc.to_instruction()XX_qc.draw('mpl')ただしZZに関しては事前定義が必要です。tY_iY_j]$を量子回路で表現せよという問題です。1c3粒子系のtight-bindingモデルにおいてトロッター回路を作成せよという問題です。こちらは長くなるため別の記事とします。Challengeで扱ったtight-bindingモデルを例に紹介しました。トロッター分解を利用することで上手く1・2量子ビットゲートで表現可能となり、量子回路を構築することが可能ということが分かりました。本記事の内容はこちらを参考にしているのでより詳しく学びたい方はぜひご覧ください。量子コンピュータを勉強したいけど、どんな参考書を選べばいいか悩んでいるあなたへ、1年間勉強してみた私が読んだ9冊の参考書のレビューを紹介します。コメントをキャンセルメールアドレスが公開されることはありません。※サイト上に表示された文字を入力してください。Advocate量子コンピュータのコミュニティ運営・イベント登壇にて活動中。本ブログの内容は個人の意見であり、会社を代表するものではありません。量子コンピュータお問い合わせ。