Skip to main content
IBM Quantum Platform

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)

GitHub

ベース: 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")。各キーは、をビルドする際に使用された の ref Tag と一致している必要があります QuantumProgram。 タグ付きバリアのタグが辞書に存在しない場合(もし なら warn_absent=True)、警告が出力されます。そのバリアはそのままにされます(そのレイヤーにはノイズは挿入されません)。
  • 値 — そのゲートにおけるパウリ・リンドブラッドノイズチャネルを表す PauliLindbladMap インスタンス。 この写像の値は、回路内の対応する障壁上の量子ビットの数と等しくなければ num_qubits ならない。
  • 量子ビットのインデックス付け — マップ内のインデックスは、バリアの量子ビットセットに限定されており、回路全体の量子ビットの番号付けとは独立しています。 ローカルインデックスとは、 物理クビットの昇順で数えたバリアの i-番目のクビットを指す i ため、デバイス全体のマップは を用いて変換することができる PauliLindbladMap.keep_qubits(sorted(qubits))。

パラメーター

  • qasm_simulator – プログラムを実行するためのAerシミュレータ。
  • noise_dict – バリアラベルの参照からパウリ・リンドブラッドノイズマップへの対応表。 ノイズの注入を行わずに実行するには、Pass None (デフォルト)を指定します。
  • 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 」
__init__(qasm_simulator[, noise_dict, ...])
run(プログラム)量子プログラムを実行し、完了したジョブを返す。

属性

コラム「 1 」
コラム「 2 」
root_seed各実行のランダム性を生成するための基となるシード。

root_seed

種類: int

各実行のランダム性が導き出される基となるシード。

これを新しい実行者に引き継ぐと、その実行者の実行シーケンス全体が再現されます。 これは個々の実行のシードではありません。特定の実行結果を再現するには、その実行を生成したジョブのシードを使用してください AerRuntimeJob.seed。

run

run(program: QuantumProgram) → AerRuntimeJob

量子プログラムを実行し、完了したジョブを返す。

各呼び出しでは、エグゼキュータのルートシードから新しいシードが生成されるため、エグゼキュータにシードが設定されている場合でも、連続した実行は互いに独立したランダムな結果となります。

パラメーター

プログラム – 実行する量子プログラム。

戻り値

結果がすぐに得られる仕事。

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。