メインコンテンツへスキップ

自然のシミュレーション

量子コンピューターによる自然のシミュレーションについて、Olivia Lanes によるこちらの動画をご覧ください。または、YouTube で別ウィンドウを開いて視聴することもできます。

このレッスンでは、以下のチュートリアルのコンテンツを使用します。

確率的誤差増幅によるユーティリティスケールの誤差緩和チュートリアル

はじめに

量子コンピューターの最も魅力的な応用のひとつが、自然現象のシミュレーション能力です。このレッスンでは、量子コンピューターが量子ダイナミクスの問題、すなわち量子系の時間発展を理解するためにどのように使われるかを探ります。

まず、これらのシミュレーションを実施するための一般的な手順を広く概観します。次に、具体的な例として、量子ユーティリティの概念を示した IBM が 2023 年に発表した実験を取り上げます。この実験は、実際の量子ハードウェアによる量子ダイナミクスシミュレーションの実践的な手順と意義を理解するための優れたケーススタディとなっています。 このレッスンを終える頃には、研究者がこれらの課題にどのようにアプローチしているか、そして量子シミュレーションが自然界の理解を深める上でなぜこれほど有望視されているかについて、より明確なイメージを持てるようになるでしょう。

リチャード・ファインマンは 1959 年、カリフォルニア工科大学(Caltech)で非常に影響力のある講義を行いました。その講義は「There's Plenty of Room at the Bottom(底には十分な余地がある)」という題名で、ミクロなスケールに広がる未開拓の可能性を遊び心を込めて示唆したものです。ファインマンは、原子・亜原子レベルの物理学の多くがまだ解明されていないと主張しました。

この講義の重要性は、技術が進歩した 1980 年代になってさらに高まりました。この時期、ファインマンは再び Caltech で「Simulating Nature with Computers(コンピューターによる自然のシミュレーション)」という論文を発表し、大胆な問いを投げかけました。量子レベルで自然の振る舞いを正確に再現するシミュレーションをコンピューターで実行できるだろうか、というものです。ファインマンは、原子プロセスを粗い近似でモデル化するのではなく、量子力学の法則そのものを活用したコンピューター、つまり自然を単にモデル化するのではなく「エミュレート」するコンピューターを使うことを提案しました。

このレッスンでは、まさにこのタイプの物理シミュレーションを取り上げます。

前回のエピソードで紹介したこのタイムライングラフィックを思い出してください。スペクトルの一方の端には、簡単に解けるため量子コンピューターの高速性を必要としない問題があります。

易しい問題から難しい問題まで、量子コンピューターが不要なものから耐障害性量子コンピューターが必要なものまでの広がりを示す図。現在は中間の問題に注目していることを示している。

反対側の端には、完全な耐障害性量子マシン(まだ利用できない技術)を必要とする非常に困難な問題があります。幸いなことに、多くのシミュレーション問題はこのタイムラインの中間あたりに位置すると考えられており、現在の量子コンピューターで既に効果的に取り組める範囲に入っています。自然のシミュレーションは幅広い有望な応用の基盤となっているため、この見通しには多くのわくわくする理由があります。

以下では、自然シミュレーションの一般的なワークフローと、よく知られた研究の結果を再現するための具体的なワークフローの例を紹介します。

一般的なワークフロー

量子コンピューティングをこれらの魅力的な分野に適用する前に、典型的なシミュレーションワークフローの基本的な手順を理解しておくことが重要です。

  1. 系のハミルトニアンの特定
  2. ハミルトニアンのエンコーディング
  3. 状態の準備
  4. 状態の時間発展
  5. 回路の最適化
  6. 回路の実行
  7. 後処理

まず、対象となる量子系を特定します。これにより、その時間発展を支配するハミルトニアンと、初期特性(状態)の意味のある記述が決まります。次に、この状態の時間発展を実装するための適切な手法を選択します。このワークフローの最初の 4 つのステップは、Qiskit パターンフレームワークのマッピングステップに相当します。

時間発展回路を設定した後、実際の実験を行う段階に進みます。これには通常、時間発展アルゴリズムを実装する量子回路の最適化、量子ハードウェアでの回路の実行、そして結果の後処理が含まれます。これらは Qiskit パターンフレームワークの最後の 3 つのステップと同じです。

次に、コーディングに移る前に、これらのステップが何を意味するのかを説明します。

1. 系のハミルトニアンの特定

シミュレーション実験の最初の重要なステップは、系を記述するハミルトニアンを特定することです。多くの場合、ハミルトニアンはすでに確立されています。しかし、系の小さな部分からのエネルギー寄与を合計することで構築することも多く、通常は項の和として表されます。

H=iNHiH=\sum_i^N {H_i}

ここで、各項 HiH_i は全ハミルトニアン HHNN 個の局所的なサブシステム(単一粒子や粒子の小さなグループなど)のひとつに作用します。区別のつかない素粒子の場合は、系がフェルミオンかボゾンかを判断することが重要です。フェルミオンはパウリの排他原理に従い、電子のように同一のフェルミオンが同じ量子状態を占めることはできません。ボゾンは複数が同じ量子状態に存在できる点でフェルミオンと異なり、この違いが系の統計とモデル化の方法に影響します。

実際には、格子上のスピンのように、要素がよく分離されているかラベル付けされており、区別可能であると仮定される物理系がよく扱われます。

スピンを持つ格子と、フェルミオンである電子で結合し�た分子。

この系は、格子上に配置された磁気双極子スピンで構成され、アドレスを数えることで区別可能な粒子として扱われます。この系は横磁場イジングモデルで記述され、そのハミルトニアンは 2 つの部分の和で構成されます。

H=iNHi=J<i,j>ZiZj+hi=0NXiH = \sum_i^N {H_i} = J \sum_{<i,j>}Z_iZ_j + h\sum_{i=0}^N X_i

第 1 項は隣接するスピン間の相互作用エネルギーを表します。ここで <i,j><i,j> は格子上で直接接続されているすべてのスピン対の和を示し、ZiZ_iZjZ_j はサイト iijj のスピン状態を表すパウリ Z 行列、JJ はこの相互作用の強さを定義する結合定数です。第 2 項は系全体に印加された外部磁場の影響を表します。ここで XiX_i はサイト ii の個々のスピンに作用するパウリ X 行列、hh はこの外部磁場の強さを示します。

2. ハミルトニアンのエンコーディング

次のステップは、ハミルトニアンを量子コンピューターが処理できる形式に変換することで、これをエンコーディングと呼びます。このエンコーディングのプロセスは、系の粒子の種類(区別可能か区別不可能か、区別不可能な場合はフェルミオンかボゾンか)に大きく依存します。

ボゾン、フェルミオン、格子上のスピンのような区別可能な粒子など、さまざまなシステムタイプに対する異なるマッピングの可能性を示すフローチャート。

格子上に固定された 1/21/2 スピンのような区別可能な粒子の系では、上で簡単に見たように、ハミルトニアンはすでに量子ビットと互換性のある言語で書かれていることが多いです。例えばパウリ Z 演算子はスピンの上下を自然に表すため、特別なエンコーディングは必要ありません。

フェルミオンやボゾンの区別不可能な粒子をシミュレートする場合、エンコーディング変換を適用する必要があります。これらの粒子は「第二量子化」と呼ばれる特殊な数学的枠組みで記述され、各量子状態の占有数を 生成 演算子と 消滅 演算子で追跡します。生成演算子 a^i\hat{a}_i^\dagger は状態 ii に粒子を 1 つ追加し、消滅演算子 a^i\hat{a}_i は状態 ii から粒子を 1 つ除去します。この第二量子化の枠組みに基づき、フェルミオンは Bravyi-Kitaev 変換や Jordan-Wigner 変換で変換できます。Jordan-Wigner 変換は、jj 番目の量子状態にフェルミオンを詰めるフェルミオン生成演算子 f^j=(k<j(Zk))(Xj+iYj2)\hat{f}_j^\dagger = \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j + i Y_j}{2} \Bigr) と、jj 番目の状態からフェルミオンを取り出すフェルミオン消滅演算子 f^j=(k<j(Zk))(XjiYj2)\hat{f}_j= \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j - i Y_j}{2} \Bigr) を定義します。この Jordan-Wigner 変換の詳細は、Quantum Computing in Practice エピソード 5 - マッピング でご確認いただけます。同様に、ボゾンも Holstein-Primakoff 変換など、量子ビットで表現するための独自のエンコーディング手法が必要です。

最終的に、直接的な経路であれ変換が必要であれ、目標は同じです。系のハミルトニアンを、量子コンピューターが理解・実行できるパウリスピン演算子の形式で表現することです。

3. 状態の準備

目的のハミルトニアンを量子コンピューターのゲートセットにエンコードした後、次の重要なステップはシミュレーション開始のための適切な初期量子状態を選択することです。初期状態の選択は、変分量子固有値ソルバー(VQE)などの変分アルゴリズムの収束だけでなく、時間発展とサンプリングの精度・効率にも影響します。本質的に、初期状態は計算の出発点となり、モデル化される量子系から有用な観測量を抽出するための基盤を形成します。理想的には、この状態は研究対象の系の物理的に意味のある配置を表すべきです。

多くの量子化学シミュレーションでは、ハートリー・フォック状態が良い出発点となります。第二量子化の言語では、ハートリー・フォック状態(ϕHF|\phi\rangle_{HF})は、電子がない状態である真空状態(vac=01...0k...0N=0N|vac\rangle = |0_1 ... 0_k ... 0_N\rangle = |0\rangle ^{\otimes N})に、最低エネルギーの各軌道への生成演算子(a^i\hat{a}_i^\dagger)を適用して生成されます。

ϕHF=i=1ka^i0N=a^1...a^k01...0k...0N|\phi\rangle_{HF} = \prod\limits_{i=1}^k \hat{a}_i^\dagger |0\rangle ^{\otimes N} = \hat{a}_1^\dagger ... \hat{a}_k^\dagger |0_1 ... 0_k ... 0_N\rangle

また、真の基底状態と大きな重なりを持つ、容易に準備できるアンザッツも、基底状態エネルギーの探索などの化学問題における良い初期状態として使えます。

より一般的には、任意の nn 量子ビット状態を、規格化条件を満たす係数 aia_i を持つ計算基底状態 ci∣c_i\rangle の重ね合わせとして書くことができます。このような状態の準備は、一般的に、慣例により通常はすべてゼロの標準基底状態である初期状態に特定の演算子 O^\hat{O} を適用することで行えます。

ψ=i=02n1aici=O^0nwithi=02n1ai2=1|\psi\rangle = \sum_{i=0}^{2^n-1}{a_i |c_i\rangle}=\hat{O}|0\rangle^{\otimes n}\\ \text{with} \qquad \sum_{i=0}^{2^n-1}{|a_i^2|}=1

しかし、このプロセスには指数関数的な数の CNOT ゲートが必要になることが多く、一般的にリソースを多く消費します。そのため、実装のリソース要求がより控えめな初期状態の準備に焦点を当てることが多いです。一般的で実用的な選択肢は積状態で、量子ビットがエンタングルされておらず、単一量子ビット演算だけで準備できるため、状態準備のリソース要求と複雑性を大幅に削減できます。 4. 状態の時間発展

初期状態が設定されたので、いよいよシミュレーション本体を開始できます。系の状態 ϕ(t=0)|\phi(t=0)\rangle がある時間 tt 後に ϕ(t)|\phi(t)\rangle へどのように変化するかを調べます。量子力学では、この発展は時間発展演算子と呼ばれる単一の数学的演算で記述されます。

U(t)=eiHtU(t) = e^{-iHt}

ここでは慣例として =1\hbar=1 と設定しています。この演算子を初期状態に適用すると最終状態が得られます。ϕ(t)=eiHtϕ(t=0)|\phi(t)\rangle = e^{-iHt}|\phi(t=0)\rangle

しかし、ハミルトニアンが異なる部分の和である場合、完全な演算子 eiHte^{-iHt} を直接実装する量子回路を構築することは通常不可能です。そこで、トロッター化が必要になります。

簡単に言えば、トロッター化とは行列の指数関数(ここではハミルトニアン HH)を近似する手法で、特に指数部分に非可換演算子([HA,HB]0[H_A, H_B] \neq 0)が含まれる場合に使用します。ハミルトニアン HH が可換でない複数の演算子で構成されている場合、その指数を分離することはできません。

ei(HA+HB)teiHAteiHBte^{-i(H_A + H_B)t} \neq e^{-iH_A t}e^{-iH_B t}

有用なアプローチは、小さな時間間隔 t/nt/n での時間発展の指数関数を、合計 nn 回交互に適用することです。これら 2 つの非可換項の場合、次のように書けます。

eiHt(eiHAt/neiHBt/n)ne^{−i H t}\approx \left(e^{−i H_A t/n}e^{−i H_B t/n}\right)^n

時間発展演算子を小さなピースに分割したトロッター化時間発展演算子を示す量子回路。

この近似によって生じる誤差をトロッター誤差と呼びます。nn を増やすことでこの誤差を減らせますが、コストがかかります。より高精度の高次公式(2 次式やその他の変形)も存在します。例えば、2 次公式は対称なパターンでステップを適用することで精度が向上します。

1次式:eiHt(jeiHit/n)n2次式:eiHt(j=1NeiHjt/2n)n(k=N1eiHkt/2n)n\begin{aligned} \text{1次式:} & \qquad e^{-iHt}\approx \left(\prod_j{e^{-iH_i t/n}}\right)^n\\ \text{2次式:} & \qquad e^{-iHt}\approx \left(\prod_{j=1}^N{e^{-iH_j t/2n}}\right)^n\left(\prod_{k=N}^1{e^{-iH_k t/2n}}\right)^n \end{aligned}

ここで NN はこのように分割されるハミルトニアン内の非可換項 HjH_j の数、nn はこの発展が分割される小さな時間ステップの数です。2 次の処理における第 2 の積では、演算子の順序が逆になっている点に注意してください。

詳細については、量子対角化アルゴリズム コースのトロッター化のセクションをご参照ください。 5. 回路の最適化

トロッター化された回路を生成した後、マッピングステップが完了し、回路の最適化に進むことができます。このプロセスには以下の主要なタスクが含まれます。

  • 量子ビットレイアウトの確立:回路の抽象的な量子ビットをハードウェア上の物理的な量子ビットにマッピングします。ハードウェアのアーキテクチャには特定の接続性の制約があることが多い一方、量子回路の設計では通常、任意の量子ビットが他の量子ビットと相互作用できると仮定しているため、このステップが必要です。
  • スワップゲートの挿入:デバイス上で直接接続されていない量子ビット間の相互作用を可能にするために、必要に応じて挿入します。
  • 回路のゲートを命令セットアーキテクチャ(ISA)命令に変換:ハードウェアが直接実行できる形式にします。
  • 回路の最適化を実行:回路の深さとゲート数を削減します。この最適化は、量子ビットが特定のハードウェア接続に割り当てられる前の仮想回路に対して、より早い段階で適用することもできます。

この最適化プロセスの多くは Qiskit のツールによって自動的に処理されることに注意してください。これがどのように機能するかは、このレッスンの後半で詳しく説明します。

6. 回路の実行

最適化ステップが完了したら、プリミティブを使って回路を実行する準備が整います。ここでは、系の特定の特性が時間とともにどのように変化するかを理解することを目的としたシミュレーション実験を考えています。この目的のためには、これらの特性に対応する観測量の期待値を測定できる Estimator プリミティブが最適な選択です。

次に、Estimator の精度を向上させるために、誤差抑制・緩和技術 などのオプションを使用します。最後に、実験を実行して結果を収集します。

7. 後処理

最後のステップは、収集したデータを後処理することです。これには、測定された期待値の抽出、または Sampler プリミティブが使用された場合は計算基底でのサンプリングされた確率分布の抽出が含まれます。関連する観測量の期待値のみが必要な場合、これらは Estimator プリミティブから直接取得できます。生の結果として、または誤差緩和が適用された形で利用可能です。多くの場合、これらの測定された期待値は、他の関心のある量を含む追加計算の出発点となります。このような追加計算は通常、量子計算を必要とせず、古典コンピューターで効率的に実行できます。

「ユーティリティ」論文の再現

備考

この部分は、確率的誤差増幅によるユーティリティスケールの誤差緩和 チュートリアルのハイレベルなウォークスルーです。このチュートリアルは、Evidence for the Utility of Quantum Computing Before Fault Tolerance という論文の結果を再現しています。参照されているチュートリアルをこのセッションと一緒に開いて読むことを強くお勧めします。

ここでは、IBM が 2023 年に発表した非常に影響力のある論文、Evidence for the Utility of Quantum Computing Before Fault Tolerance(しばしば「ユーティリティ論文」と呼ばれる)の具体的な例を検討します。

学術誌 Nature に掲載されたユーティリティ論文と呼ばれる記事のカバーアート。

この論文は発表されるとすぐに、量子コンピューティングコミュニティ内でランドマーク的な研究となりました。その中心的な主張は、127 量子ビットと 2,880 ゲートを使用したノイズのある量子コンピューターが、同じ回路の正確なシミュレーションを試みるブルートフォース古典シミュレーション手法では対応できない量子回路に対して、正確な期待値を生成できるというものです。

この研究が特に重要だったのは、量子コンピューターが、正確な解が事前に不明なシナリオ、特にテンソルネットワークアルゴリズムなどの近似古典シミュレーション手法の結果を検証・比較するために使用できることを示したからです。

この研究のもうひとつの注目すべき点は、広く再現されていることです。研究者やユーザーは現在、IBM のクラウドアクセス可能な量子システムと Qiskit ソフトウェアフレームワークを使用して、実験を再現・検証できます。以下では、IBM のチュートリアル をステップごとにレビューして、この再現を自分で行う手順をご案内します。

このレッスンでは、問題を量子デバイスが処理できる入力に変換するための具体的な手順について説明します。外部磁場にさらされた格子上に配置された磁気双極子スピン系における全磁化のダイナミクスのシミュレーションに焦点を当てます。この系は横磁場イジングモデルで記述でき、スピン間の ZZ 相互作用の調整可能な値と外部横磁場(XX を使ってパラメータ化された BxB_x)の強さに対応するパラメーターを持つパラメータ化量子回路で表現します。

上または下を向くスピンを持つ格子上のスピン。

このシリーズは「実践的な量子コンピューティング」というタイトルであるため、結果の品質を向上させるために使用される実験的手法の詳細についても説明します。重要な手順のひとつは、ゲート忠実度が低い、または脱コヒーレンス時間が短い「不良」量子ビットを特定して除去することです。このような問題のある量子ビットは、実験結果に大きな影響を与える可能性があります。問題のある量子ビットは、不適切なキャリブレーションや二準位系(TLS)との相互作用から生じることがあります。これらの量子ビットを除去すると、ハードウェアのネイティブトポロジーが変化し、系がシミュレートされる格子が実質的に変わります。

さらに、トロッター化を使用して系の時間発展を実装するパラメータ化量子回路をどのように構築するかについても説明します。このプロセスの重要な部分は、回路内のエンタングリング層を特定することで、これは主要な誤差緩和技術において重要な役割を果たします。

Qiskit パターン ステップ 1:マップ

チュートリアル は、上で説明した一般的なアプローチと同様にマッピングステップを実行します。この問題に特有の点として、チュートリアルでは以下を行います。

  • パラメータ化されたイジングモデル回路の作成
  • エンタングリング層の作成と不良量子ビットの除去
  • 回路のトロッター化バージョンの生成

チュートリアルでは、ノートブックの早い段階でいくつかのヘルパー関数を作成することから始めます。これらの関数は、作業を進める際のプロセスを簡略化するように設計されています。これらは手順の必須部分ではありませんが、同様の実験を行う際の良い慣行です。問題を管理しやすいコンポーネントに分解しましょう。含まれる関数は以下の通りです。

  • 量子ビット結合の除去
  • 量子ビット結合の定義
  • 層結合の構築
  • エンタングリング層の構築
  • トロッター化された回路の定義

ここでは、これらの関数に関連するトピックをもう少し詳しく探ってみましょう。 層結合

層結合は、シミュレーション中に量子ビットが隣接量子ビットとどのように相互作用するかを定義します。私たちの量子デバイスは、量子ビットを接続するための独特なパターンである重ヘキサゴナルレイアウトを使用しています。このレイアウト内で、量子ビット間の接続(「エッジ」と呼ばれる)は 3 つの異なるセットに分けられます。重要なことに、同じセット内の 2 つの接続が量子ビットを共有することはありません。この構成は、実際の量子コンピューターでは量子ビットは任意の時点で 1 つの 2 量子ビットゲートにしか参加できないという重要なハードウェア制約に対処しています。

層結合のカラーコードマップ。特定の量子ビットでは同時に 1 つの 2 量子ビットゲートしか実行できないにもかかわらず、量子コンピューター全体で 2 量子ビットゲートが実行できることを強調している。

すべての接続を 3 つの別々の層に構成することで、2 量子ビットゲートをデバイス全体に 3 回の連続したラウンドで適用できます。これにより、各層でどの量子ビットも 1 つ以上のゲートに関与しないことが保証されます。これらのゲートはイジングモデルの ZZ 相互作用を実装し、シミュレーションの各時間ステップ(各トロッターステップ)で繰り返されます。

さらに、ツイリングと呼ばれる技術がデバイスのノイズ特性を変更するために採用されています。ツイリングは、単純なノイズモデルでも物理的なエラーをより正確に表現できるようにノイズを変換します。この改良により、ノイズのより精密な特性評価が可能となり、誤差緩和戦略の改善に活用できます。 「不良」量子ビットの除去

次のステップは、実験に使用できる物理量子ビットのリストから「不良」量子ビットを除去することです。量子ビットが「不良」になる理由はさまざまです。単純にキャリブレーションの不良で、再キャリブレーションで修正できる場合もあります。その他の場合は、二準位系(TLS)欠陥として知られるものに関連する、より複雑な問題です。これらの TLS 欠陥は量子ビットパラメーターと緩和に変動を引き起こします。解決するには多くの場合、システム全体をウォームアップしてから再び冷却する必要があり、このプロセスには時間がかかり、クラウドを介してリモートで量子ハードウェアにアクセスする場合には実行できません。

現時点では、最もシンプルなアプローチは、これらの問題のある量子ビットを実験で使用する物理量子ビットのプールから除外することです。IBM Quantum Platform® は、QPU 上でどの量子ビットが性能不足かを簡単に特定できます。QPU を開いてプラットフォーム上で特性を直接視覚化するか、プラットフォームから CSV ファイルとしてデータをダウンロードできます。次に、除外する量子ビットのリストを作成し、デバイス上の物理量子ビットの総セットから除去します。

ピンク色で示された低パフォーマンス量子ビットを含む量子コンピューターのレイアウト。

信頼性の低い量子ビットを除去することで、系の挙動がより予測可能になり、実験の精度が向上します。また、より良いノイズモデリングが可能になり、効果的な誤差緩和戦略の実装に不可欠です。 トロッター化された回路

いよいよトロッター化された回路を構築する時が来ました。先述の通り、トロッター化は時間発展を離散的なステップに分解するため、使用するステップ数を選択する必要があります。この例では 6 ステップを選択します。一般的に、このアプローチはアルゴリズムによって導入される近似誤差であるトロッター誤差と、脱コヒーレンスによる誤差のバランスを取ることを含みます。トロッターステップの数を増やすと近似誤差は減りますが、より深い量子回路が必要となり、脱コヒーレンスノイズの影響を受けやすくなります。

この回路は、外部磁場の強さを表すシータパラメーター、層間の結合、ステップ数、量子ビット数、そしてもちろんデバイスバックエンドの選択など、いくつかのパラメーターを使って定義されます。系の磁化は外部磁場の強さに依存するため、異なる磁場値でシミュレーションを実行することが有益です。この変化は回路の RX ゲートの異なる回転角に対応します。

from qiskit.circuit import Parameter

num_steps = 6 #Trotter steps
theta = Parameter("theta")
circuit = trotter_circuit(
theta, layer_couplings, num_steps, qubits = good_qubits, backend = backend
)
num_params = 12

# 12 parameter values for Rx between [0,p/2].
#Reshape to outer product broadcast with observables

parameter_values = np.linespace(0,np.pi/2,num_params).reshape((num_params,1))
num_params = parameter_values.size

Qiskit パターン ステップ 2:最適化

回路を生成したので、次のステップ は最適化です。このプロセスの最初の部分は、パスマネージャーの定義です。Qiskit SDK のコンテキストでは、トランスパイルとは入力回路を量子デバイスでの実行に適した形式に変換するプロセスです。この変換はトランスパイラーパスと呼ばれる一連のステップを通じて行われます。 パスマネージャーはこれらのトランスパイラーパスのリストを保持し、回路に適用できるオブジェクトです。作成するには、目的のトランスパイラーパスのリストで PassManager を初期化します。最終的に、パスマネージャーは ISA 回路(バックエンドの命令セットアーキテクチャ(ISA)の観点で表現された回路)を生成します。つまり、回路はバックエンドハードウェアにネイティブなゲートを使用して表現されますが、デバイスで回路を実行するために必要なタイミング情報はまだ含まれていません。

Qiskit パターン ステップ 3:プリミティブを使用して実行

いよいよ 回路を実行する 時が来ました。この実験の主要なツールとして Estimator を使用します。目的は系の全磁化を測定することであり、Estimator は観測量の期待値を推定するように特別に設計されているため、ここでは理想的な選択です。 この段階では、誤差緩和の設定も重要です。結果の精度を向上させるために零ノイズ外挿(ZNE)を適用します。チュートリアルでは、外挿モデルを評価するための 2 つ以上のノイズ係数値を指定し、増幅方法として「確率的誤差増幅」(PEA)を選択することがわかります。PEA は他のオプションよりも大幅に優れたスケーリング特性を持つため、この実験に適しており、100 量子ビット以上のシステムを扱う際には重要です。

これが実験を実行するために必要なすべてです。

誤差緩和の補足

後処理に進む前に、零ノイズ外挿(ZNE)が何を意味するのかを簡単に確認しましょう。この概念は以前のエピソードで触れましたが、簡単に復習する価値があります。ZNE は、量子回路の実行中に発生する未知のノイズの影響を、そのノイズを制御された方法でスケーリングできる場合に低減するように設計された誤差緩和技術です。この手法は、期待値が既知の関数に従ってノイズとともにスケーリングするという仮定に基づいています。

A(λ)=A(0)+k=0makλk+R,\langle A(\lambda)\rangle = \langle A(0)\rangle + \sum_{k=0}^m {a_k \lambda^k}+R,

ここで λλ は意図的に増幅できるノイズ強度を表します。

ZNE の実装プロセスは以下のステップで構成されます。

  1. さまざまなノイズ係数 λ1λ_1λ2λ_2、… に対して回路ノイズを増幅します。
  2. 各ノイズ増幅回路を実行して、対応する期待値 A(λ1)\langle A(\lambda_1)\rangleA(λ2)\langle A(\lambda_2)\rangle、… を測定します。
  3. これらの結果を零ノイズ限界 A(λ0)\langle A(\lambda_0)\rangle まで外挿します。

期待値、ノイズ増幅された同じ期待値、そして零ノイズの場合に外挿された値のプロットが示されている。

この技術により、ノイズがない場合の結果を推定でき、量子計算の精度が向上します。

ZNE を効果的に実装する際の主な課題は、期待値の正確なノイズモデルを開発し、制御された十分に理解された方法でノイズを増幅することです。ZNE でのノイズ増幅の一般的な手法には、キャリブレーションによるパルス継続時間のスケーリング、恒等サイクルを使ったゲートの繰り返し、パウリチャネルのサンプリングによるノイズの追加(確率的誤差増幅(PEA)として知られる手法)などがあります。

これらの中で PEA がよく選ばれる理由はいくつかあります。

  • パルスの伸張は計算コストが高い。
  • 恒等挿入を使うゲートフォールディングは、ノイズバイアスの保持に対する強固な理論的保証がない。
  • PEA はネイティブノイズ係数で実行される任意の回路に適用できるが、事前にノイズモデルを学習する必要がある。

ZNE のための 3 つのノイズ増幅手法が示されている:パルスの伸張、ゲートフォールディング、確率的誤差増幅。

PEA は、確率的誤差キャンセル(PEC)で使われるものと同様の層ベースのノイズモデルの仮定の下で動作します。しかし PEC とは異なり、通常回路ノイズとともに指数関数的に増大するサンプリングオーバーヘッドを避けられます。この効率性により、PEA は ZNE でのノイズ増幅における実用的で堅牢なアプローチとなり、より信頼性の高い量子誤差緩和を実現します。 ノイズモデルを特性評価するために、まず回路内の 2 量子ビット演算の異なる層を特定する必要があります。これらの層のそれぞれに対して、2 量子ビットゲートにパウリツイリング手続きを適用します。これはノイズが減衰ノイズモデルで正確に記述できるようにするためです。次に、さまざまな深さでの恒等層のペアを繰り返し、最後に忠実度値をフィッティングして各ノイズチャネルのエラー率を決定します。

この手法を概念的に理解することは有益ですが、Qiskit での手動実装ははるかにシンプルです。付属のチュートリアルで示されている通りです。

スパースパウリ・リンドブラッドノイズモデルを学習するためのステップが示されている。

Qiskit パターン ステップ 4:後処理

実験が完了したら、後処理 によって結果を確認できます。プロットされたデータの点線のグレーの線は、近似誤差を低いしきい値に抑えた近似古典手法を用いて得られた結果を表しています。最初に選択したさまざまなノイズ係数の生データポイントは、この点線から明らかにずれています。対照的に、青の実線は ZNE 処理を適用した後のデータを示しており、結果が正確な値に顕著に近づいていることがわかります。 要約すると、通常のノイズ条件(ノイズ係数 nf=1.0)の下で得られた値は、正確な結果から大幅にずれています。一方、緩和された値は正確な値と密接に一致しており、PEA ベースのノイズ緩和技術の有効性を示しています。

ユーティリティ論文で解かれた問題の正確な解、非緩和の解、緩和された解のプロット。

まとめ

学んだことを簡単にまとめます。

  • 量子シミュレーションは、短中期的に最も有望な応用分野のひとつです。
  • 製薬から高エネルギー物理学、材料科学まで、幅広い応用があります。
  • 2023 年に IBM が発表したユーティリティ論文は、量子コンピューターを科学的発見に活用するための方向性を示し、その論文に付属する関連チュートリアルを詳しく確認しました。
  • シミュレーション問題を最初から最後まで取り組むための手順は比較的わかりやすく、この動画とチュートリアルをより多くのシミュレーション問題のガイドとして活用いただけることを願っています。

コース終了後のアンケート

コースを修了おめでとうございます!以下の 簡単なアンケート にご記入いただき、コースの改善にご協力ください。いただいたフィードバックは、コンテンツの品質向上とユーザーエクスペリエンスの改善に役立てます。ご協力ありがとうございます!