AddPostCircuitNonMarkovianErrorChecks
class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)
ベース: TransformationPass
回路の末尾にある、アクティブな量子ビットから構成され、測定で終了する部分に、非マルコフ的な誤りチェックを追加する。
回路後の非マルコフ型エラーチェックは、終端測定の後に位置する狭帯域のXパルスで構成され、このパルスによって量子ビットの状態が測定済み状態 から反転する。その後、状態が測定され、QPUが特定のショットで量子ビットを反転できなかった場合、そのサンプルは信頼できないものとみなされ、破棄される。 すべてのチェックに合格したサンプルのみを事後選択することで、QPUからサンプリングされた分布の忠実度を向上させることができる。
追加された測定値は、DAGのレジスタのコピーである新しい古典レジスタに書き込まれます。これらのレジスタの名前は変更されており(デフォルトでは、レジスタ名 "_ps" に が付加されます)。
これらのパスは、 フラクショナルゲートがサポートされているHeron QPUでのみサポートされています。
パスを初期化します。
パラメーター
- x_pulse_type – ポストチェック測定に適用するXパルスの種類。 か、
"xslow"あるいは"rx"。 - post_check_suffix – 従来のレジスタをコピーする際に、その名前に付加する固定の接尾辞。
- ignore_creg_suffixes – 無視すべき(コピーしない)クラシック・レジスタのサフィックスのリスト。 デフォルトでは、「_pre」で終わるレジスタは、プレチェック用レジスタにポストチェックが追加されるのを防ぐため、無視されます。
属性
is_analysis_pass
そのパスが解析パスであるかどうかを確認してください。
パスが AnalysisPass, である場合、そのパスはDAGを解析し、その解析結果をプロパティセットに書き込むことができることを意味します。 この種のパスでは、DAG に対する変更は許可されません。
is_transformation_pass
そのパスがトランスフォーメーション・パスであるかどうかを確認してください。
パスが TransformationPass, である場合、そのパスはDAGを操作することはできますが、プロパティセットを変更することはできません(ただし、読み取りは可能です)。
方法
execute
execute(passmanager_ir, state, callback=None)
入力された Qiskit IR に対して最適化タスクを実行します。
パラメーター
- passmanager_ir (DAGCircuit) – 最適化対象のQiskit IR。
- state (DAGCircuit) – パスマネージャー自身によるワークフローの実行に関連する状態。
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – 最適化タスクの実行ごとに呼び出されるコールバック関数。
戻り値
Qiskit IRの最適化とワークフローの現状。
戻りの型
name
run
run(dag)
DAGCircuit に対してパスを実行します。 これは、passの開発者によって実装されています。
パラメーター
dag (DAGCircuit) – パスが実行される日。
昇給
NotImplementedError – これが1パス分実装されないままの場合。
update_status
update_status(state, run_state)
ワークフローのステータスを更新します。
パラメーター
- state (PassManagerState) – 更新対象のマネージャーの状態を渡します。
- run_state (RunState) – 現在のタスクの完了状況。
戻り値
パスマネージャーの状態を更新しました。
戻りの型