qiskit_noise_learning.gate_sets.QiskitGate
class qiskit_noise_learning.gate_sets.QiskitGate(name: str, circuit: QuantumCircuit, qubit_idxs: Iterable[int], prep_idxs: Iterable[int] = (), annotations: Sequence[Annotation] | None = None, latex_str: str | None = None)
ベース: Gate
. 内の単一のゲートを表します QiskitGateSet。
ゲートは、一連のユニタリ演算、それに続く測定、そして最後に状態の準備またはリセットから構成されると仮定される。 現在、演算の順序については検証が行われていないが、の各古典ビットは正確に1回だけ測定されなければ circuit ならず、また、どの量子ビットも2回以上測定されてはならない。なぜなら、それらの測定こそがを定義するからである clbit_meas_idxs。
多くの点で、このクラスは、あるクビットのサブセットに対する作用を表し、場合によってはそれらのクビットの一部がアイドル状態にあるという点 BoxOp で、含む CircuitInstruction ものに似ています。 その違いは、物理クビットがオブジェクト Qubit ではなく整数として表現されている点と、どの物理クビットのインデックスが準備(またはリセット)操作を行うかを明示的に保存している点にあります。
このクラスは等価演算も実装しており、2つのインスタンス QiskitGate は、その物理インデックスが等しく、かつ qubit_idxs リスト と の順列を考慮した上で回路が等しい場合に等しいとみなされます circuit.qubits。
パラメーター
- name – ゲートの名前。
- 回路 – 量子回路。
- qubit_idxs – 作用
circuit.qubitsの対象となる物理量子ビットのインデックス。 - prep_idxs – このゲートによって準備またはリセットされる物理量子ビットのインデックス。 この記述が含まれているのは、この命令
Resetを明示的に使用することが一般的ではないためです。 - 注釈 – ゲートの実装方法を説明する注釈。 その場合
None、デフォルトではパウリのツイリングとなる。 注釈samplomatic.Tagが指定されていない場合、タグ名が に等しい注釈が自動的に追加されますname。 - latex_str – このゲートに対する、 LaTeX の文字列(オプション)。
昇給
- ValueError – の長さが と等しくない
qubit_idxs場合circuit.num_qubits。 - ValueError – の古典的なビットのいずれかが、1回以上測定
circuitされた場合、または一度も測定されなかった場合に発生します。 - ValueError – のいずれかの量子ビットの測定結果
circuitが、1つ以上の古典ビットとなった場合。 - ValueError – に アノテーション
samplomatic.Twirlが含まれてannotationsいない場合。
__init__
__init__(name: str, circuit: QuantumCircuit, qubit_idxs: Iterable[int], prep_idxs: Iterable[int] = (), annotations: Sequence[Annotation] | None = None, latex_str: str | None = None)
方法
コラム「 1 」 | コラム「 2 」 |
|---|---|
__init__(name, circuit, qubit_idxs[, ...]) | |
draw(*args, **kwargs) | このゲートを回路図として描いてください。 |
iter_ops() | このゲートを構成する演算を、回路の順序に従って順次処理してください。 |
属性
コラム「 1 」 | コラム「 2 」 |
|---|---|
annotations | このゲートで使用するアノテーション。 |
circuit | このゲートの回路図。 |
clbit_meas_idxs | の各古典ビットに対して測定された物理量子ビットのインデックス circuit。 |
constituent_gate_idxs | 構成ゲートが作用する位置を指定する物理インデックスのタプルを巡回するイテレータ。 |
gate_idxs | このゲートがユニタリ作用を受ける物理的指標。 |
idling_idxs | このゲートが待機している物理量子ビットのインデックス。 |
label | プロッタの凡例で使用する文字列ラベル。 |
latex_str | このゲート用の LaTeX 文字列。 |
math_label | LaTeXの数学モード内で使用する文字列ラベル。 |
meas_idxs | このゲートが測定する物理量子ビットのインデックス。 |
model_gate | この門の模型。 |
name | ゲートの名称。 |
num_qubits | このゲートが作用する量子ビットの数。 |
prep_idxs | このゲートが準備(またはリセット)する物理量子ビットのインデックス。 |
qubit_idxs | このゲートが作用する物理量子ビットのインデックス。 |
circuit
種類: QuantumCircuit
このゲートの回路図。
これらはまったく無関係 circuit.qubits であり、例えば、物理的な量子ビットを表しているわけではない。 その代わりに、このマッピングは、回路内の各量子ビットがどの物理量子ビットに対応するかを示す「レシピ」を提供 dict(zip(circuit.qubits, qubit_idxs)) する。 関連項目も参照してください iter_ops()。
clbit_meas_idxs
の各古典ビットに対して測定された物理量子ビットのインデックス circuit。
「エントリ」とは、その測定結果が古典ビットに格納される物理量子ビットの j ことであり j、これはバックエンドが測定結果を報告する順序を指します。
annotations
タイプ: list[Annotation]
このゲートで使用するアノテーション。
constituent_gate_idxs
構成ゲートが作用する位置を指定する物理インデックスのタプルを巡回するイテレータ。
一部のサブクラスでは、「構成ゲート」とは何かという概念に意味を持たない場合があります。なぜなら、それらのサブクラスは、ユニタリ作用を分離可能な表現によって表すことを選択していないからです。 彼らが従わなければならない唯一の制約は、すべての剰余整数の和が に等しいということである gate_idxs。
iter_ops
iter_ops() → Iterable[tuple[tuple[int, ...], Operation]]
このゲートを構成する演算を、回路の順序に従って順次処理してください。
生成数
. 内の各命令 (physical_qubits, operation) に対するタプル circuit。
model_gate
種類: ModelGate
この門の模型。