量子ビットの初期化
このページのコードは、以下の要件に基づいて開発された。 これらのバージョンまたは新しいバージョンの使用をお勧めします。
qiskit-ibm-runtime~=0.47.0
IBM® 量子処理ユニット(QPU)で回路を実行する場合、量子ビットがゼロに初期化されるように、回路の最初に暗黙のリセットが挿入されるのが一般的である。 これは、 プリミティブ実行オプションとして設定される init_qubits フラグによって制御される。
しかしながら、リセットプロセスの不備は状態準備エラーを引き起こす可能性がある。 このエラーを軽減するため、QPUは回路間に繰り返し遅延時間(または rep_delay)を挿入する。 各バックエンドには異なるデフォルト値がありますが rep_delay、通常は忠実度のリセットと総実行時間のバランスを取るように設定されています。 特定のQPUの rep_delay デフォルト設定を確認するために backend.default_rep_delay 実行する。
すべての IBM QPUは動的繰り返しレート実行を採用しているため、ジョブごとに rep_delay 設定を変更できます。 プリミティブジョブで提出した回路は、QPU上で一括処理されます。 これらの回路は、要求された各ショットの回路を反復処理することで実行される。実行は、回路とショットの行列に対して列単位で行われ、次の図に示す通りである。

回路間に挿入 rep_delay されるため、実行の各ショットでこの遅延が発生する。 したがって、を下げると rep_delay、状態準備エラー率の増加を代償として、QPUの総実行時間は減少します。次の図が示す通りです:

と の rep_delay=0 両方を設定すると、 init_qubits=False回路は「結合」します。これは、量子ビットが前回のショットの最終状態から開始するためです。
プリミティブジョブ内の回路はQPU実行のためにバッチ処理されますが、PUBからの回路の実行順序は保証されません。 例えば、を提出した場合 pubs=[pub1, pub2]、からの回路はからの回路よりも pub1 先に実行されない pub2可能性がある。 同じジョブからの回路がQPU上で単一のバッチとして実行される保証もありません。
プリミティブジョブに対して rep_delay 指定する
使用している特定のQPUのサポート rep_delay 範囲を常に確認してください。 これらの値はすべてのQPUで同じではなく、時間の経過とともに変化する可能性もあります。
ご注意ください:の増加は、実行時間と容量 rep_delay 消費に直接的な影響を与えます。
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
service = QiskitRuntimeService()
# Make sure your backend supports it
backend = service.least_busy(
operational=True, min_num_qubits=100, dynamic_reprate_enabled=True
)
# Determine the allowable range
backend.rep_delay_range
sampler = Sampler(mode=backend)
# Specify a value in the supported range
sampler.options.execution.rep_delay = 0.0005次のステップ
- 量子近似最適化アルゴリズム(QAOA)のチュートリアルの例を試してみてください。
- Estimatorの始め方について確認しましょう。
- Samplerの始め方について確認しましょう。