Skip to main content
IBM Quantum Platform

StabilizerState

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

GitHub

Basi: QuantumState

StabilizerState classe. Simulatore di stabilizzatore che utilizza la convenzione del riferimento [1]. Basato sulla 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

Dato un elenco di stabilizzatori, qiskit.quantum_info.StabilizerState.from_stabilizer_list() restituisce uno stato stabilizzato dall'elenco

from qiskit.quantum_info import StabilizerState

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

Riferimenti

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

Inizializza un oggetto StabilizerState.

Parametri


Attributi

clifford

Restituzione dei dati di StabilizerState Clifford

dim

Restituisce la dimensione totale dello stato.

num_qubits

Restituisce il numero di qubit se si tratta di uno stato a N qubit o altrimenti None.


Metodi

conjugate

conjugate()

GitHub

Restituisce il coniugato dell'operatore.

copy

copy()

GitHub

Eseguire una copia dell'operatore corrente.

dims

dims(qargs=None)

GitHub

Restituisce una tupla di dimensioni di ingresso per i sottosistemi specificati.

equiv

equiv(other)

GitHub

Restituisce True se i due insiemi generatori generano lo stesso gruppo stabilizzatore.

Parametri

other (StabilizerState) – un altro StabilizerState.

Risultati

Vero se l'altro ha un insieme generatore che genera lo stesso StabilizerState.

Tipo di restituzione

bool

evolve

evolve(other, qargs=None)

GitHub

Evolvere uno stato stabilizzatore mediante un operatore di Clifford.

Parametri

Risultati

lo stato di stabilizzazione dell'uscita.

Tipo di restituzione

StabilizerState

Aumenti

  • QiskitError – se “altro” non è un “ StabilizerState ”.
  • QiskitError – se la dimensione dell'operatore non corrisponde alle dimensioni specificate del sottosistema StabilizerState.

expand

expand(other)

GitHub

Restituisce lo stato stabilizzatore del prodotto tensoriale altro ⊗ self.

Parametri

other (StabilizerState) – un oggetto di stato stabilizzatore.

Risultati

l'operatore del prodotto tensoriale altro ⊗ self.

Tipo di restituzione

StabilizerState

Aumenti

QiskitError – se “altro” non è un “ StabilizerState ”.

expectation_value

expectation_value(oper, qargs=None)

GitHub

Calcolo del valore di aspettativa di un operatore di Pauli o di SparsePauliOp.

Parametri

  • oper (Pauli |SparsePauliOp) – Un operatore di Pauli o SparsePauliOp per valutare il valore di aspettativa.
  • qargs (None | list) – Sottosistemi su cui applicare l'operatore.

Risultati

Il valore di aspettativa.

Aumenti

QiskitError – se oper non è un operatore di Pauli o un operatore di tipo “ SparsePauliOp ”.

Tipo di restituzione

complesso

from_stabilizer_list

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

GitHub

Crea uno stato stabilizzatore dall'insieme degli stabilizzatori.

Parametri

  • stabilizers (Collection[str]) – elenco delle corde stabilizzatrici
  • allow_redundant (bool) – consentire stabilizzatori ridondanti (ovvero, alcuni stabilizzatori possono essere il prodotto di altri)
  • allow_underconstrained (bool) – consentire un insieme di stabilizzatori sottodeterminato (ovvero, gli stabilizzatori non specificano uno stato univoco)

Risultati

uno stato stabilizzato da stabilizzatori.

Tipo di restituzione

StabilizerState

is_valid

is_valid(atol=None, rtol=None)

GitHub

Restituisce True se è valido StabilizerState.

measure

measure(qargs=None)

GitHub

Misurare i sottosistemi e restituire i risultati e lo stato post-misura.

Si noti che questa funzione utilizza il generatore di numeri casuali interno a QuantumStates per il campionamento del risultato della misurazione. Il seme RNG può essere impostato con il metodo seed() metodo.

Parametri

qargs (list or None) – sottosistemi per i quali campionare le misure, se Nessuno campiona le misure di tutti i sottosistemi (predefinito: Nessuno).

Risultati

la coppia (outcome, state) dove outcome è la coppia

e state è lo stato di stabilizzazione post-misurazione collassato per l'esito corrispondente.

Tipo di restituzione

tupla

probabilities

probabilities(qargs=None, decimals=None)

GitHub

Restituisce il vettore della probabilità di misurazione del sottosistema.

Le probabilità di misurazione sono rispetto alla misurazione nella base di calcolo (diagonale).

Parametri

  • qargs (None or list) – sottosistemi per i quali restituire le probabilità, se Nessuno restituisce tutte le probabilità per tutti i sottosistemi (predefinito: Nessuno).
  • decimals (None or int) – il numero di cifre decimali da arrotondare. Se Nessuno, non viene effettuato alcun arrotondamento (predefinito: Nessuno).

Risultati

L'array di vettori Numpy delle probabilità.

Tipo di restituzione

np.array

probabilities_dict

probabilities_dict(qargs=None, decimals=None)

GitHub

Restituisce il dizionario delle probabilità di misurazione del sottosistema.

Le probabilità di misurazione sono rispetto alla misurazione nella base di calcolo (diagonale).

Questa rappresentazione del dizionario utilizza una notazione simile a Ket, in cui le chiavi del dizionario sono stringhe di qudit per i vettori base del sottosistema. Se un sottosistema ha una dimensione superiore a 10, si inseriscono dei delimitatori di virgola tra i numeri interi per distinguere i sottosistemi.

Parametri

  • qargs (None or list) – sottosistemi per i quali restituire le probabilità, se Nessuno restituisce tutte le probabilità per tutti i sottosistemi (predefinito: Nessuno).
  • decimals (None or int) – il numero di cifre decimali da arrotondare. Se Nessuno, non viene effettuato alcun arrotondamento (predefinito: Nessuno).

Risultati

Le probabilità di misurazione nella forma dict (chiave).

Tipo di restituzione

dict

probabilities_dict_from_bitstring

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

GitHub

Restituisce il dizionario delle probabilità di misurazione del sottosistema utilizzando una stringa_di_risultato mirata per cui eseguire la misurazione. In questo modo si calcola una probabilità per un solo valore di stringa_di_risultato mirato, ottenendo un aumento delle prestazioni rispetto al calcolo di tutti i risultati possibili.

Le probabilità di misurazione sono rispetto alla misurazione nella base di calcolo (diagonale).

Questa rappresentazione del dizionario utilizza una notazione simile a Ket, in cui le chiavi del dizionario sono stringhe di qudit per i vettori base del sottosistema. Se un sottosistema ha una dimensione superiore a 10, si inseriscono dei delimitatori di virgola tra i numeri interi per distinguere i sottosistemi.

Parametri

  • outcome_bitstring (None or str) – stringa di bit di risultato specificata su cui eseguire il calcolo della misurazione; ciò ridurrà in modo significativo il numero di calcoli effettuati (Impostazione predefinita: Nessuna)
  • qargs (None or list) – sottosistemi per i quali restituire le probabilità, se Nessuno restituisce tutte le probabilità per tutti i sottosistemi (predefinito: Nessuno).
  • decimals (None or int) – il numero di cifre decimali con cui arrotondare i valori. Se None, non viene effettuato alcun arrotondamento (impostazione predefinita: None)

Risultati

Le probabilità di misura nella forma dict (ket).

Tipo di restituzione

dict[ str, float ]

purity

purity()

GitHub

Restituisce la purezza dello stato quantico, che è uguale a 1, poiché è sempre uno stato puro.

Risultati

la purezza (dovrebbe essere uguale a 1).

Tipo di restituzione

mobile

Aumenti

QiskitError – se l'input non è un “ StabilizerState ”.

reset

reset(qargs=None)

GitHub

Ripristino dello stato o dei sottosistemi allo stato 0.

Parametri

qargs (list or None) – se Nessuno, tutti i sottosistemi saranno ripristinati allo stato 0 (predefinito: Nessuno).

Risultati

lo stato di reset.

Tipo di restituzione

StabilizerState

Ulteriori informazioni:

Se tutti i sottosistemi sono stati resettati, si ripristina lo stato di massa su tutti i sottosistemi. Se solo alcuni sottosistemi sono stati resettati, questa funzione eseguirà una misura su tali sottosistemi ed evolverà i sottosistemi in modo che gli stati collassati dopo la misurazione siano ruotati allo stato 0. Il seme RNG per questo campionamento può essere impostato con il metodo seed() metodo.

sample_counts

sample_counts(shots, qargs=None)

GitHub

Campionare un insieme di risultati di misura dei qubit nella base computazionale.

Parametri

  • shots (int) – numero di campioni da generare.
  • qargs (None or list) – sottosistemi per i quali campionare le misure, se Nessuno campiona le misure di tutti i sottosistemi (predefinito: Nessuno).

Risultati

dizionario dei conteggi campionati.

Tipo di restituzione

Conteggi

Ulteriori informazioni:

Questa funzione campiona i risultati della misurazione utilizzando la misura probabilities() per lo stato corrente e i qarg. Non implementa effettivamente la misura, quindi lo stato corrente non viene modificato.

Il seme del generatore di numeri casuali utilizzato per il campionamento può essere impostato su un valore fisso utilizzando il metodo state seed().

sample_memory

sample_memory(shots, qargs=None)

GitHub

Campionare un elenco di risultati di misura dei qubit nella base computazionale.

Parametri

  • shots (int) – numero di campioni da generare.
  • qargs (None or list) – sottosistemi per i quali campionare le misure, se Nessuno campiona le misure di tutti i sottosistemi (predefinito: Nessuno).

Risultati

elenco dei conteggi campionati nell'ordine in cui sono stati campionati.

Tipo di restituzione

np.array

Ulteriori informazioni:

Questa funzione implementa il metodo di misura measure() metodo.

Il seme del generatore di numeri casuali utilizzato per il campionamento può essere impostato su un valore fisso utilizzando il metodo state seed().

seed

seed(value=None)

GitHub

Impostare il seme per l'RNG a stati quantici.

tensor

tensor(other)

GitHub

Restituisce lo stato stabilizzatore del prodotto tensoriale self ⊗ other.

Parametri

other (StabilizerState) – un oggetto di stato stabilizzatore.

Risultati

l'operatore prodotto tensoriale self ⊗ other.

Tipo di restituzione

StabilizerState

Aumenti

QiskitError – se “altro” non è un “ StabilizerState ”.

to_operator

to_operator()

GitHub

Convertire lo stato in classe di operatori matriciali

Tipo di restituzione

Operatore

trace

trace()

GitHub

Restituisce la traccia dello stato stabilizzatore come matrice di densità, che è uguale a 1, poiché è sempre uno stato puro.

Risultati

la traccia (dovrebbe essere uguale a 1).

Tipo di restituzione

mobile

Aumenti

QiskitError – se l'input non è un “ StabilizerState ”.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.