Skip to main content
IBM Quantum Platform

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)

GitHub

ベース: 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_labelLaTeXの数学モード内で使用する文字列ラベル。
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

型: tuple[int,...]

の各古典ビットに対して測定された物理量子ビットのインデックス circuit。

「エントリ」とは、その測定結果が古典ビットに格納される物理量子ビットの j ことであり j、これはバックエンドが測定結果を報告する順序を指します。

annotations

タイプ: list[Annotation]

このゲートで使用するアノテーション。

constituent_gate_idxs

型: Iterator[tuple[int,...]]

構成ゲートが作用する位置を指定する物理インデックスのタプルを巡回するイテレータ。

一部のサブクラスでは、「構成ゲート」とは何かという概念に意味を持たない場合があります。なぜなら、それらのサブクラスは、ユニタリ作用を分離可能な表現によって表すことを選択していないからです。 彼らが従わなければならない唯一の制約は、すべての剰余整数の和が に等しいということである gate_idxs。

iter_ops

iter_ops() → Iterable[tuple[tuple[int, ...], Operation]]

このゲートを構成する演算を、回路の順序に従って順次処理してください。

生成数

. 内の各命令 (physical_qubits, operation) に対するタプル circuit。

model_gate

種類: ModelGate

この門の模型。

draw

draw(*args, **kwargs)

このゲートを回路図として描いてください。

ワイヤラベルには、Qiskit の TranspileLayout 規約に従って、仮想量子ビットのインデックス(回路における量子ビットの順序)から物理量子ビットのインデックスへの対応関係が表示されます。例えば、 v_0 -> 5...

パラメーター

  • *args –. に渡される位置指定キーワード引数 draw()。
  • **kwargs –. に渡されるキーワード引数 draw()。

戻り値

kwarg output に応じて、テキスト、matplotlib の図、または LaTeX が表示されます。

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