Skip to main content
IBM Quantum Platform

StabilizerState

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

GitHub

Bases: QuantumState

StabilizerState classe. Simulador de estabilizador usando a convenção da referência [1]. Com base na classe 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 uma lista de estabilizadores, qiskit.quantum_info.StabilizerState.from_stabilizer_list() retorna um estado estabilizado pela lista

from qiskit.quantum_info import StabilizerState

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

Referências

  1. S. Aaronson, D. Gottesman, Improved Simulation of Stabilizer Circuits (Simulação aprimorada de circuitos estabilizadores ), Phys. Rev. A 70, 052328 (2004). arXiv:quant-ph/0406196

Inicializar um objeto StabilizerState.

Parâmetros


Atributos

clifford

Retornar dados de StabilizerState Clifford

dim

Retorna a dimensão total do estado.

num_qubits

Retorna o número de qubits se for um estado N-qubit ou None caso contrário.


Métodos

conjugate

conjugate()

GitHub

Retorna o conjugado do operador.

copy

copy()

GitHub

Faça uma cópia do operador atual.

dims

dims(qargs=None)

GitHub

Retorna uma tupla de dimensão de entrada para os subsistemas especificados.

equiv

equiv(other)

GitHub

Retorna True se os dois conjuntos geradores gerarem o mesmo grupo estabilizador.

Parâmetros

other (StabilizerState) – outro StabilizerState.

Retorna

Verdadeiro se o outro tiver um conjunto gerador que gere o mesmo StabilizerState.

Tipo de retorno

bool

evolve

evolve(other, qargs=None)

GitHub

Evolua um estado estabilizador por um operador de Clifford.

Parâmetros

Retorna

o estado do estabilizador de saída.

Tipo de retorno

StabilizerState

Aumentos

  • QiskitError - se o outro não for um StabilizerState.
  • QiskitError - se a dimensão do operador não corresponder às dimensões do subsistema StabilizerState especificadas.

expand

expand(other)

GitHub

Retorna o estado do estabilizador do produto tensorial other ⊗ self.

Parâmetros

other (StabilizerState) – um objeto de estado do estabilizador.

Retorna

o operador de produto tensorial other ⊗ self.

Tipo de retorno

StabilizerState

Aumentos

QiskitError - se o outro não for um StabilizerState.

expectation_value

expectation_value(oper, qargs=None)

GitHub

Calcule o valor de expectativa de um operador Pauli ou SparsePauliOp.

Parâmetros

  • oper (Pauli |SparsePauliOp) – Um operador Pauli ou SparsePauliOp para avaliar o valor de expectativa.
  • qargs (None | list) – Subsistemas nos quais o operador deve ser aplicado.

Retorna

O valor da expectativa.

Aumentos

QiskitError - se oper não for um operador Pauli ou SparsePauliOp.

Tipo de retorno

complexo

from_stabilizer_list

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

GitHub

Crie um estado de estabilizador a partir da coleção de estabilizadores.

Parâmetros

  • stabilizers (Collection[str]) – lista de cordas estabilizadoras
  • allow_redundant (bool) – permitir estabilizadores redundantes (ou seja, alguns estabilizadores podem ser produtos de outros)
  • allow_underconstrained (bool) – permitir um conjunto de estabilizadores sub-restrito (ou seja, os estabilizadores não especificam um estado único)

Retorna

um estado estabilizado por estabilizadores.

Tipo de retorno

StabilizerState

is_valid

is_valid(atol=None, rtol=None)

GitHub

Retorna True se for um StabilizerState válido.

measure

measure(qargs=None)

GitHub

Medir os subsistemas e retornar o resultado e o estado pós-medição.

Observe que essa função usa o gerador interno de números aleatórios do site QuantumStates para amostrar o resultado da medição. A semente do RNG pode ser definida usando o método seed() método.

Parâmetros

qargs (list or None) – subsistemas para os quais as medições de amostra devem ser feitas; se nenhum, a medição de amostra de todos os subsistemas (Padrão: Nenhum).

Retorna

o par (outcome, state) onde outcome é o

rótulo da cadeia de caracteres do resultado da medição, e state é o estado do estabilizador pós-medição recolhido para o resultado correspondente.

Tipo de retorno

tupla

probabilities

probabilities(qargs=None, decimals=None)

GitHub

Retorna o vetor de probabilidade de medição do subsistema.

As probabilidades de medição são relativas à medição na base de cálculo (diagonal).

Parâmetros

  • qargs (None or list) – subsistemas para os quais retornar as probabilidades; se nenhum, retornar para todos os subsistemas (Padrão: nenhum).
  • decimals (None or int) – o número de casas decimais para arredondar os valores. Se for None, nenhum arredondamento será feito (Padrão: None).

Retorna

A matriz de vetores Numpy de probabilidades.

Tipo de retorno

np.array

probabilities_dict

probabilities_dict(qargs=None, decimals=None)

GitHub

Retorna o dicionário de probabilidade de medição do subsistema.

As probabilidades de medição são relativas à medição na base de cálculo (diagonal).

Essa representação de dicionário usa uma notação do tipo Ket, em que as chaves do dicionário são cadeias de caracteres qudit para os vetores de base do subsistema. Se algum subsistema tiver uma dimensão maior que 10, serão inseridos delimitadores de vírgula entre os números inteiros para que os subsistemas possam ser distinguidos.

Parâmetros

  • qargs (None or list) – subsistemas para os quais retornar as probabilidades; se nenhum, retornar para todos os subsistemas (Padrão: nenhum).
  • decimals (None or int) – o número de casas decimais para arredondar os valores. Se for None, nenhum arredondamento será feito (Padrão: None).

Retorna

As probabilidades de medição no formato dict (chave).

Tipo de retorno

dict

probabilities_dict_from_bitstring

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

GitHub

Retorna o dicionário de probabilidade de medição do subsistema utilizando uma string de resultado_bit direcionada para realizar a medição. Isso calculará uma probabilidade para apenas um único valor de resultado direcionado_bitstring, proporcionando um aumento de desempenho em relação ao cálculo de todos os resultados possíveis.

As probabilidades de medição são relativas à medição na base de cálculo (diagonal).

Essa representação de dicionário usa uma notação do tipo Ket, em que as chaves do dicionário são cadeias de caracteres qudit para os vetores de base do subsistema. Se algum subsistema tiver uma dimensão maior que 10, serão inseridos delimitadores de vírgula entre os números inteiros para que os subsistemas possam ser distinguidos.

Parâmetros

  • outcome_bitstring (None or str) – sequência de bits do resultado alvo para a qual se deseja realizar o cálculo da medição; isso reduzirá significativamente o número de cálculos realizados (Padrão: Nenhum)
  • qargs (None or list) – subsistemas para os quais retornar as probabilidades; se nenhum, retornar para todos os subsistemas (Padrão: nenhum).
  • decimals (None or int) – o número de casas decimais para arredondar os valores. Se for None, não é feito nenhum arredondamento (Padrão: None)

Retorna

As probabilidades de medição na forma dict (ket).

Tipo de retorno

dict[ str, float ]

purity

purity()

GitHub

Retorna a pureza do estado quântico, que é igual a 1, pois é sempre um estado puro.

Retorna

a pureza (deve ser igual a 1).

Tipo de retorno

Valor flutuante

Aumentos

QiskitError - se a entrada não for um StabilizerState.

reset

reset(qargs=None)

GitHub

Redefine o estado ou os subsistemas para o estado 0.

Parâmetros

qargs (list or None) – subsistemas a serem redefinidos; se None, todos os subsistemas serão redefinidos para o estado 0 (Padrão: None).

Retorna

o estado de reinicialização.

Tipo de retorno

StabilizerState

Informações adicionais:

Se todos os subsistemas forem redefinidos, isso retornará o estado de aterramento em todos os subsistemas. Se apenas alguns subsistemas forem redefinidos, essa função executará uma medição nesses subsistemas e os desenvolverá de modo que os estados colapsados pós-medição sejam girados para o estado 0. A semente do RNG para essa amostragem pode ser definida usando o método seed() método.

sample_counts

sample_counts(shots, qargs=None)

GitHub

Amostragem de um ditado de resultados de medição de qubit na base computacional.

Parâmetros

  • shots (int) – número de amostras a serem geradas.
  • qargs (None or list) – subsistemas para os quais as medições de amostra devem ser feitas; se nenhum, a medição de amostra de todos os subsistemas (Padrão: Nenhum).

Retorna

dicionário de contagens amostradas.

Tipo de retorno

Contagens

Mais informações:

Esta função amostra os resultados da medição usando a medida probabilities() para o estado atual e qargs. Na verdade, ele não implementa a medição, portanto, o estado atual não é modificado.

A semente do gerador de números aleatórios utilizada para a amostragem pode ser definida como um valor fixo por meio do método seed() state.

sample_memory

sample_memory(shots, qargs=None)

GitHub

Amostra de uma lista de resultados de medição de qubit na base computacional.

Parâmetros

  • shots (int) – número de amostras a serem geradas.
  • qargs (None or list) – subsistemas para os quais as medições de amostra devem ser feitas; se nenhum, a medição de amostra de todos os subsistemas (Padrão: Nenhum).

Retorna

lista das contagens amostradas na ordem em que foram amostradas.

Tipo de retorno

np.array

Mais informações:

Essa função implementa o método de medição measure() método.

A semente do gerador de números aleatórios utilizada para a amostragem pode ser definida como um valor fixo por meio do método seed() state.

seed

seed(value=None)

GitHub

Defina a semente para o RNG de estado quântico.

tensor

tensor(other)

GitHub

Retorna o estado do estabilizador do produto tensorial self ⊗ other.

Parâmetros

other (StabilizerState) – um objeto de estado do estabilizador.

Retorna

o operador de produto tensorial self ⊗ other.

Tipo de retorno

StabilizerState

Aumentos

QiskitError - se o outro não for um StabilizerState.

to_operator

to_operator()

GitHub

Converter estado em classe de operador de matriz

Tipo de retorno

Operador

trace

trace()

GitHub

Retorna o traço do estado estabilizador como uma matriz de densidade, que é igual a 1, pois é sempre um estado puro.

Retorna

o rastro (deve ser igual a 1).

Tipo de retorno

Valor flutuante

Aumentos

QiskitError - se a entrada não for um StabilizerState.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.