Skip to main content
IBM Quantum Platform

StabilizerState

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

GitHub

Bases: QuantumState

StabilizerState clase. Simulador de estabilizador utilizando la convención de la referencia [1]. Basado en la clase interna 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

Dada una lista de estabilizadores, qiskit.quantum_info.StabilizerState.from_stabilizer_list() devuelve un estado estabilizado por la lista

from qiskit.quantum_info import StabilizerState

stabilizer_list = ["ZXX", "-XYX", "+ZYY"]
stab = StabilizerState.from_stabilizer_list(stabilizer_list)

Referencias

  1. S. Aaronson, D. Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328 (2004). arXiv:quant-ph/0406196

Inicializa un objeto StabilizerState.

Parámetros


Atributos

clifford

Devuelve los datos de StabilizerState Clifford

dim

Devuelve la dimensión total del estado.

num_qubits

Devuelve el número de qubits si es un estado N-qubit o Ninguno en caso contrario.


Métodos

conjugate

conjugate()

GitHub

Devuelve el conjugado del operador.

copy

copy()

GitHub

Haga una copia del operador actual.

dims

dims(qargs=None)

GitHub

Devuelve tupla de dimensión de entrada para subsistemas especificados.

equiv

equiv(other)

GitHub

Devuelve True si los dos conjuntos generadores generan el mismo grupo estabilizador.

Parámetros

other (StabilizerState) – otro StabilizerState.

Devuelve

Verdadero si otro tiene un grupo generador que genera el mismo StabilizerState.

Tipo de retorno

bool

evolve

evolve(other, qargs=None)

GitHub

Evolucionar un estado estabilizador mediante un operador Clifford.

Parámetros

Devuelve

el estado del estabilizador de salida.

Tipo de retorno

StabilizerState

Eleva

  • QiskitError - si el otro no es un StabilizerState.
  • QiskitError - si la dimensión del operador no coincide con las dimensiones del subsistema StabilizerState especificadas.

expand

expand(other)

GitHub

Devuelve el estado estabilizador del producto tensorial otro ⊗ self.

Parámetros

other (StabilizerState) – un objeto de estado estabilizador.

Devuelve

el operador de producto tensorial otro ⊗ self.

Tipo de retorno

StabilizerState

Eleva

QiskitError - si el otro no es un StabilizerState.

expectation_value

expectation_value(oper, qargs=None)

GitHub

Calcular el valor de expectativa de un operador Pauli o SparsePauliOp.

Parámetros

  • oper (Pauli |SparsePauliOp) – Un operador Pauli o SparsePauliOp para evaluar el valor de expectativa.
  • qargs (None | list) – Subsistemas en los que se aplicará el operador.

Devuelve

El valor esperado.

Eleva

QiskitError - si oper no es un operador Pauli o SparsePauliOp.

Tipo de retorno

complejo

from_stabilizer_list

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

GitHub

Crea un estado estabilizador a partir de la colección de estabilizadores.

Parámetros

  • stabilizers (Collection[str]) – lista de cadenas estabilizadoras
  • allow_redundant (bool) – permitir estabilizadores redundantes (es decir, algunos estabilizadores pueden ser productos de otros)
  • allow_underconstrained (bool) – permitir un conjunto de estabilizadores con restricciones insuficientes (es decir, los estabilizadores no especifican un estado único)

Devuelve

un estado estabilizado por estabilizadores.

Tipo de retorno

StabilizerState

is_valid

is_valid(atol=None, rtol=None)

GitHub

Devuelve True si es válido StabilizerState.

measure

measure(qargs=None)

GitHub

Medir los subsistemas y devolver el resultado y el estado posterior a la medición.

Tenga en cuenta que esta función utiliza el generador interno de números aleatorios QuantumStates para el muestreo del resultado de la medición. La semilla RNG puede establecerse utilizando el método seed() método.

Parámetros

qargs (list or None) – subsistemas para los que muestrear las mediciones; si es Ninguno, muestrea la medición de todos los subsistemas (Predeterminado: Ninguno).

Devuelve

el par (outcome, state) donde outcome es el

y state es el estado estabilizador post-medición colapsado para el resultado correspondiente.

Tipo de retorno

tupla

probabilities

probabilities(qargs=None, decimals=None)

GitHub

Devuelve el vector de probabilidad de medición del subsistema.

Las probabilidades de medición son con respecto a la medición en la base de cálculo (diagonal).

Parámetros

  • qargs (None or list) – subsistemas para los que devolver probabilidades, si es Ninguno devolverá para todos los subsistemas (Por defecto: Ninguno).
  • decimals (None or int) – el número de decimales para redondear los valores. Si es Ninguno no se redondea (Por defecto: Ninguno).

Devuelve

La matriz vectorial Numpy de probabilidades.

Tipo de retorno

np.array

probabilities_dict

probabilities_dict(qargs=None, decimals=None)

GitHub

Devuelve el diccionario de probabilidades de medición del subsistema.

Las probabilidades de medición son con respecto a la medición en la base de cálculo (diagonal).

Esta representación de diccionario utiliza una notación tipo Ket en la que las claves del diccionario son cadenas qudit para los vectores base del subsistema. Si algún subsistema tiene una dimensión superior a 10, se insertan delimitadores de coma entre los enteros para poder distinguir los subsistemas.

Parámetros

  • qargs (None or list) – subsistemas para los que devolver probabilidades, si es Ninguno devolverá para todos los subsistemas (Por defecto: Ninguno).
  • decimals (None or int) – el número de decimales para redondear los valores. Si es Ninguno no se redondea (Por defecto: Ninguno).

Devuelve

Las probabilidades de medición en forma dict (clave).

Tipo de retorno

dict

probabilities_dict_from_bitstring

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

GitHub

Devuelve el diccionario de probabilidad de medición del subsistema utilizando una outcome_bitstring objetivo para realizar la medición. Esto calculará una probabilidad para un único valor outcome_bitstring objetivo, proporcionando un aumento de rendimiento sobre el cálculo de todos los resultados posibles.

Las probabilidades de medición son con respecto a la medición en la base de cálculo (diagonal).

Esta representación de diccionario utiliza una notación tipo Ket en la que las claves del diccionario son cadenas qudit para los vectores base del subsistema. Si algún subsistema tiene una dimensión superior a 10, se insertan delimitadores de coma entre los enteros para poder distinguir los subsistemas.

Parámetros

  • outcome_bitstring (None or str) – cadena de bits del resultado deseado sobre la que realizar el cálculo de la medición; esto reducirá considerablemente el número de cálculos realizados (por defecto: Ninguno)
  • qargs (None or list) – subsistemas para los que devolver probabilidades, si es Ninguno devolverá para todos los subsistemas (Por defecto: Ninguno).
  • decimals (None or int) – el número de decimales con el que se redondean los valores. Si se establece en «None», no se realiza ningún redondeo (valor predeterminado: None)

Devuelve

Las probabilidades de medición en forma dict (ket).

Tipo de retorno

dict[ str, float ]

purity

purity()

GitHub

Devuelve la pureza del estado cuántico, que es igual a 1, ya que siempre es un estado puro.

Devuelve

la pureza (debe ser igual a 1).

Tipo de retorno

Float

Eleva

QiskitError - si la entrada no es StabilizerState.

reset

reset(qargs=None)

GitHub

Restablece el estado o los subsistemas al estado 0.

Parámetros

qargs (list or None) – subsistemas a reiniciar, si es Ninguno todos los subsistemas se reiniciarán a su estado 0 (Por defecto: Ninguno).

Devuelve

el estado de reinicio.

Tipo de retorno

StabilizerState

Información adicional:

Si se restablecen todos los subsistemas, esto devolverá el estado de tierra en todos los subsistemas. Si sólo se restablecen algunos subsistemas, esta función realizará una medición en esos subsistemas y evolucionará los subsistemas para que los estados colapsados posteriores a la medición giren al estado 0. La semilla RNG para este muestreo puede establecerse utilizando el método seed() método.

sample_counts

sample_counts(shots, qargs=None)

GitHub

Muestrear un dictado de resultados de medición de qubits en la base de cálculo.

Parámetros

  • shots (int) – número de muestras a generar.
  • qargs (None or list) – subsistemas para los que muestrear las mediciones; si es Ninguno, muestrea la medición de todos los subsistemas (Predeterminado: Ninguno).

Devuelve

diccionario de recuentos muestreados.

Tipo de retorno

Cuenta

Información adicional:

Esta función muestrea los resultados de la medición utilizando la medida probabilities() para el estado actual y qargs. En realidad, no realiza la medición, por lo que el estado actual no se modifica.

La semilla del generador de números aleatorios utilizada para el muestreo se puede establecer en un valor fijo mediante el método seed() state.

sample_memory

sample_memory(shots, qargs=None)

GitHub

Muestra una lista de resultados de medición de qubits en la base de cálculo.

Parámetros

  • shots (int) – número de muestras a generar.
  • qargs (None or list) – subsistemas para los que muestrear las mediciones; si es Ninguno, muestrea la medición de todos los subsistemas (Predeterminado: Ninguno).

Devuelve

lista de recuentos muestreados en el orden en que se obtuvieron.

Tipo de retorno

np.array

Información adicional:

Esta función aplica el método de medición measure() método.

La semilla del generador de números aleatorios utilizada para el muestreo se puede establecer en un valor fijo mediante el método seed() state.

seed

seed(value=None)

GitHub

Establece la semilla para el estado cuántico RNG.

tensor

tensor(other)

GitHub

Devuelve el estado estabilizador del producto tensorial self ⊗ other.

Parámetros

other (StabilizerState) – un objeto de estado estabilizador.

Devuelve

el operador producto tensorial yo ⊗ otro.

Tipo de retorno

StabilizerState

Eleva

QiskitError - si el otro no es un StabilizerState.

to_operator

to_operator()

GitHub

Convertir el estado en clase de operador matricial

Tipo de retorno

Operador

trace

trace()

GitHub

Devuelve la traza del estado estabilizador como una matriz de densidad, que es igual a 1, ya que siempre es un estado puro.

Devuelve

la traza (debe ser igual a 1).

Tipo de retorno

Float

Eleva

QiskitError - si la entrada no es StabilizerState.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.