Skip to main content
IBM Quantum Platform

準確率分解(QPD)

qiskit_addon_cutting.qpd

準確率分解の主な機能。

QPDBasisオペレーションを分解する基礎。
BaseQPDGate準確率分解を使用して分解されるゲートの基本クラス。
SingleQubitQPDGate準確率分解を用いて分解される単一量子ビットゲート。
TwoQubitQPDGate準確率分解を用いて分解される2量子ビットゲート。

WeightType

class WeightType(value)

GitHub

ベース: Enum

QPDサンプルに関連する重量の種類。

完全一致

デフォルト値: 1

正確な重量に比例して与えられる重さ

SAMPLED

デフォルト値: 2

何らかのサンプリング方法によって決定された重量

generate_qpd_weights

generate_qpd_weights(qpd_bases, num_samples=1000)

GitHub

結合準確率分布から重みを生成する。

絶対値がしきい値( 1 / num_samples )以上の各ウェイトが正確に評価される。 残りの重み(分布の末尾にある重み)がサンプリングされ、最大でも num_samples

パラメーター

  • qpd_bases (Sequence[QPDBasis]) – その QPDBasis ウェイトを生成するオブジェクト
  • num_samples (float) – 生成するウェイトの数をコントロールする

戻りの型

dict[tuple[int, ...], tuple[float, WeightType]]

戻り値

与えられた分解からその重みへの写像。 キーはインデックスのタプルである。 QPDBasis. インデックスは基底の特定の分解マッピングに対応する。

値はタプルである。 最初の要素は、貢献度のウェイトに相当する数字である。 番目の要素は WeightTypeEXACT または SAMPLED のいずれかである。

decompose_qpd_instructions

decompose_qpd_instructions(circuit, instruction_ids, map_ids=None, *, inplace=False)

GitHub

回路内のすべてのQPD命令をローカルのQiskit操作と測定に置き換える。

パラメーター

  • circuit (QuantumCircuit) – QPD命令を含む回路
  • instruction_ids (Sequence[Sequence[int]]) – 2D、各内部シーケンスは、回路内の1つの分解を構成する命令のインデックスに対応する。 共通のシーケンス内の要素は、共通の分解に属し、一緒にサンプリングされるべきである。
  • map_ids (Sequence[int] | None) – 回路の分解に適用される特定の線形マッピングへのインデックス。 マップIDが提供されない場合、回路は分解の結合確率分布に従ってランダムに分解される。
  • inplace (bool) – True の場合、 はその場で修正される。 circuit

戻りの型

QuantumCircuit

戻り値

すべてのインスタンスをローカル操作に分解した回路 BaseQPDGate インスタンスをローカルオペレーションに分解した。

この回路には、QPDの測定結果を格納する新しい最後の古典レジスタが含まれる(アクセスは retval.cregs[-1] )。

レイズ

  • ValueError - instruction_ids のインデックスは、インスタンスではないゲートに対応する。 BaseQPDGate インスタンスに対応する。
  • ValueError - instruction_ids内のリストは長さが1でも2でもない。
  • ValueError - instruction_ids のインデックスの総数は、回路のインスタンス数と同じではない。 BaseQPDGate インスタンスの数と等しくない。
  • ValueError - 同じ分解内のゲートは異なるQPDベースを保持する。
  • ValueError - map_ids の長さは、回路の分解数と同じではない。

qpdbasis_from_instruction

qpdbasis_from_instruction(gate, /)

GitHub

オブジェクトを生成する。 QPDBasis オブジェクトを生成する。

を実装したすべての2量子ビットゲートがサポートされている。 to_matrix() メソッドがサポートされている。 これは、未束縛のパラメータを持たないゲートの大部分を含むはずだが、特殊なケースもある(例えば、 qiskit issue #10396を参照)。

また Move という操作もサポートしている。

戻りの型

QPDBasis

戻り値

新しくインスタンス化された QPDBasis オブジェクト

レイズ

  • ValueError - 命令がサポートされていない。
  • ValueError - バインドされていないパラメータを持つ命令を分解できません。
  • ValueError - to_matrix 2量子ビットゲートの変換に失敗。

パラメーター

gate (Instruction)

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