Skip to main content
IBM Quantum Platform

Betreiber-Dienstprogramme

qiskit_addon_obp.utils.operations

Utility-Funktionen für Operator-Backpropagation.

apply_op_to

apply_op_to(op1, op1_qargs, op2, op2_qargs, *, apply_as_transform=False)

GitHub

Wenden Sie den Betreiber op2 auf den Betreiber op1 an.

Diese Operatoren müssen nicht unbedingt auf dieselbe Anzahl von Qubits wirken, da davon ausgegangen wird, dass sie auf ein größeres System wirken. Die Position eines jeden Betreibers im System wird durch die entsprechende qargs definiert. Der Ausgabeoperator wird auf union(op1_qargs, op2_qargs) definiert.

In der Standardeinstellung wendet diese Funktion op1 auf op2 wie folgt an:

op2 @ op1

Wenn Sie apply_as_transform=True einstellen, wendet diese Funktion op1 auf op2 in folgender Weise an:

op2.adjoint() @ op1 @ op2

Parameter

  • op1 (SparsePauliOp) – Der Betreiber, auf den op2 angewendet wird.
  • op1_qargs (list[int]) – Die Qubit-Indizes für op1.
  • op2 (SparsePauliOp) – Der Betreiber, der sich auf op1 bewirbt.
  • op2_qargs (list[int]) – Die Qubit-Indizes für op2.
  • apply_as_transform (bool) – Ob op2 auf op1 als Transformation angewendet werden soll.

Rückgabe

Das Tupel (op, qargs) , bei dem op die Eingabe op1 mit op2 links-angewendet ist und qargs eine Liste von Qubit-Indizes für den neuen Operator op ist. Die Qubit-IDs in der Ausgabe op entsprechen der globalen Qubit-ID im gleichen Index in qargs.

Wenn zum Beispiel der Ausgang op eine SparsePauliOp("YX") ist und qargs [3, 4] ist, entspricht der X-Term auf Qubit 0 des Operators der globalen Qubit-ID 3.

Erhöht

ValueError - Die Anzahl der eindeutigen Operator-Qargs muss mit der Anzahl der Qubits des entsprechenden Operators übereinstimmen.

Rückgabetyp

tuple [*SparsePauliOp*, list[ int ]]

apply_reset_to

apply_reset_to(op, qubit_id, inplace=False)

GitHub

Wenden Sie eine Reset-Operation auf einen Pauli-Operator an.

Mit dieser Funktion wird op auf die folgende Weise zurückgesetzt:

<0|op|0>

Bei Termen, die Pauli X- oder Y-Terme auf dem Qubitqubit_id enthalten, wird ihr Gewicht auf 0.0 reduziert. Bei Begriffen, die Pauli Z auf qubit_id enthalten, wird dieses Pauli Z durch eine Identität ersetzt.

Parameter

  • op (SparsePauliOp) – Der Betreiber, auf den die Rücksetzung angewendet wird.
  • qubit_id (int) – Der Index des Qubits, auf das der Reset angewendet werden soll.
  • inplace (bool) – Ob der Operator an Ort und Stelle geändert werden soll.

Rückgabe

Der transformierte Operator

Rückgabetyp

SparsePauliOp

to_global_op

to_global_op(op, qargs, n_qubits)

GitHub

Umwandlung eines lokalen Operators in einen globalen Operator durch Einfügen von Identitäten auf nicht verwendeten Qubits.

Parameter

  • op (SparsePauliOp) – Lokaler Betreiber will expandieren.
  • qargs (list[int]) – Qubit-Indizes für lokale Operatoren.
  • n_qubits (int) – Anzahl der Qubits im globalen System.

Rückgabe

Ein Operator auf n_qubits qubits

Erhöht

ValueError - Qubit-ID außerhalb des Bereichs

Rückgabetyp

SparsePauliOp

reduce_op

reduce_op(global_op)

GitHub

Erstellen Sie eine schlanke Darstellung eines globalen Pauli-Operators.

Diese Funktion liefert eine schlanke Darstellung des Eingabeoperators, bei der alle Qubits, die ausschließlich mit Pauli-I-Termen verbunden sind, entfernt wurden. Es wird auch eine Liste von Indizes zurückgegeben, die angeben, auf welche Qubits der Lean-Operator wirkt.

Beispiel:

>>> global_op = SparsePauliOp(["IXI", "IIZ"])
>>> reduced_op, qargs = reduce_op(global_op)
>>> reduced_op
SparsePauliOp(['XI', 'IZ'],
              coeffs=[1.+0.j, 1.+0.j])
>>> qargs
[0, 1]

Parameter

global_op (SparsePauliOp) – Der globale Operator, für den eine schlanke Darstellung erzeugt werden soll

Rückgabe

  • Eine schlanke Darstellung des Eingabeoperators, bei der die Qubits, die ausschließlich mit Identitätsbegriffen verbunden sind, entfernt wurden.
  • Eine Liste von Indizes, die die Qubits angeben, auf die der Lean-Operator wirkt.

Erhöht

ValueError - Der Eingabeoperator darf nicht der Identitätsoperator sein.

Rückgabetyp

tuple [*SparsePauliOp*, list[ int ]]

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.