Skip to main content
IBM Quantum Platform

SuperOp

class qiskit.quantum_info.SuperOp(data, input_dims=None, output_dims=None)

GitHub

Basen: QuantumChannel

Superoperator-Darstellung eines Quantenkanals.

Die Superoperator-Darstellung eines Quantenkanals E\mathcal{E} ist eine Matrix SS, so dass die Entwicklung von a DensityMatrix ρ\rho gegeben ist durch

∣E(ρ)⟩ ⁣⟩=S∣ρ⟩ ⁣⟩|\mathcal{E}(\rho)\rangle\!\rangle = S |\rho\rangle\!\rangle

wobei die Doppelkettchen-Schreibweise ∣A⟩ ⁣⟩|A\rangle\!\rangle einen Vektor bezeichnet, der durch Stapeln der Spalten der Matrix AA gebildet wird (Spaltenvektorisierung).

Für weitere Einzelheiten siehe Referenz [1].

Referenzen

  1. C.J. Holz, J.D. Biamonte, D.G. Cory, Tensor networks and graphical calculus for open quantum systems, Quant. Inf. Komp. 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]

Einen Quantenkanal-Superoperator-Operator initialisieren.

Parameter

  • data (QuantumCircuit |circuit.instruction.Instruction | BaseOperator | np.ndarray) – Daten zur Initialisierung des Superoperators.
  • input_dims (tuple | None) – die Dimensionen des Eingangsteilsystems.
  • output_dims (tuple | None) – die Dimensionen des Teilsystems Ausgang.

Erhöht

QiskitError – wenn die Eingabedaten nicht als Superoperator initialisiert werden können.

Weitere Informationen:

Wenn die Eingabe- oder Ausgabeabmessungen Keine sind, werden sie automatisch aus den Eingabedaten ermittelt. Wenn die Eingabedaten ein Numpy-Array der Form ( 4**N, 4**N ) sind, werden Qubit-Systeme verwendet. Handelt es sich bei dem Eingabeoperator nicht um einen N-Qubit-Operator, so wird ein einzelnes Teilsystem zugewiesen, dessen Dimension durch die Form der Eingabe bestimmt wird.


Attribute

atol

Standardwert: 1e-08

data

Daten zurücksenden.

dim

Rückgabe Tupel (input_shape, output_shape).

num_qubits

Gibt die Anzahl der Qubits zurück, wenn es sich um einen N-Qubit-Operator handelt, andernfalls None.

qargs

Gibt die qargs für den Operator zurück.

rtol

Standardwert: 1e-05

settings

Einstellungen zurückgeben.


Methoden

adjoint

adjoint()

GitHub

Rückgabe des adjungierten Quantenkanals.

Anmerkung

Dies ist gleichbedeutend mit der hermiteschen Konjugierten der Matrix in der SuperOp darstellung, d. h. für einen Kanal E\mathcal{E} ist SuperOp der adjungierte Kanal E†\mathcal{{E}}^\dagger SE†=SE†S_{\mathcal{E}^\dagger} = S_{\mathcal{E}}^\dagger.

compose

compose(other, qargs=None, front=False)

GitHub

Geben Sie den Operator Komposition mit einem anderen SuperOp zurück.

Parameter

  • other (SuperOp) – ein SuperOp Objekt.
  • qargs (list or None) – eine Liste von Subsystempositionen, auf die andere angewendet werden sollen. Wenn „None“ auf alle Teilsysteme angewendet wird (Standard: None).
  • front (bool) – Wenn True, wird mit der Multiplikation des Rechtsoperators anstelle der Linksmultiplikation komponiert, [Standard: False].

Rückgabe

Die komponierte SuperOp.

Rückgabetyp

SuperOp

Erhöht

QiskitError – wenn andere nicht in einen Operator umgewandelt werden können oder für die angegebenen Teilsysteme nicht kompatible Dimensionen aufweisen.

Anmerkung

Die Komposition (&) ist standardmäßig als linke Matrixmultiplikation für Matrixoperatoren definiert, während @ (entspricht dot()) als rechte Matrixmultiplikation definiert ist. Das heißt, dass A & B == A.compose(B) gleichwertig mit B @ A == B.dot(A) ist, wenn A und B vom gleichen Typ sind.

Die Einstellung front=True kwarg ändert dies in eine rechte Matrixmultiplikation und ist äquivalent zu der dot() methode A.dot(B) == A.compose(B, front=True).

conjugate

conjugate()

GitHub

Gibt den konjugierten Quantenkanal zurück.

Anmerkung

Dies ist gleichbedeutend mit der konjugierten komplexen Matrix in der SuperOp darstellung, d. h. für einen Kanal E\mathcal{E} ist SuperOp der konjugierte Kanal E‾\overline{{\mathcal{{E}}}} SE†‾=SE‾S_{\overline{\mathcal{E}^\dagger}} = \overline{S_{\mathcal{E}}}.

copy

copy()

GitHub

Erstellen Sie eine Tiefenkopie des aktuellen Operators.

dot

dot(other, qargs=None)

GitHub

Rückgabe des rechtsmultiplizierten Operators self * other.

Parameter

  • other (Operator) – ein Operator-Objekt.
  • qargs (list or None) – eine Liste von Subsystempositionen, auf die andere angewendet werden sollen. Wenn „None“ auf alle Teilsysteme angewendet wird (Standard: None).

Rückgabe

Die rechte Matrix multipliziert Operator.

Rückgabetyp

Bediener

Anmerkung

Das Punktprodukt kann mit dem binären Operator @ ermittelt werden. Daher ist a.dot(b) gleichbedeutend mit a @ b.

expand

expand(other)

GitHub

Geben Sie das Tensorprodukt umgekehrter Ordnung mit einem anderen SuperOp zurück.

Parameter

other (SuperOp) – ein SuperOp Objekt.

Rückgabe

das Tensorprodukt b⊗ab \otimes a, wobei aa

ist die aktuelle SuperOp, und bb ist die andere SuperOp.

Rückgabetyp

SuperOp

input_dims

input_dims(qargs=None)

GitHub

Rückgabe eines Tupels der Eingabedimension für die angegebenen Teilsysteme.

is_cp

is_cp(atol=None, rtol=None)

GitHub

Prüfung, ob die Choi-Matrix vollständig positiv ist (CP)

Parameter

Rückgabetyp

bool

is_cptp

is_cptp(atol=None, rtol=None)

GitHub

Gibt True zurück, wenn vollständig positiv spurenerhaltend (CPTP).

Parameter

Rückgabetyp

bool

is_tp

is_tp(atol=None, rtol=None)

GitHub

Prüfen, ob ein Kanal spurenerhaltend ist (TP)

Parameter

Rückgabetyp

bool

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Gibt True zurück, wenn QuantumChannel ein einheitlicher Kanal ist.

Parameter

Rückgabetyp

bool

output_dims

output_dims(qargs=None)

GitHub

Rückgabe eines Tupels der Ausgabedimension für die angegebenen Teilsysteme.

power

power(n)

GitHub

Rückgabe der Leistung des Quantenkanals.

Parameter

n (float) – die Potenz des Exponenten.

Rückgabe

den Kanal En\mathcal{{E}} ^n.

Rückgabetyp

SuperOp

Erhöht

QiskitError – wenn die Eingabe- und Ausgabedimensionen des „ SuperOp “ nicht identisch sind.

Anmerkung

Für nicht-positive oder nicht-ganzzahlige Exponenten ist die Potenz definiert als die Matrixpotenz der SuperOp darstellung definiert, d. h. für einen Kanal E\mathcal{{E}} ist die SuperOp des potenzierten Kanals En\mathcal{{E}}^n SEn=SEnS_{{\mathcal{{E}}^n}} = S_{{\mathcal{{E}}}}^n.

reshape

reshape(input_dims=None, output_dims=None, num_qubits=None)

GitHub

Rückgabe einer flachen Kopie mit umgestalteten Dimensionen des Eingangs- und Ausgangssubsystems.

Parameter

  • input_dims (None or tuple) – neue Subsystem-Eingangsmaße. Wenn Keine, werden die ursprünglichen Eingangsdimms beibehalten [Standard: Keine].
  • output_dims (None or tuple) – neue Dimensionen der Teilsystemleistung. Wenn Keine, werden die ursprünglichen Ausgangsdimms beibehalten [Standard: Keine].
  • num_qubits (None or int) – in einen N-Qubit-Operator umwandeln [Standard: Keine].

Rückgabe

gibt self mit umgestalteten Eingabe- und Ausgabeabmessungen zurück.

Rückgabetyp

BaseOperator

Erhöht

QiskitError – wenn die Summe aller Eingangs- oder Ausgangsabmessungen der Teilsysteme nicht konstant ist.

tensor

tensor(other)

GitHub

Geben Sie das Tensorprodukt mit einem anderen SuperOp zurück.

Parameter

other (SuperOp) – ein SuperOp Objekt.

Rückgabe

das Tensorprodukt a⊗ba \otimes b, wobei aa

ist die aktuelle SuperOp, und bb ist die andere SuperOp.

Rückgabetyp

SuperOp

Anmerkung

Das Tensorprodukt kann mit dem binären Operator ^ erhalten werden. Daher ist a.tensor(b) gleichbedeutend mit a ^ b.

to_instruction

to_instruction()

GitHub

Umwandlung in eine Kraus- oder UnitaryGate -Schaltanweisung.

Wenn der Kanal unitär ist, wird er als unitäres Gatter hinzugefügt, andernfalls als Kraus-Simulator-Befehl.

Rückgabe

Eine Kraus-Anweisung für den Kanal.

Rückgabetyp

qiskit.circuit.Instruction

Erhöht

QiskitError – wenn die Eingabedaten kein N-Qubit-CPTP-Quantenkanal sind.

to_operator

to_operator()

GitHub

Versuchen Sie, den Kanal in eine einheitliche Darstellung umzuwandeln Operator.

Rückgabetyp

Operator

transpose

transpose()

GitHub

Rückgabe des transponierten Quantenkanals.

Anmerkung

Dies entspricht der Transponierten der Matrix in der SuperOp Darstellung, d. h. für einen Kanal E\mathcal{E} ist die SuperOp e des transponierten Kanals ET\mathcal{{E}}^T gleich SET=SETS_{\mathcal{E}^T} = S_{\mathcal{E}}^T.

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