StabilizerState
class qiskit.quantum_info.StabilizerState(data, validate=True)
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}
1Dato 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
- S. Aaronson, D. Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328 (2004). arXiv:quant-ph/0406196
Inizializza un oggetto StabilizerState.
Parametri
- data (StabilizerState |Clifford |Pauli |QuantumCircuit |circuit.instruction.Instruction) – Dati a partire dai quali è possibile ricostruire lo stato dello stabilizzatore.
- validate (bool) – convalidare che i dati sullo stato dello stabilizzatore siano un Clifford valido.
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
copy
dims
dims(qargs=None)
Restituisce una tupla di dimensioni di ingresso per i sottosistemi specificati.
equiv
equiv(other)
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
evolve
evolve(other, qargs=None)
Evolvere uno stato stabilizzatore mediante un operatore di Clifford.
Parametri
- other (Clifford orQuantumCircuit orqiskit.circuit.Instruction) – L'operatore di Clifford da utilizzare per l'evoluzione.
- qargs (list) – un elenco di posizioni del sottosistema stabilizzatore su cui applicare l'operatore.
Risultati
lo stato di stabilizzazione dell'uscita.
Tipo di restituzione
Aumenti
- QiskitError – se “altro” non è un “ StabilizerState ”.
- QiskitError – se la dimensione dell'operatore non corrisponde alle dimensioni specificate del sottosistema StabilizerState.
expand
expand(other)
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
Aumenti
QiskitError – se “altro” non è un “ StabilizerState ”.
expectation_value
expectation_value(oper, qargs=None)
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
from_stabilizer_list
classmethod from_stabilizer_list(stabilizers, allow_redundant=False, allow_underconstrained=False)
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
is_valid
measure
measure(qargs=None)
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
probabilities
probabilities(qargs=None, decimals=None)
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)
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
probabilities_dict_from_bitstring
probabilities_dict_from_bitstring(outcome_bitstring, qargs=None, decimals=None)
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
purity
purity()
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
Aumenti
QiskitError – se l'input non è un “ StabilizerState ”.
reset
reset(qargs=None)
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
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)
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
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)
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
tensor
tensor(other)
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
Aumenti
QiskitError – se “altro” non è un “ StabilizerState ”.
to_operator
trace
trace()
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
Aumenti
QiskitError – se l'input non è un “ StabilizerState ”.