MitigationTask (qiskit_mitigation.mitigation_task)
MitigationTask
class MitigationTask
ベース: object
エグゼキュータを使用して、観測可能量の期待値を計算します。
このクラスは、すべての緩和手法の基底クラスです。 これにより、Executor を使用してハードウェア上で実行可能な QuantumProgram を作成し、その結果を後処理して、指定された観測量の期待値を算出することが可能になります。
タスクのパラメータはprepare関数への入力として指定する必要があり、後処理に必要な関連変数は内部で保存されます:
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job = executor.run(program)
results = job.result()
mitigated_result = task.postprocess(results)ロードされたジョブ結果の期待値を計算するには、後処理に必要なすべての内部変数を含むジョブ結果からタスクを作成することができます。 あるいは、後処理に必要な変数を、スタティック compute_expectation_value メソッドに直接入力として渡すこともできます。 読み込まれた結果に対して後処理を実行する例:
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job_id = executor.run(program).job_id
job = service.job(job_id)
results = job.result()
task = load_tasks_from_result(results)[0]
mitigated_result = task.postprocess(results)MitigationTask インスタンスを作成します。
方法
find_unique_layers
find_unique_layers(circuit, custom_boxing_options=None)
指定されたボクシングオプションを使用して、指定された回路の一意なボクシング済みレイヤーを返します。
パラメーター
- circuit (QuantumCircuit) – その回路は、独自の層を形成する。
- custom_boxing_options (dict | None) – function
generate_boxing_pass_manager()で使用されるカスタム・ボクシングのオプション。
戻り値
指定された回路の、一意なボックス化されたレイヤー。
戻りの型
prepare
prepare(circuit, observables, parameters, custom_boxing_options=None, shots_per_randomization=64, num_randomizations=128, broadcast_obs_and_params=False, trex=None, quantum_program=None)
Executor を通じて実行 QuantumProgram するための を作成します。
Executorを介して実行可能な QuantumProgram、のアイテムを作成します。 が指定 quantum_program された場合、新しい項目は既存のプログラムに追加されます。指定されない場合は、作成された項目のみを含む新しいプログラムが作成されます。 「基本オプション」を選択すると、回路に軽減策が一切適用されていないアイテムが作成されます。 broadcast_obs_and_params が True の場合、観測可能変数とパラメータは、samplomatic のブロードキャスティング規則に従ってブロードキャストされ、一部のパラメータを一部の観測可能変数に関連付けることが可能になります。 そうしないと、各オブザーバブルに対してすべてのパラメータが実行されてしまいます(パラメータとオブザーバブルの外積)。 なお、外積の後処理の方が通常は高速であることに注意してください。
パラメーター
- circuit (QuantumCircuit) – 量子回路。
- observables (ObservablesArray |Sequence[SparsePauliOp]) – 期待値を計算するための観測量。
- parameters (ndarray |BindingsArray | None) – パラメトリック回路のパラメータ。
- custom_boxing_options (dict | None) – function
generate_boxing_pass_manager()で使用されるカスタム・ボクシングのオプション。 - shots_per_randomization (int) – 無作為割付ごとの投与回数。
- num_randomizations (int) – 無作為割付の回数。
- broadcast_obs_and_params (bool) – オブザーバブルとパラメータを送信するかどうか。
- trex (TREX | None) – 読み出しエラーの軽減に使用されるTREX軽減インスタンス。
- quantum_program (QuantumProgram | None) – 項目を追加するための量子プログラム。 「None」の場合、新しいプログラムが作成されます。
戻り値
Executor を通じて実行 QuantumProgram 可能な A。
戻りの型
postprocess
postprocess(results, measure_noise_data=None)
単一項目の結果に対する期待値の処理。
パラメーター
- results (QuantumProgramItemResult |QuantumProgramResult) – 実行結果。 結果オブジェクト全体、またはこのタスクの項目結果のいずれかです。 量子プログラムにTREXキャリブレーションタスクが追加された場合、結果オブジェクト全体が指定されていれば、その結果が測定ノイズデータの計算に使用されます。
- measure_noise_data (PauliLindbladMap |ndarray | None) – TREXの軽減に用いる、学習済みの測定ノイズデータ。 None であり、かつ量子プログラムにキャリブレーションタスクが含まれている場合、結果オブジェクト全体が指定されていれば、キャリブレーションタスクの結果から測定ノイズが計算されます。
戻り値
データにフィールド および evs std を含む PubResult。ここで、 evs は期待値、 は期待値の標準偏差 std である。 が True に設定 broadcast_obs_and_params されている場合、データには、異なる無作為化間の標準偏差を表す フィールド twirl_stds も含まれます。
昇給
- ValueError – タスクの項目結果に
'_meas'キーがない場合。 - ValueError – アイテムの結果データ
'_meas'に含まれる軸の数が無効な場合。 - ValueError – もし と
param_shapeを互いにブロードキャストできないobservables.shape場合、タスクの準備True段階で が に設定broadcast_obs_and_paramsされていた。
戻りの型
compute_expectation_value
static compute_expectation_value(item_result, observables, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)
単一項目の結果に対する期待値の処理。
この関数を使用すると、新しいクラスインスタンスを作成することなく、単一の「未緩和」項目の結果に対する期待値を計算することができます。
パラメーター
- item_result (QuantumProgramItemResult) – アイテムの結果。
- observables (ObservablesArray |Sequence[SparsePauliOp]) – 期待値を計算するための観測量。
- param_shape (tuple[int, ...] | None) – パラメータ値の形式。
- param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – 基底を測定するための、パラメータとインデックスの間の対応関係を示すマップ。
- meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – 測定されたパウリ基の一覧。 第 番
i目の項目は、中のデータの第iスライスに対応すると仮定される測定基準であるitem_result。 - broadcast_obs_and_params (bool) – オブザーバブルおよびパラメータ値を配信するかどうか。
- measure_noise_data (PauliLindbladMap |ndarray | None) – TREX低減のための測定ノイズ校正データ。
戻り値
データにフィールド および evs std を含む PubResult。ここで、 evs は期待値、 は期待値の標準偏差 std である。 が True に設定 broadcast_obs_and_params されている場合、データには、異なる無作為化間の標準偏差を表す フィールド twirl_stds も含まれます。
昇給
- ValueError – に
item_resultキー'_meas'がない場合。 - ValueError – 軸の数が不正
item_result['_meas']な場合。 - ValueError – と
param_shapeを互いにブロードキャストすることはobservables.shapeできない。
戻りの型
create_instance_from_passthrough_data
static create_instance_from_passthrough_data(passthrough, trex=None)
量子プログラムの実行結果から読み込まれたパススルー辞書から、 MitigationTask インスタンスを作成します。
パラメーター
- passthrough (dict[str, Any]) – 量子プログラムの実行結果から読み込まれた Passthrough_data ディクショナリ。
- trex (TREX | None) – 同じ量子プログラム内で実行された、キャリブレーション回路を含むTREXインスタンスの結果。 TREXの緩和措置が適用されなかった場合
None、または同じ量子プログラムの一環としてTREXのキャリブレーションが実行されなかった場合は、そのまま残しておく必要があります。
戻り値
MitigationTask のインスタンス。
戻りの型