Skip to main content
IBM Quantum Platform

演算子バックプロパゲーション (OBP)

演算子バックプロパゲーション(OBP)は、より多くの演算子の測定値を犠牲にして、その端から演算を切り捨てることによって回路の深さを減らす技術である。 演算子バックプロパゲーションを実行する方法はいくつかあるが、本パッケージではClifford摂動理論 [1] に基づいた方法を使用する。

回路を通して演算子をさらに伝搬させると、測定すべき観測値のサイズは指数関数的に大きくなる。 この結果、古典的リソースと量子リソースの両方のオーバーヘッドが発生する。 しかし、いくつかの回路では、結果として得られる追加のパウリ観測量の分布は、最悪の場合の指数関数スケーリングよりも集中する。 このことは、量子オーバヘッドを削減するために、係数の小さい観測値のいくつかの項を切り捨てることができることを意味している。 そうすることで発生する誤差をコントロールし、精度と効率の適切なトレードオフを見つけることができる。


インスタレーション

OBPパッケージは、 PyPI、またはソースからビルドするという2つの方法でインストールできる。 パッケージの依存関係を確実に分離するために、これらのパッケージを仮想環境にインストールすることを検討してください。

からインストールする。 PyPI

qiskit-addon-obp パッケージをインストールする最も簡単な方法は、 PyPI を使うことである。

pip install qiskit-addon-obp

ソースからビルドする

このパッケージに貢献したいユーザーや手動でインストールしたいユーザーは、まずリポジトリをクローンしてください:

git clone [email protected]:Qiskit/qiskit-addon-obp.git
```_
 
and install the package via `pip`. The repository also contains example notebooks. If you plan on developing in the repository, install the `dev` dependencies.
 
Adjust the options to suit your needs:
 
```bash
pip install tox notebook -e '.[notebook-dependencies, dev]'

理論的背景

本パッケージに実装されているOBP手順は、 [1] で詳しく説明されている。 Estimatorプリミティブを使用する場合、量子ワークロードの出力は、QPUを使用して準備された状態に関する1つ以上の期待値 O\langle O \rangle。 このセクションでは、その手順を要約する。

まず、観測値 OO の期待値測定を、ある初期状態 ψ|\psi\rangle と量子回路 UQU_Q の観点から書くことから始める:

OUψ=ψUOUψ.\langle O \rangle_{U|\psi\rangle} = \langle\psi | U^\dagger O U |\psi \rangle.

この問題を古典資源と量子資源の両方に分散させるために、回路 UU を2つのサブ回路、 UCU_CUQU_Q に分割し、回路 UCU_C を古典的にシミュレーションし、次に回路 UQU_Q を量子ハードウェア上で実行し、古典的シミュレーションの結果を用いて観測値 OO の測定を再構築する。

回路を2つの部分回路に分割し、一方の部分回路を古典的に計算し、もう一方の回路を量子ハードウェアを使って測定することを示すOBP図

サブサーキット UCU_C、古典的にシミュレート可能なものを選択し、期待値を計算する

OUCOUC,\langle O' \rangle \equiv U_C^\dagger O U_C,

これは、回路 UCU_C を通して進化した初期演算子 OO のバージョンである。 OO' が決定されると、量子ワークロードが準備され、状態 ψ|\psi\rangle が開始され、回路 UQU_Q が適用され、期待値 OO' が測定される。と書けば、 O\langle O \rangle を測定するのと等価であることがわかる:

ψUQOUQψ=ψUQUCOUCUQψ=ψUOUψ=OUψ \langle \psi | U_Q^\dagger O' U_Q \psi \rangle = \langle \psi | U_Q^\dagger U_C^\dagger O U_CU_Q \psi \rangle = \langle\psi | U^\dagger O U |\psi \rangle = \langle O \rangle_{U|\psi\rangle}

最後に、期待値 O\langle O' \rangle を測定するためには、それがパウリ文字列の和に分解可能である必要がある

O=PcPP,O' = \sum_P c_P P,

ここで、 cPc_P は分解の実係数であり、 PP は、 IIXXYYZZ の演算子からなるパウリ文字列である。 これにより、 OO の期待値を次のようにして再構築することができる

ψUQOψ=PcPψUQPUQψ.\langle \psi | U_Q^\dagger O' |\psi \rangle = \sum_P c_P \langle \psi | U_Q^\dagger P U_Q | \psi \rangle.

用語の切り捨て

この方式は、 UQU_Q の必要な回路深度、量子ハードウェア上での回路実行回数、 OO' の計算に必要な古典計算リソースの量のトレードオフを提供します。一般に、回路をバックプロパゲートすると、測定するパウリ文字列の数とエラー軽減のオーバヘッドは指数関数的に増加します( UCU_C のシミュレーションに必要な古典的リソースと同様)。

幸いなことに、 OO' の分解には、かなり小さい係数が含まれることが多く、 OO の再構成に使われる最終測定値から、それほど誤差を生じることなく切り捨てることができる。 qiskit-addon-obp パッケージにはエラーバジェットを指定する機能があり、あるエラー許容範囲内で切り捨てられる用語を自動的に検索することができる。

クリフォード摂動論

最後に、 qiskit-addon-obp パッケージは、クリフォード摂動論に基づく演算子バックプロパゲーションにアプローチする。 この方法には、様々なゲートをバックプロパゲートすることによって発生するオーバーヘッドが、 UCU_C の非クリフォード性(すなわち、U Cのうち非クリフォード命令で構成される部分がどれだけあるか)に応じてスケールするという利点がある。

OBPへのこのアプローチは、シミュレーション回路( UCU_C )をスライスに分割することから始まる:

UC=s=1SUs=US...U2U1,U_C = \prod_{s=1}^S \mathcal{U}_s = \mathcal{U}_S...\mathcal{U}_2\mathcal{U}_1,

ここで、 SS はスライスの総数を表し、 Us\mathcal{U}_s は回路 UCU_C の単一のスライスを表す。これらのスライスはそれぞれ、逆伝播演算子 OO' を測定するために順番に解析的に適用される。スライスがクリフォード演算か非クリフォード演算かによって、全体の和のサイズに寄与する場合と寄与しない場合がある。 エラーバジェットが割り当てられている場合、各スライスを適用する間に切り捨てが発生する。


次のステップ


参考文献

[1] Fuller, Bryce, et al. "Improved Quantum Computation using Operator Backpropagation" arXiv:2502.01897 [quant-ph] (2025)。

このページは役に立ちましたか?
GitHub に関するバグ、誤字の報告、またはコンテンツのリクエスト。