qiskit_noise_learning.aer_executor.AerExecutor
class qiskit_noise_learning.aer_executor.AerExecutor(qasm_simulator: AerSimulator, noise_dict: dict[str, PauliLindbladMap] | None = None, angle_decimals: int = 5, warn_absent: bool = True, root_seed: int | None = None)
ベース: object
IBM ランタイムエグゼキュータインターフェースを模倣した、Aerベースのローカルエグゼキュータ。
返されるジョブの構築が完了すると QuantumProgram すぐに実行されます。そのため、が AerRuntimeJob.result() 呼び出された時点で、結果が即座に利用可能になります。
ノイズ注入
が指定 noise_dict された場合、タグ付き障壁を介して、回路にパウリ・リンドブラッドノイズが注入される InsertNoisePass。 Samplomaticは、各ボックスゲートの周囲に、左(L)、中央(M)、右(R)の3つのバリアを配置し、それぞれに という形式のラベルを付けます( <pos><idx>@tag=<tag> 例: R0@tag=r0)。 デフォルトでは、ノイズは( R 右側の)バリア、つまりゲートの後に注入されます。 代わりに on noise_after=False を使用して、 M 障壁(ゲートの手前のノイズ)を対象にして InsertNoisePass ください。
形式 noise_dict は次のとおりです:
- キー — レイヤー名のタグ(文字列、例:
"r0","my_tag")。各キーは、をビルドする際に使用された のrefTagと一致している必要がありますQuantumProgram。 タグ付きバリアのタグが辞書に存在しない場合(もし ならwarn_absent=True)、警告が出力されます。そのバリアはそのままにされます(そのレイヤーにはノイズは挿入されません)。 - 値 — そのゲートにおけるパウリ・リンドブラッドノイズチャネルを表す
PauliLindbladMapインスタンス。 この写像の値は、回路内の対応する障壁上の量子ビットの数と等しくなければnum_qubitsならない。 - 量子ビットのインデックス付け — マップ内のインデックスは、バリアの量子ビットセットに限定されており、回路全体の量子ビットの番号付けとは独立しています。 ローカルインデックスとは、 物理クビットの昇順で数えたバリアの
i-番目のクビットを指すiため、デバイス全体のマップは を用いて変換することができるPauliLindbladMap.keep_qubits(sorted(qubits))。
パラメーター
- qasm_simulator – プログラムを実行するためのAerシミュレータ。
- noise_dict – バリアラベルの参照からパウリ・リンドブラッドノイズマップへの対応表。 ノイズの注入を行わずに実行するには、
PassNone(デフォルト)を指定します。 - angle_decimals – シミュレーションの前に、ゲート角度はこの小数点以下の精度で、π/2の倍数に最も近い値に丸められます。 これにより、角度が名目上クリフォード角である場合に、浮動小数点数のドリフトによってクリフォード法によるシミュレーションが妨げられるのを防ぐことができます。
- warn_absent – の場合(
Trueデフォルト)、タグ付きバリアのタグが に見つからないときに警告を出力するnoise_dict。 タグの一部のみを意図的に適用する場合はFalse、この設定に設定してください。 - root_seed – 乱数生成用のルートシード。ショットのサンプリングとトゥワールのサンプリングの両方をカバーする。 直接使用されるのではなく、各呼び出しが次のシード値を取得
run()するシーケンスの初期値として機能するため、各実行は互いに独立したランダム性を持つようになります。 デフォルトでは、ルートシードNoneは非決定論的に抽出されますが、root_seedどちらの方法でも利用可能です。
__init__
__init__(qasm_simulator: AerSimulator, noise_dict: dict[str, PauliLindbladMap] | None = None, angle_decimals: int = 5, warn_absent: bool = True, root_seed: int | None = None)
方法
属性
コラム「 1 」 | コラム「 2 」 |
|---|---|
root_seed | 各実行のランダム性を生成するための基となるシード。 |
root_seed
種類: int
各実行のランダム性が導き出される基となるシード。
これを新しい実行者に引き継ぐと、その実行者の実行シーケンス全体が再現されます。 これは個々の実行のシードではありません。特定の実行結果を再現するには、その実行を生成したジョブのシードを使用してください AerRuntimeJob.seed。
run
run(program: QuantumProgram) → AerRuntimeJob
量子プログラムを実行し、完了したジョブを返す。
各呼び出しでは、エグゼキュータのルートシードから新しいシードが生成されるため、エグゼキュータにシードが設定されている場合でも、連続した実行は互いに独立したランダムな結果となります。
パラメーター
プログラム – 実行する量子プログラム。
戻り値
結果がすぐに得られる仕事。