StabilizerState
class qiskit.quantum_info.StabilizerState(data, validate=True)
Basen: QuantumState
StabilizerState klasse. Stabilisatorsimulator unter Verwendung der Konvention aus Referenz [1]. Auf der Grundlage der internen Klasse Clifford.
from qiskit import QuantumCircuit
from qiskit.quantum_info import StabilizerState, Pauli
# Bell state generation circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
stab = StabilizerState(qc)
# Print the StabilizerState
print(stab)
# Calculate the StabilizerState measurement probabilities dictionary
print (stab.probabilities_dict())
# Calculate expectation value of the StabilizerState
print (stab.expectation_value(Pauli('ZZ')))StabilizerState(StabilizerTable: ['+XX', '+ZZ'])
{'00': 0.5, '11': 0.5}
1Gegeben eine Liste von Stabilisatoren, qiskit.quantum_info.StabilizerState.from_stabilizer_list() gibt einen durch die Liste stabilisierten Zustand zurück
from qiskit.quantum_info import StabilizerState
stabilizer_list = ["ZXX", "-XYX", "+ZYY"]
stab = StabilizerState.from_stabilizer_list(stabilizer_list)Referenzen
- S. Aaronson, D. Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328 (2004). arXiv:quant-ph/0406196
Initialisieren Sie ein StabilizerState Objekt.
Parameter
- data (StabilizerState |Clifford |Pauli |QuantumCircuit |circuit.instruction.Instruction) – Daten, aus denen der Stabilisatorzustand rekonstruiert werden kann.
- validate (bool) – bestätigen, dass die Stabilisatorzustandsdaten ein gültiger Clifford sind.
Attribute
clifford
Rückgabe StabilizerState Clifford-Daten
dim
Rückgabe der gesamten Zustandsgröße.
num_qubits
Gibt die Anzahl der Qubits zurück, wenn es sich um einen N-Qubit-Zustand handelt, andernfalls None.
Methoden
conjugate
copy
dims
equiv
equiv(other)
Gibt True zurück, wenn die beiden erzeugenden Mengen die gleiche Stabilisatorgruppe erzeugen.
Parameter
other (StabilizerState) – eine weitere StabilizerState.
Rückgabe
Wahr, wenn andere eine Erzeugermenge haben, die dieselbe StabilizerState erzeugt.
Rückgabetyp
evolve
evolve(other, qargs=None)
Entwickeln Sie einen Stabilisatorzustand durch einen Clifford-Operator.
Parameter
- other (Clifford orQuantumCircuit orqiskit.circuit.Instruction) – Der Clifford-Operator, nach dem die Entwicklung erfolgen soll.
- qargs (list) – eine Liste der Positionen des Teilsystems Stabilisator, auf die der Operator anzuwenden ist.
Rückgabe
den Zustand des Ausgangsstabilisators.
Rückgabetyp
Erhöht
- QiskitError – sofern „other“ kein „ StabilizerState “ ist.
- QiskitError – wenn die Abmessungen des Betreibers nicht mit den angegebenen Abmessungen des Subsystems „ StabilizerState “ übereinstimmen.
expand
expand(other)
Rückgabe des Tensorprodukts Stabilisator Zustand andere ⊗ selbst.
Parameter
other (StabilizerState) – ein Objekt mit Stabilisierungsstatus.
Rückgabe
der Tensorproduktoperator andere ⊗ selbst.
Rückgabetyp
Erhöht
QiskitError – sofern „other“ kein „ StabilizerState “ ist.
expectation_value
expectation_value(oper, qargs=None)
Berechnen Sie den Erwartungswert eines Pauli- oder SparsePauliOp -Operators.
Parameter
- oper (Pauli |SparsePauliOp) – Ein Pauli- oder SparsePauliOp -Operator zur Auswertung des Erwartungswerts.
- qargs (None | list) – Teilsysteme, auf die der Operator angewendet werden soll.
Rückgabe
Der Erwartungswert.
Erhöht
QiskitError – wenn oper kein Pauli- oder „ SparsePauliOp “-Operator ist.
Rückgabetyp
from_stabilizer_list
classmethod from_stabilizer_list(stabilizers, allow_redundant=False, allow_underconstrained=False)
Erstellen Sie einen Stabilisatorzustand aus der Sammlung der Stabilisatoren.
Parameter
- stabilizers (Collection[str]) – liste der Stabilisierungsfäden
- allow_redundant (bool) – redundante Stabilisatoren zulassen (d. h., einige Stabilisatoren können sich aus anderen ergeben)
- allow_underconstrained (bool) – eine unterbestimmte Menge von Stabilisatoren zulassen (d. h., die Stabilisatoren legen keinen eindeutigen Zustand fest)
Rückgabe
ein durch Stabilisatoren stabilisierter Zustand.
Rückgabetyp
is_valid
measure
measure(qargs=None)
Messung der Teilsysteme und Rückgabe des Ergebnisses und des Zustands nach der Messung.
Beachten Sie, dass diese Funktion den internen Zufallszahlengenerator von QuantumStates für die Auswahl des Messergebnisses verwendet. Der RNG-Seed kann mit der seed() methode.
Parameter
qargs (list or None) – teilsysteme, für die Stichprobenmessungen durchgeführt werden sollen, falls keine, werden Stichprobenmessungen für alle Teilsysteme durchgeführt (Standard: keine).
Rückgabe
das Paar (outcome, state) , wobei outcome die
und state ist der kollabierte Zustand des Stabilisators nach der Messung für das entsprechende Ergebnis.
Rückgabetyp
probabilities
probabilities(qargs=None, decimals=None)
Rückgabe des Subsystem-Messwahrscheinlichkeitsvektors.
Die Messwahrscheinlichkeiten beziehen sich auf die Messung in der Berechnungsbasis (diagonal).
Parameter
- qargs (None or list) – subsysteme, für die Wahrscheinlichkeiten zurückgegeben werden sollen, wenn None, dann für alle Subsysteme (Standard: None).
- decimals (None or int) – die Anzahl der Dezimalstellen zum Runden der Werte. Bei None wird nicht gerundet (Standard: None).
Rückgabe
Das Numpy-Vektor-Array der Wahrscheinlichkeiten.
Rückgabetyp
np.array
probabilities_dict
probabilities_dict(qargs=None, decimals=None)
Gibt das Wörterbuch der Messwahrscheinlichkeiten des Subsystems zurück.
Die Messwahrscheinlichkeiten beziehen sich auf die Messung in der Berechnungsbasis (diagonal).
Diese Wörterbuchdarstellung verwendet eine Ket-ähnliche Notation, bei der die Wörterbuchschlüssel qudit-Strings für die Subsystem-Basisvektoren sind. Wenn ein Teilsystem eine Dimension von mehr als 10 hat, werden zwischen den ganzen Zahlen Kommata eingefügt, damit die Teilsysteme unterschieden werden können.
Parameter
- qargs (None or list) – subsysteme, für die Wahrscheinlichkeiten zurückgegeben werden sollen, wenn None, dann für alle Subsysteme (Standard: None).
- decimals (None or int) – die Anzahl der Dezimalstellen zum Runden der Werte. Bei None wird nicht gerundet (Standard: None).
Rückgabe
Die Messwahrscheinlichkeiten in Diktatform (Schlüssel).
Rückgabetyp
probabilities_dict_from_bitstring
probabilities_dict_from_bitstring(outcome_bitstring, qargs=None, decimals=None)
Rückgabe des Wörterbuchs der Messwahrscheinlichkeit des Subsystems unter Verwendung einer gezielten outcome_bitstring, für die die Messung durchgeführt werden soll. Auf diese Weise wird eine Wahrscheinlichkeit für nur einen einzigen gezielten outcome_bitstring-Wert berechnet, was eine Leistungssteigerung gegenüber der Berechnung aller möglichen Ergebnisse bedeutet.
Die Messwahrscheinlichkeiten beziehen sich auf die Messung in der Berechnungsbasis (diagonal).
Diese Wörterbuchdarstellung verwendet eine Ket-ähnliche Notation, bei der die Wörterbuchschlüssel qudit-Strings für die Subsystem-Basisvektoren sind. Wenn ein Teilsystem eine Dimension von mehr als 10 hat, werden zwischen den ganzen Zahlen Kommata eingefügt, damit die Teilsysteme unterschieden werden können.
Parameter
- outcome_bitstring (None or str) – Ziel-Ausgabebitstring, für den eine Messberechnung durchgeführt werden soll; dies reduziert die Anzahl der durchgeführten Berechnungen erheblich (Standard: Keine)
- qargs (None or list) – subsysteme, für die Wahrscheinlichkeiten zurückgegeben werden sollen, wenn None, dann für alle Subsysteme (Standard: None).
- decimals (None or int) – die Anzahl der Dezimalstellen, auf die Werte gerundet werden sollen. Wenn „None“, erfolgt keine Rundung (Standard: None)
Rückgabe
Die Messwahrscheinlichkeiten in der Form von dict (ket).
Rückgabetyp
purity
purity()
Gibt die Reinheit des Quantenzustands zurück, die gleich 1 ist, da es sich immer um einen reinen Zustand handelt.
Rückgabe
die Reinheit (sollte gleich 1 sein).
Rückgabetyp
Erhöht
QiskitError – wenn „input“ kein „ StabilizerState “ ist.
reset
reset(qargs=None)
Zurücksetzen des Zustands oder der Subsysteme auf den 0-Zustand.
Parameter
qargs (list or None) – subsysteme, die zurückgesetzt werden sollen; bei None werden alle Subsysteme auf ihren 0-Zustand zurückgesetzt (Default: None).
Rückgabe
den Reset-Zustand.
Rückgabetyp
Weitere Informationen:
Wenn alle Teilsysteme zurückgesetzt werden, wird der Grundzustand aller Teilsysteme wiederhergestellt. Wenn nur einige Teilsysteme zurückgesetzt werden, führt diese Funktion eine Messung an diesen Teilsystemen durch und entwickelt die Teilsysteme so weiter, dass die kollabierten Zustände nach der Messung in den 0-Zustand gedreht werden. Der RNG-Seed für dieses Sampling kann mit der seed() methode.
sample_counts
sample_counts(shots, qargs=None)
Probieren Sie ein Diktat von Qubit-Messergebnissen in der Berechnungsgrundlage.
Parameter
- shots (int) – anzahl der zu erzeugenden Proben.
- qargs (None or list) – teilsysteme, für die Stichprobenmessungen durchgeführt werden sollen, falls keine, werden Stichprobenmessungen für alle Teilsysteme durchgeführt (Standard: keine).
Rückgabe
wörterbuch der Stichprobenzählungen.
Rückgabetyp
Weitere Informationen:
Diese Funktion nimmt Stichproben von Messergebnissen unter Verwendung des Maßes
probabilities()für den aktuellen Zustand und qargs. Sie führt die Messung nicht durch, so dass der aktuelle Zustand nicht verändert wird.Der Startwert für den bei der Stichprobenziehung verwendeten Zufallszahlengenerator kann mithilfe der Methode
seed()state auf einen festen Wert gesetzt werden.
sample_memory
sample_memory(shots, qargs=None)
Probieren Sie eine Liste von Qubit-Messergebnissen in der Berechnungsgrundlage aus.
Parameter
- shots (int) – anzahl der zu erzeugenden Proben.
- qargs (None or list) – teilsysteme, für die Stichprobenmessungen durchgeführt werden sollen, falls keine, werden Stichprobenmessungen für alle Teilsysteme durchgeführt (Standard: keine).
Rückgabe
Liste der erfassten Zählwerte in der Reihenfolge ihrer Erfassung.
Rückgabetyp
np.array
Weitere Informationen:
Diese Funktion implementiert das Messverfahren
measure()methode.Der Startwert für den bei der Stichprobenziehung verwendeten Zufallszahlengenerator kann mithilfe der Methode
seed()state auf einen festen Wert gesetzt werden.
seed
tensor
tensor(other)
Rückgabe des Tensorprodukts Stabilisatorzustand self ⊗ other.
Parameter
other (StabilizerState) – ein Objekt mit Stabilisierungsstatus.
Rückgabe
der Tensorproduktoperator selbst ⊗ andere.
Rückgabetyp
Erhöht
QiskitError – sofern „other“ kein „ StabilizerState “ ist.
to_operator
trace
trace()
Gibt die Spur des Stabilisatorzustands als Dichtematrix zurück, die gleich 1 ist, da es sich immer um einen reinen Zustand handelt.
Rückgabe
die Kurve (sollte gleich 1 sein).
Rückgabetyp
Erhöht
QiskitError – wenn „input“ kein „ StabilizerState “ ist.