Skip to main content
IBM Quantum Platform

StabilizerState

class qiskit.quantum_info.StabilizerState(data, validate=True)

GitHub

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}
1

Gegeben 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

  1. 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


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

conjugate()

GitHub

Gibt die Konjugierte des Operators zurück.

copy

copy()

GitHub

Erstellen Sie eine Kopie des aktuellen Operators.

dims

dims(qargs=None)

GitHub

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

equiv

equiv(other)

GitHub

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

bool

evolve

evolve(other, qargs=None)

GitHub

Entwickeln Sie einen Stabilisatorzustand durch einen Clifford-Operator.

Parameter

Rückgabe

den Zustand des Ausgangsstabilisators.

Rückgabetyp

StabilizerState

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)

GitHub

Rückgabe des Tensorprodukts Stabilisator Zustand andere ⊗ selbst.

Parameter

other (StabilizerState) – ein Objekt mit Stabilisierungsstatus.

Rückgabe

der Tensorproduktoperator andere ⊗ selbst.

Rückgabetyp

StabilizerState

Erhöht

QiskitError – sofern „other“ kein „ StabilizerState “ ist.

expectation_value

expectation_value(oper, qargs=None)

GitHub

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

Komplex

from_stabilizer_list

classmethod from_stabilizer_list(stabilizers, allow_redundant=False, allow_underconstrained=False)

GitHub

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

StabilizerState

is_valid

is_valid(atol=None, rtol=None)

GitHub

Gibt True zurück, wenn eine gültige StabilizerState.

measure

measure(qargs=None)

GitHub

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

Tupel

probabilities

probabilities(qargs=None, decimals=None)

GitHub

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)

GitHub

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

dict

probabilities_dict_from_bitstring

probabilities_dict_from_bitstring(outcome_bitstring, qargs=None, decimals=None)

GitHub

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

dict[ str, float ]

purity

purity()

GitHub

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

Gleitkomma

Erhöht

QiskitError – wenn „input“ kein „ StabilizerState “ ist.

reset

reset(qargs=None)

GitHub

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

StabilizerState

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)

GitHub

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

Option 'counts'

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)

GitHub

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

seed(value=None)

GitHub

Setzen Sie den Seed für den Quantenzustand RNG.

tensor

tensor(other)

GitHub

Rückgabe des Tensorprodukts Stabilisatorzustand self ⊗ other.

Parameter

other (StabilizerState) – ein Objekt mit Stabilisierungsstatus.

Rückgabe

der Tensorproduktoperator selbst ⊗ andere.

Rückgabetyp

StabilizerState

Erhöht

QiskitError – sofern „other“ kein „ StabilizerState “ ist.

to_operator

to_operator()

GitHub

Zustand in Matrix-Operator-Klasse umwandeln

Rückgabetyp

Operator

trace

trace()

GitHub

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

Gleitkomma

Erhöht

QiskitError – wenn „input“ kein „ StabilizerState “ ist.

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