準確率分解(QPD)
qiskit_addon_cutting.qpd
準確率分解の主な機能。
QPDBasis | オペレーションを分解する基礎。 |
BaseQPDGate | 準確率分解を使用して分解されるゲートの基本クラス。 |
SingleQubitQPDGate | 準確率分解を用いて分解される単一量子ビットゲート。 |
TwoQubitQPDGate | 準確率分解を用いて分解される2量子ビットゲート。 |
WeightType
class WeightType(value)
ベース: Enum
QPDサンプルに関連する重量の種類。
完全一致
デフォルト値: 1
正確な重量に比例して与えられる重さ
SAMPLED
デフォルト値: 2
何らかのサンプリング方法によって決定された重量
generate_qpd_weights
generate_qpd_weights(qpd_bases, num_samples=1000)
結合準確率分布から重みを生成する。
絶対値がしきい値( 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)
回路内のすべての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, /)
オブジェクトを生成する。 QPDBasis オブジェクトを生成する。
を実装したすべての2量子ビットゲートがサポートされている。 to_matrix() メソッドがサポートされている。 これは、未束縛のパラメータを持たないゲートの大部分を含むはずだが、特殊なケースもある(例えば、 qiskit issue #10396を参照)。
また Move という操作もサポートしている。
戻りの型
戻り値
新しくインスタンス化された QPDBasis オブジェクト
レイズ
- ValueError - 命令がサポートされていない。
- ValueError - バインドされていないパラメータを持つ命令を分解できません。
- ValueError -
to_matrix2量子ビットゲートの変換に失敗。
パラメーター
gate (Instruction)