Skip to main content
IBM Quantum Platform

Informazioni quantistiche

qiskit.quantum_info


Operatori

Operator(dati[, input_dims, output_dims] )Classe dell'operatore di matrice
Pauli( [dati] )Operatore di Pauli a N-qubit.
Clifford(dati[, verifica, copia] )Un operatore unitario a N-qubit del gruppo di Clifford.
ScalarOp( [dimensioni, coefficienti] )Classe dell'operatore di identità scalare.
SparseObservable(dati, /[, num_qubit] )Un'osservabile su basi di Pauli che memorizza i suoi dati in un formato qubit-sparse.
SparsePauliOp(dati[, coefficienti,...] )Operatore N-qubit sparse in una rappresentazione in base Pauli.
PauliLindbladMap(dati, /[, num_qubit] )Una mappa di Pauli Lindblad memorizzata in un formato qubit-sparse.
QubitSparsePauli(dati, /[, num_qubit] )Un operatore di Pauli senza fase memorizzato in un formato qubit-sparse.
QubitSparsePauliList(dati, /[, num_qubit] )Un elenco di operatori di Pauli senza fase memorizzati in un formato qubit-sparse.
PhasedQubitSparsePauli(dati, /[, num_qubit] )Un operatore di Pauli memorizzato in un formato qubit-sparse.
PhasedQubitSparsePauliList(dati, /[, num_qubit] )Un elenco di operatori di Pauli con fasi memorizzate in un formato qubit-sparse.
CNOTDihedral( [dati, num_qubit, convalida] )Un operatore N-qubit del gruppo CNOT-Diedrale.
PauliList(dati)Elenco degli operatori di Pauli a N-qubit.
pauli_basis(num_qubit[, peso] )Restituisce la PauliList ordinata per la base di Pauli a n-qubit.
get_clifford_gate_names()Restituisce l'elenco dei nomi delle porte di Clifford.

Stati

Statevector(dati[, dimensioni] )Classe Statevector
DensityMatrix(dati[, dimensioni] )DensityMatrix classe
StabilizerState(dati[, convalida] )StabilizerState classe.

Canali

Choi(dati[, input_dims, output_dims] )Rappresentazione della matrice di Choi di un canale quantistico.
SuperOp(dati[, input_dims, output_dims] )Rappresentazione del superoperatore di un canale quantistico.
Kraus(dati[, input_dims, output_dims] )Rappresentazione di Kraus di un canale quantistico.
Stinespring(dati[, input_dims, output_dims] )Rappresentazione di Stinespring di un canale quantistico.
Chi(dati[, input_dims, output_dims] )Rappresentazione della base di Pauli della matrice Chi di un canale quantistico.
PTM(dati[, input_dims, output_dims] )Rappresentazione della matrice di trasferimento di Pauli (PTM) di un canale quantistico.

Misure

average_gate_fidelity

qiskit.quantum_info.average_gate_fidelity(channel, target=None, require_cp=True, require_tp=False)

GitHub

Restituisce la fedeltà media del gate di un canale quantistico rumoroso.

La fedeltà media del gate FaveF_{\text{ave}} è data da

Fave(E,U)=dψψUE(ψ ⁣ψ)Uψ=dFpro(E,U)+1d+1\begin{aligned} F_{\text{ave}}(\mathcal{E}, U) &= \int d\psi \langle\psi|U^\dagger \mathcal{E}(|\psi\rangle\!\langle\psi|)U|\psi\rangle \\ &= \frac{d F_{\text{pro}}(\mathcal{E}, U) + 1}{d + 1} \end{aligned}

dove Fpro(E,U)F_{\text{pro}}(\mathcal{E}, U) è la dimensione process_fidelity() del canale quantistico di ingresso E\mathcal{E} con un target unitario UU, e dd è la dimensione del canale.

Parametri

  • channel (QuantumChannel or Operator) – canale quantistico rumoroso.
  • target (Operator or None) – operatore unitario di destinazione. Se target è None, viene utilizzato l'operatore identità[. Impostazione predefinita: None].
  • require_cp (bool) – controlla se i canali di ingresso e di destinazione sono completamente positivi e se l'avviso di log non-CP contiene autovalori negativi della matrice di Choi [Predefinito: Vero].
  • require_tp (bool) – controlla se i canali di ingresso e di destinazione sono conservativi della traccia e se l'avviso di registro non TP contiene autovalori negativi della matrice parziale di Choi Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Predefinito: Vero].

Risultati

La fedeltà media del gate FaveF_{\text{ave}}.

Tipo di restituzione

mobile

Aumenti

QiskitError - se il canale e la destinazione non hanno le stesse dimensioni o hanno dimensioni di ingresso e di uscita diverse.

process_fidelity

qiskit.quantum_info.process_fidelity(channel, target=None, require_cp=True, require_tp=True)

GitHub

Restituire la fedeltà di processo di un canale quantistico rumoroso.

La fedeltà di processo Fpro(E,F)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) tra due canali quantistici E,F\mathcal{E}, \mathcal{F} è data da

Fpro(E,F)=F(ρE,ρF)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) = F(\rho_{\mathcal{E}}, \rho_{\mathcal{F}})

dove FF è la state_fidelity(), ρE=ΛE/d\rho_{\mathcal{E}} = \Lambda_{\mathcal{E}} / d è la matrice normalizzata Choi per il canale E\mathcal{E}, e dd è la dimensione di ingresso di E\mathcal{E}.

Quando il canale di destinazione è unitario, ciò equivale a

Fpro(E,U)=Tr[SUSE]d2F_{\text{pro}}(\mathcal{E}, U) = \frac{Tr[S_U^\dagger S_{\mathcal{E}}]}{d^2}

dove SE,SUS_{\mathcal{E}}, S_{U} sono rispettivamente le SuperOp matrici relative al canale quantistico di ingresso E\mathcal{E} e all'unitario di destinazione UU, mentre dd è la dimensione di ingresso del canale.

Parametri

  • channel (Operator or QuantumChannel) – canale quantistico di input.
  • target (Operator or QuantumChannel or None) – canale quantistico di destinazione. Se target è None, viene utilizzato l'operatore identità[. Impostazione predefinita: None].
  • require_cp (bool) – controlla se i canali di ingresso e di destinazione sono completamente positivi e se l'avviso di log non-CP contiene autovalori negativi della matrice di Choi [Predefinito: Vero].
  • require_tp (bool) – controlla se i canali di ingresso e di destinazione sono conservativi della traccia e se l'avviso di registro non TP contiene autovalori negativi della matrice parziale di Choi Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Predefinito: Vero].

Risultati

La fedeltà del processo FproF_{\text{pro}}.

Tipo di restituzione

mobile

Aumenti

QiskitError - se il canale e la destinazione non hanno le stesse dimensioni.

gate_error

qiskit.quantum_info.gate_error(channel, target=None, require_cp=True, require_tp=False)

GitHub

Restituisce l'errore di gate di un canale quantistico rumoroso.

L'errore del gate EE è dato dall'infedeltà media del gate

E(E,U)=1Fave(E,U)E(\mathcal{E}, U) = 1 - F_{\text{ave}}(\mathcal{E}, U)

dove Fave(E,U)F_{\text{ave}}(\mathcal{E}, U) è il canale quantistico di ingresso average_gate_fidelity() del canale quantistico di ingresso E\mathcal{E} con un target unitario UU.

Parametri

  • channel (QuantumChannel) – canale quantistico rumoroso.
  • target (Operator or None) – operatore unitario di destinazione. Se target è None, viene utilizzato l'operatore identità[. Impostazione predefinita: None].
  • require_cp (bool) – controlla se i canali di ingresso e di destinazione sono completamente positivi e se l'avviso di log non-CP contiene autovalori negativi della matrice di Choi [Predefinito: Vero].
  • require_tp (bool) – controlla se i canali di ingresso e di destinazione sono conservativi della traccia e se l'avviso di registro non TP contiene autovalori negativi della matrice parziale di Choi Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Predefinito: Vero].

Risultati

L'errore medio del gate EE.

Tipo di restituzione

mobile

Aumenti

QiskitError - se il canale e la destinazione non hanno le stesse dimensioni o hanno dimensioni di ingresso e di uscita diverse.

diamond_norm

qiskit.quantum_info.diamond_norm(choi, solver='SCS', **kwargs)

GitHub

Restituisce la norma di diamante dell'oggetto canale quantistico in ingresso.

Questa funzione calcola la traccia-norma completamente vincolata (spesso chiamata diamond-norm) dell'oggetto canale quantistico in ingresso, utilizzando il programma semidefinito di riferimento [1].

Parametri

  • choi (Choi or QuantumChannel) – un oggetto canale quantistico o un array di matrici di Choi.
  • solver (str) – Il solutore da utilizzare.
  • kwargs - argomenti opzionali da passare al solutore CVXPY.

Risultati

La norma di traccia completamente vincolata E\|\mathcal{E}\|_{\diamond}.

Tipo di restituzione

mobile

Aumenti

QiskitError - se il pacchetto CVXPY non può essere trovato.

Ulteriori informazioni:

L'ingresso di questa funzione non è tipicamente un canale quantistico CPTP, ma piuttosto la differenza tra due canali quantistici ΔE\|\Delta\mathcal{E}\|_\diamond dove ΔE=E1E2\Delta\mathcal{E} = \mathcal{E}_1 - \mathcal{E}_2.

Riferimenti:

J. Watrous. "Simpler semidefinite programs for completely bounded norms", arXiv:1207.5726 [quant-ph] (2012).

Nota

Questa funzione richiede l'installazione del pacchetto opzionale CVXPY. Eventuali kwarg aggiuntivi saranno passati alla funzione cvxpy.solve . Per informazioni sui solutori SDP disponibili, consultare la documentazione di CVXPY.

state_fidelity

qiskit.quantum_info.state_fidelity(state1, state2, validate=True)

GitHub

Restituisce la fedeltà di stato tra due stati quantistici.

La fedeltà di stato FF per gli stati di input della matrice di densità ρ1,ρ2\rho_1, \rho_2 è data da

F(ρ1,ρ2)=Tr[ρ1ρ2ρ1]2.F(\rho_1, \rho_2) = Tr[\sqrt{\sqrt{\rho_1}\rho_2\sqrt{\rho_1}}]^2.

Se uno degli stati è uno stato puro questo si semplifica a F(ρ1,ρ2)=ψ1ρ2ψ1F(\rho_1, \rho_2) = \langle\psi_1|\rho_2|\psi_1\rangle, dove ρ1=ψ1 ⁣ψ1\rho_1 = |\psi_1\rangle\!\langle\psi_1|.

Parametri

Risultati

La fedeltà dello Stato F(ρ1,ρ2)F(\rho_1, \rho_2).

Tipo di restituzione

mobile

Aumenti

QiskitError - se validate=True e gli ingressi sono stati quantici non validi.

purity

qiskit.quantum_info.purity(state, validate=True)

GitHub

Calcolare la purezza di uno stato quantistico.

La purezza di una matrice di densità ρ\rho è

Purity(ρ)=Tr[ρ2]\text{Purity}(\rho) = Tr[\rho^2]

Parametri

  • state (Statevector orDensityMatrix) – uno stato quantistico.
  • validate (bool) – controlla se lo stato dell'ingresso è valido [Predefinito: Vero]

Risultati

la purezza Tr[ρ2]Tr[\rho^2].

Tipo di restituzione

mobile

Aumenti

QiskitError - se l'input non è uno stato quantico valido.

concurrence

qiskit.quantum_info.concurrence(state)

GitHub

Calcolare la concomitanza di uno stato quantistico.

La concorrenza di un ψ|\psi\rangle bipartito Statevector è data da

C(ψ)=2(1Tr[ρ02])C(|\psi\rangle) = \sqrt{2(1 - Tr[\rho_0^2])}

dove ρ0=Tr1[ψ ⁣ψ]\rho_0 = Tr_1[|\psi\rangle\!\langle\psi|] è lo stato ridotto ottenuto applicando la partial_trace() allo stato di ingresso.

Per le matrici di densità la concomitanza è definita solo per gli stati a 2 qubit, ed è data da:

C(ρ)=max(0,λ1λ2λ3λ4)C(\rho) = \max(0, \lambda_1 - \lambda_2 - \lambda_3 - \lambda_4)

dove λ1λ2λ3λ4\lambda _1 \ge \lambda _2 \ge \lambda _3 \ge \lambda _4 sono gli autovalori ordinati della matrice R=ρ(YY)ρ(YY)ρR=\sqrt{\sqrt{\rho }(Y\otimes Y)\overline{\rho}(Y\otimes Y)\sqrt{\rho}}.

Parametri

state (Statevector orDensityMatrix) – uno stato quantistico a 2 qubit.

Risultati

Il consenso.

Tipo di restituzione

mobile

Aumenti

  • QiskitError - se lo stato di ingresso non è valido QuantumState.
  • QiskitError - se l'input non è un bipartito QuantumState.
  • QiskitError - se la matrice di densità in ingresso non è uno stato a 2 qubit.

entropy

qiskit.quantum_info.entropy(state, base=2)

GitHub

Calcolare l'entropia di von-Neumann di uno stato quantistico.

L'entropia SS è data da

S(ρ)=Tr[ρlog(ρ)]S(\rho) = - Tr[\rho \log(\rho)]

Parametri

Risultati

L'entropia di von-Neumann S(rho).

Tipo di restituzione

mobile

Aumenti

QiskitError - se lo stato di ingresso non è valido QuantumState.

entanglement_of_formation

qiskit.quantum_info.entanglement_of_formation(state)

GitHub

Calcolare l'entanglement della formazione di uno stato quantistico.

Lo stato quantistico in ingresso deve essere un vettore di stato bipartito o una matrice di densità a 2 qubit.

Parametri

state (Statevector orDensityMatrix) – uno stato quantistico a 2 qubit.

Risultati

L'entanglement della formazione.

Tipo di restituzione

mobile

Aumenti

  • QiskitError - se lo stato di ingresso non è valido QuantumState.
  • QiskitError - se l'input non è un bipartito QuantumState.
  • QiskitError - se la matrice di densità in ingresso non è uno stato a 2 qubit.

mutual_information

qiskit.quantum_info.mutual_information(state, base=2)

GitHub

Calcolare l'informazione reciproca di uno stato bipartito.

La mutua informazione II è data da:

I(ρAB)=S(ρA)+S(ρB)S(ρAB)I(\rho_{AB}) = S(\rho_A) + S(\rho_B) - S(\rho_{AB})

dove ρA=TrB[ρAB],ρB=TrA[ρAB]\rho_A=Tr_B[\rho_{AB}], \rho_B=Tr_A[\rho_{AB}], sono le matrici di densità ridotta dello stato bipartito ρAB\rho_{AB}.

Parametri

Risultati

L'informazione reciproca I(ρAB)I(\rho_{AB}).

Tipo di restituzione

mobile

Aumenti

  • QiskitError - se lo stato di ingresso non è valido QuantumState.
  • QiskitError - se l'input non è un bipartito QuantumState.

Funzioni di utilità

Quaternion(dati)Una classe che rappresenta un quaternione.

partial_trace

qiskit.quantum_info.partial_trace(state, qargs)

GitHub

Restituire la matrice di densità ridotta tracciando una parte dello stato quantico.

Se si esegue il tracciamento di tutti i sottosistemi, questa operazione restituisce lo trace() stato di ingresso.

Parametri

Risultati

La matrice di densità ridotta.

Tipo di restituzione

DensityMatrix

Aumenti

QiskitError - se lo stato dell'ingresso non è valido.

schmidt_decomposition

qiskit.quantum_info.schmidt_decomposition(state, qargs)

GitHub

Restituisce la decomposizione di Schmidt di uno stato quantistico puro.

Per uno stato bipartito arbitrario:

ψAB=i,jcijxiAyjB,|\psi\rangle_{AB} = \sum_{i,j} c_{ij} |x_i\rangle_A \otimes |y_j\rangle_B,

la sua Decomposizione di Schmidt è data dalla somma a singolo indice su k:

ψAB=kλkukAvkB|\psi\rangle_{AB} = \sum_{k} \lambda_{k} |u_k\rangle_A \otimes |v_k\rangle_B

dove ukA|u_k\rangle_A e vkB|v_k\rangle_B sono un insieme ortonormale di vettori nei rispettivi spazi AA e BB, e i coefficienti di Schmidt λk\lambda_k sono valori reali positivi.

Parametri

  • state (Statevector orDensityMatrix) – lo stato di ingresso.
  • qargs (list) – l'elenco delle posizioni dello stato di ingresso corrispondenti al sottosistema BB.

Risultati

elenco di tuple (s, u, v), dove s (float) sono i coefficienti di Schmidt λk\lambda_k, e u (Statevector), v (Statevector) sono i vettori di Schmidt ukA|u_k\rangle_A, ukB|u_k\rangle_B, rispettivamente.

Tipo di restituzione

elenco

Aumenti

  • QiskitError - se Input qargs non è un elenco di posizioni dello stato Input.
  • QiskitError - se Input qargs non è un sottoinsieme corretto di Input state.
Nota

In Qiskit, i qubit sono ordinati utilizzando la notazione little-endian, con i qubit meno significativi che hanno indici più piccoli. Ad esempio, un sistema a quattro qubit è rappresentato come q3q2q1q0|q_3q_2q_1q_0\rangle. Utilizzando questa convenzione, impostando qargs=[0] si partizionerà lo stato come q3q2q1Aq0B|q_3q_2q_1\rangle_A\otimes|q_0\rangle_B. Inoltre, i qubit saranno organizzati in questa notazione indipendentemente dall'ordine in cui vengono passati. Ad esempio, passando qargs=[1,2] o qargs=[2,1] si ottiene il partizionamento dello stato come q3q0Aq2q1B|q_3q_0\rangle_A\otimes|q_2q_1\rangle_B.

shannon_entropy

qiskit.quantum_info.shannon_entropy(pvec, base=2)

GitHub

Calcolare l'entropia di Shannon di un vettore di probabilità.

L'entropia di Shannon di un vettore di probabilità p=[p0,...,pn1]\vec{p} = [p_0, ..., p_{n-1}] è definita come

H(p)=i=0n1pilogb(pi)H(\vec{p}) = \sum_{i=0}^{n-1} p_i \log_b(p_i)

dove bb è la base log e (default 2), e 0logb(0)00 \log_b(0) \equiv 0.

Parametri

  • pvec (array_like) – un vettore di probabilità.
  • base (int) – la base del logaritmo [Predefinito: 2].

Risultati

L'entropia di Shannon H(pvec).

Tipo di restituzione

mobile

commutator

qiskit.quantum_info.commutator(a, b)

GitHub

Calcolare il commutatore di a e b.

abba.ab - ba.

Parametri

  • a (OperatorTypeT) – Operatore a.
  • b (OperatorTypeT) – Operatore b.

Risultati

Il commutatore

Tipo di restituzione

OperatorTypeT

anti_commutator

qiskit.quantum_info.anti_commutator(a, b)

GitHub

Calcolare l'anticommutatore di a e b.

ab+ba.ab + ba.

Parametri

  • a (OperatorTypeT) – Operatore a.
  • b (OperatorTypeT) – Operatore b.

Risultati

L'anticommutatore

Tipo di restituzione

OperatorTypeT

double_commutator

qiskit.quantum_info.double_commutator(a, b, c, *, commutator=True)

GitHub

Calcolo del doppio commutatore simmetrico di a, b e c.

Si veda anche l'equazione ( 13.6.18 ) in [1].

Se il commutatore è Vero, restituisce

[[A,B],C]/2+[A,[B,C]]/2=(2ABC+2CBABACCABACBBCA)/2.[[A, B], C]/2 + [A, [B, C]]/2 = (2ABC + 2CBA - BAC - CAB - ACB - BCA)/2.

Se il commutatore è False, restituisce

{[A,B],C}/2+{A,[B,C]}/2=(2ABC2CBABAC+CABACB+BCA)/2.\lbrace[A, B], C\rbrace/2 + \lbrace A, [B, C]\rbrace/2 = (2ABC - 2CBA - BAC + CAB - ACB + BCA)/2.

Parametri

  • a (OperatorTypeT) – Operatore a.
  • b (OperatorTypeT) – Operatore b.
  • c (OperatorTypeT) – Operatore c.
  • commutator (bool) – Se True calcolare il doppio commutatore, se False il doppio anticommutatore.

Risultati

Il doppio commutatore

Tipo di restituzione

OperatorTypeT

Riferimenti

[1] : R. McWeeny.

Metodi di meccanica quantistica molecolare. seconda edizione, Academic Press, 1992. ISBN 0-12-486552-6.


Casuale

random_statevector

qiskit.quantum_info.random_statevector(dims, seed=None)

GitHub

Genera un vettore di stato casuale.

Il vettore di stato è campionato dalla distribuzione uniforme. È la misura indotta dalla misura di Haar sulle matrici unitarie.

Parametri

  • dims (int ortuple) – le dimensioni dello Stato.
  • seed (int or np.random.Generator) – Opzionale. Impostare un seme o un generatore fisso per l'RNG.

Risultati

il vettore di stato casuale.

Tipo di restituzione

Statevector

Riferimenti:

K. Zyczkowski e H. Sommers (2001), "Induced measures in the space of mixed quantum states", J. Fisico. R: Matematica. Gen. 34 7111.

random_density_matrix

qiskit.quantum_info.random_density_matrix(dims, rank=None, method='Hilbert-Schmidt', seed=None)

GitHub

Genera una matrice di densità casuale.

Parametri

  • dims (int ortuple) – le dimensioni di DensityMatrix.
  • rank (int or None) – il rango della matrice di densità. Il valore predefinito è "full-rank".
  • method (string) – Opzionale. Il metodo da utilizzare. hilbert-Schmidt": (predefinito) campione dalla metrica Hilbert-Schmidt. bures": campione della metrica di Bures.
  • seed (int or np.random.Generator) – Opzionale. Impostare un seme o un generatore fisso per l'RNG.

Risultati

la matrice di densità casuale.

Tipo di restituzione

DensityMatrix

Aumenti

QiskitError - se il metodo non è valido.

random_unitary

qiskit.quantum_info.random_unitary(dims, seed=None)

GitHub

Restituisce un Operatore unitario casuale.

L'operatore è campionato dalla misura unitaria di Haar.

Parametri

  • dims (int ortuple) – le dimensioni di ingresso dell'Operatore.
  • seed (int or np.random.Generator) – Opzionale. Impostare un seme o un generatore fisso per l'RNG.

Risultati

un operatore unitario.

Tipo di restituzione

Operatore

random_hermitian

qiskit.quantum_info.random_hermitian(dims, traceless=False, seed=None)

GitHub

Restituisce un Operatore ermetico casuale.

L'operatore è campionato dall'insieme unitario gaussiano.

Parametri

  • dims (int ortuple) – la dimensione di ingresso dell'Operatore.
  • traceless (bool) – Opzionale. Se vero, sottrae le voci diagonali per restituire un operatore hermitiano senza tracce (predefinito: falso).
  • seed (int or np.random.Generator) – Opzionale. Impostare un seme o un generatore fisso per l'RNG.

Risultati

un operatore hermitiano.

Tipo di restituzione

Operatore

random_pauli

qiskit.quantum_info.random_pauli(num_qubits, group_phase=False, seed=None)

GitHub

Restituisce un valore casuale Pauli.

Parametri

  • num_qubits (int) – Il numero di qubit.
  • group_phase (bool) – Facoltativo. Se si genera True una fase casuale. In caso contrario, la fase verrà impostata in modo tale che il coefficiente di Pauli sia pari a +1 (impostazione predefinita: False).
  • seed (int |Generator | None) – Facoltativo. Imposta un seme o un generatore fisso per l'RNG.

Risultati

Un Pauli a caso.

Tipo di restituzione

Pauli

random_clifford

qiskit.quantum_info.random_clifford(num_qubits, seed=None)

GitHub

Restituisce un operatore Clifford casuale.

La Clifford viene campionata secondo il metodo del riferimento [1].

Parametri

  • num_qubits (int) – Il numero di qubit per l'operatore di Clifford.
  • seed (int |Generator | None) – Facoltativo. Imposta un seme o un generatore fisso per l'RNG.

Risultati

Un operatore di Clifford casuale.

Tipo di restituzione

Clifford

Riferimenti:

[1] S. Bravyi e D. Maslov (2020). I circuiti privi di Hadamard mettono in luce la struttura del gruppo di Clifford. arXiv:2003.09412

random_quantum_channel

qiskit.quantum_info.random_quantum_channel(input_dims=None, output_dims=None, rank=None, seed=None)

GitHub

Restituisce un canale quantistico CPTP casuale.

In questo modo si costruisce l'operatore di Stinespring per il canale quantistico campionando un'isometria casuale dalla misura unitaria di Haar.

Parametri

  • input_dims (int ortuple) – la dimensione di ingresso del canale.
  • output_dims (int ortuple) – la dimensione di uscita del canale.
  • rank (int) – Opzionale. Il rango della matrice Choi del canale quantistico.
  • seed (int or np.random.Generator) – Opzionale. Impostare un seme o un generatore fisso per l'RNG.

Risultati

un operatore di canale quantistico.

Tipo di restituzione

Stinespring

Aumenti

QiskitError - se il rango o le dimensioni non sono validi.

random_cnotdihedral

qiskit.quantum_info.random_cnotdihedral(num_qubits, seed=None)

GitHub

Restituisce un elemento CNOTDiedrale casuale.

Parametri

  • num_qubits (int) – il numero di qubit per l'oggetto CNOTDihedral.
  • seed (int or RandomState) – Opzionale. Impostare un seme o un generatore fisso per l'RNG.

Risultati

un elemento CNOTDiedrale casuale.

Tipo di restituzione

CNOTDihedral

random_pauli_list

qiskit.quantum_info.random_pauli_list(num_qubits, size=1, seed=None, phase=True)

GitHub

Restituisce un valore casuale PauliList.

Parametri

  • num_qubits (int) – Il numero di qubit.
  • size (int) – Opzionale. La lunghezza dell'elenco Pauli (predefinito: 1).
  • seed (int |Generator | None) – Facoltativo. Imposta un seme o un generatore fisso per l'RNG.
  • phase (bool) – Facoltativo. Se le True fasi di Pauli sono casuali, altrimenti le fasi sono fissate a 0 (impostazione predefinita: True).

Risultati

Una cosa a caso PauliList.

Tipo di restituzione

PauliList


Analisi

hellinger_distance

qiskit.quantum_info.hellinger_distance(dist_p, dist_q)

GitHub

Calcola la distanza di Hellinger tra due distribuzioni di conteggi.

Parametri

  • dist_p (dict) – Primo dettato dei conteggi.
  • dist_q (dict) – Secondo dettato dei conteggi.

Risultati

Distanza

Tipo di restituzione

mobile

Riferimenti

Distanza di Hellinger @ wikipedia

hellinger_fidelity

qiskit.quantum_info.hellinger_fidelity(dist_p, dist_q)

GitHub

Calcola la fedeltà di Hellinger tra due distribuzioni di conteggi.

La fedeltà è definita come (1H2)2\left(1-H^{2}\right)^{2} dove H è la distanza di Hellinger. Questo valore è limitato nell'intervallo [0, 1].

Questo equivale alla fedeltà classica standard F(Q,P)=(ipiqi)2F(Q,P)=\left(\sum_{i}\sqrt{p_{i}q_{i}}\right)^{2} che a sua volta è uguale alla fedeltà dello stato quantistico per matrici di densità diagonali.

Parametri

  • dist_p (dict) – Primo dettato dei conteggi.
  • dist_q (dict) – Secondo dettato dei conteggi.

Risultati

Fiducia

Tipo di restituzione

mobile

Esempio

from qiskit import QuantumCircuit
from qiskit.quantum_info.analysis import hellinger_fidelity
from qiskit.providers.basic_provider import BasicSimulator

qc = QuantumCircuit(5, 5)
qc.h(2)
qc.cx(2, 1)
qc.cx(2, 3)
qc.cx(3, 4)
qc.cx(1, 0)
qc.measure(range(5), range(5))

sim = BasicSimulator()
res1 = sim.run(qc).result()
res2 = sim.run(qc).result()

hellinger_fidelity(res1.get_counts(), res2.get_counts())

Riferimenti

Fedeltà quantistica @ wikipedia Distanza di Hellinger @ wikipedia

Z2Symmetries(simmetrie, sq_paulis, sq_list)Il convertitore di simmetria $Z_2$ identifica le simmetrie dall'hamiltoniana del problema e le utilizza per fornire una rappresentazione affusolata - più efficiente - degli operatori come Paulis per questo problema.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.