Gate Cutting による Circuit 深度の削減
このチュートリアルでは、遠距離の Gate を切断することで Circuit の深度を削減し、ルーティングによって導入されるスワップ Gate を回避します。
ここでは、以下の Qiskit パターン の手順を実行します:
- Step 1: 問題を量子 Circuit と演算子にマッピングする:
- ハミルトニアンを量子 Circuit にマッピングします。
- Step 2: 対象ハードウェア向けに最適化する [カッティング・アドオンを使用]:
- Circuit と観測量を切断します。
- ハードウェア向けにサブ実験をトランスパイルします。
- Step 3: 対象ハードウェアで実行する:
- Step 2 で得られたサブ実験を
Samplerプリミティブを使って実行します。
- Step 2 で得られたサブ実験を
- Step 4: 結果を後処理する [カッティング・アドオンを使用]:
- Step 3 の結果を組み合わせて、対象となる観測量の期待値を再構成します。
Step 1: マッピング
Backend で実行する Circuit を作成する
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-addon-cutting qiskit-aer qiskit-ibm-runtime
from qiskit.circuit.library import efficient_su2
circuit = efficient_su2(num_qubits=4, entanglement="circular")
circuit.assign_parameters([0.4] * len(circuit.parameters), inplace=True)
circuit.draw("mpl", scale=0.8)

観測量を指定する
from qiskit.quantum_info import SparsePauliOp
observable = SparsePauliOp(["ZZII", "IZZI", "-IIZZ", "XIXI", "ZIZZ", "IXIX"])
Step 2: 最適化
Backend を指定する
フェイク Backend または Qiskit Runtime のハードウェア Backend を指定できます。
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
backend = FakeManilaV2()