Kraus
class qiskit.quantum_info.Kraus(data, input_dims=None, output_dims=None)
Basen: QuantumChannel
Kraus-Darstellung eines Quantenkanals.
Für einen Quantenkanal ist die Kraus-Darstellung durch einen Satz von Matrizen gegeben, so dass die Entwicklung von a DensityMatrix gegeben ist durch
Eine allgemeine Operatorabbildung lässt sich auch unter Verwendung der verallgemeinerten Kraus-Darstellung schreiben, die durch zwei Matrixsätze und gegeben ist, sodass
Für weitere Einzelheiten siehe Referenz [1].
Referenzen
- 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]
Initialisierung eines Quantenkanal-Kraus-Operators.
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 Liste von Kraus-Matrizen initialisiert werden können.
Weitere Informationen:
Wenn die Eingabe- oder Ausgabeabmessungen Keine sind, werden sie automatisch aus den Eingabedaten ermittelt. Wenn die Eingabedaten eine Liste von Numpy-Arrays der Form sind, werden Qubit-Systeme verwendet. Entspricht die Eingabe nicht einem N-Qubit-Kanal, so wird ein einzelnes Teilsystem mit einer durch die Form der Eingabe festgelegten Dimension zugewiesen.
Attribute
atol
Standardwert: 1e-08
data
Rückgabe der Liste der Kraus-Matrizen für den Kanal.
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()
Rückgabe des adjungierten Quantenkanals.
Dies ist gleichbedeutend mit der hermiteschen Konjugierten der Matrix in der SuperOp darstellung, d. h. für einen Kanal ist SuperOp der adjungierte Kanal .
compose
compose(other, qargs=None, front=False)
Rückgabe der Operator-Komposition mit einem anderen Kraus.
Parameter
- other (Kraus) – ein Kraus-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
Der komponierte Kraus.
Rückgabetyp
Erhöht
QiskitError – wenn andere nicht in einen Operator umgewandelt werden können oder für die angegebenen Teilsysteme nicht kompatible Dimensionen aufweisen.
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()
Gibt den konjugierten Quantenkanal zurück.
Dies ist gleichbedeutend mit der konjugierten komplexen Matrix in der SuperOp darstellung, d. h. für einen Kanal ist SuperOp der konjugierte Kanal .
copy
dot
dot(other, qargs=None)
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
Das Punktprodukt kann mit dem binären Operator @ ermittelt werden. Daher ist a.dot(b) gleichbedeutend mit a @ b.
expand
expand(other)
Gibt das Tensorprodukt umgekehrter Ordnung mit einem anderen Kraus zurück.
Parameter
other (Kraus) – ein Kraus-Objekt.
Rückgabe
das Tensorprodukt , wobei
ist der aktuelle Kraus, und ist der andere Kraus.
Rückgabetyp
input_dims
input_dims(qargs=None)
Rückgabe eines Tupels der Eingabedimension für die angegebenen Teilsysteme.
is_cp
is_cp(atol=None, rtol=None)
Prüfung, ob die Choi-Matrix vollständig positiv ist (CP)
Parameter
Rückgabetyp
is_cptp
is_cptp(atol=None, rtol=None)
Gibt True zurück, wenn die Spur vollständig positiv erhalten bleibt.
is_tp
is_unitary
is_unitary(atol=None, rtol=None)
Gibt True zurück, wenn QuantumChannel ein einheitlicher Kanal ist.
Parameter
Rückgabetyp
output_dims
output_dims(qargs=None)
Rückgabe eines Tupels der Ausgabedimension für die angegebenen Teilsysteme.
power
power(n)
Rückgabe der Leistung des Quantenkanals.
Parameter
n (float) – die Potenz des Exponenten.
Rückgabe
den Kanal .
Rückgabetyp
Erhöht
QiskitError – wenn die Eingabe- und Ausgabedimensionen des „ SuperOp “ nicht identisch sind.
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 ist die SuperOp des potenzierten Kanals .
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
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)
Gibt das Tensorprodukt mit einem anderen Kraus zurück.
Parameter
other (Kraus) – ein Kraus-Objekt.
Rückgabe
das Tensorprodukt , wobei
ist der aktuelle Kraus, und ist der andere Kraus.
Rückgabetyp
Das Tensorprodukt kann mit dem binären Operator ^ erhalten werden. Daher ist a.tensor(b) gleichbedeutend mit a ^ b.
to_instruction
to_instruction()
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
Erhöht
QiskitError – wenn die Eingabedaten kein N-Qubit-CPTP-Quantenkanal sind.
to_operator
to_operator()
Versuchen Sie, den Kanal in eine einheitliche Darstellung umzuwandeln Operator.
Rückgabetyp