Skip to main content
IBM Quantum Platform

Kraus

class qiskit.quantum_info.Kraus(data, input_dims=None, output_dims=None)

GitHub

Basi: QuantumChannel

Rappresentazione di Kraus di un canale quantistico.

Per un canale quantistico E\mathcal{E}, la rappresentazione di Kraus è data da un insieme di matrici [A0,...,AK1][A_0,...,A_{K-1}] tali che l'evoluzione di a DensityMatrix ρ\rho è data da

E(ρ)=i=0K1AiρAi\mathcal{E}(\rho) = \sum_{i=0}^{K-1} A_i \rho A_i^\dagger

È inoltre possibile scrivere una mappa dell'operatore generale G\mathcal{G} utilizzando la rappresentazione generalizzata di Kraus, data da due insiemi di matrici [A0,...,AK1][A_0,...,A_{K-1}], [B0,...,BK1][B_0,...,B_{K-1}] tali che

G(ρ)=i=0K1AiρBi\mathcal{G}(\rho) = \sum_{i=0}^{K-1} A_i \rho B_i^\dagger

Per ulteriori dettagli si veda il riferimento [1].

Riferimenti

  1. C.J. Legno, J.D. Biamonte, D.G. Cory, Reti tensoriali e calcolo grafico per sistemi quantistici aperti, Quant. Inf. Comp. 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]

Inizializza un operatore di Kraus del canale quantistico.

Parametri

  • data (QuantumCircuit |circuit.instruction.Instruction | BaseOperator | np.ndarray) – dati per l'inizializzazione del superoperatore.
  • input_dims (tuple | None) – le dimensioni del sottosistema di ingresso.
  • output_dims (tuple | None) – le dimensioni del sottosistema di uscita.

Aumenti

QiskitError – se i dati di input non possono essere inizializzati come elenco di matrici di Kraus.

Ulteriori informazioni:

Se le dimensioni di ingresso o di uscita sono Nessuna, vengono determinate automaticamente dai dati di ingresso. Se i dati di input sono un elenco di matrici Numpy di forma (2N,2N)(2^N,\,2^N) verranno utilizzati sistemi di qubit. Se l'ingresso non corrisponde a un canale N-qubit, viene assegnato un singolo sottosistema con dimensione specificata dalla forma dell'ingresso.


Attributi

atol

Valore predefinito: 1e-08

data

Restituisce l'elenco delle matrici di Kraus per il canale.

dim

Restituisce una tupla (forma_input, forma_output).

num_qubits

Restituisce il numero di qubit se si tratta di un operatore a N qubit o altrimenti None.

qargs

Restituisce i qarg per l'operatore.

rtol

Valore predefinito: 1e-05

settings

Impostazioni di ritorno.


Metodi

adjoint

adjoint()

GitHub

Restituisce il canale quantistico aggiunto.

Nota

Questo è equivalente alla matrice coniugata hermitiana nella rappresentazione SuperOp cioè per un canale E\mathcal{E}, la SuperOp del canale adiacente E\mathcal{{E}}^\dagger è SE=SES_{\mathcal{E}^\dagger} = S_{\mathcal{E}}^\dagger.

compose

compose(other, qargs=None, front=False)

GitHub

Restituisce la composizione dell'operatore con un altro Kraus.

Parametri

  • other (Kraus) – un oggetto Kraus.
  • qargs (list or None) – un elenco delle posizioni dei sottosistemi su cui applicare altre operazioni. Se "None" si applica a tutti i sottosistemi (impostazione predefinita: None).
  • front (bool) – Se True, componi utilizzando la moltiplicazione dell'operatore a destra, invece della moltiplicazione a sinistra, [impostazione predefinita: False].

Risultati

Il Kraus composto.

Tipo di restituzione

Kraus

Aumenti

QiskitError – se l’altro non può essere convertito in un operatore o presenta dimensioni incompatibili con i sottosistemi specificati.

Nota

La composizione (&) per default è definita come moltiplicazione matriciale sinistra per gli operatori matriciali, mentre @ (equivalente a dot()) è definita come moltiplicazione matriciale destra. Cioè A & B == A.compose(B) è equivalente a B @ A == B.dot(A) quando A e B sono dello stesso tipo.

Impostando il kwarg front=True si passa alla moltiplicazione matriciale destra ed è equivalente al metodo dot()A.dot(B) == A.compose(B, front=True) .

conjugate

conjugate()

GitHub

Restituisce il canale quantistico coniugato.

Nota

Questo è equivalente alla matrice complessa coniugata nella rappresentazione SuperOp cioè per un canale E\mathcal{E}, la SuperOp del canale coniugato E\overline{{\mathcal{{E}}}} è SE=SES_{\overline{\mathcal{E}^\dagger}} = \overline{S_{\mathcal{E}}}.

copy

copy()

GitHub

Eseguire una copia profonda dell'operatore corrente.

dot

dot(other, qargs=None)

GitHub

Restituisce l'operatore moltiplicato a destra self * altro.

Parametri

  • other (Operator) – un oggetto operatore.
  • qargs (list or None) – un elenco delle posizioni dei sottosistemi su cui applicare altre operazioni. Se "None" si applica a tutti i sottosistemi (impostazione predefinita: None).

Risultati

La matrice destra moltiplicata Operatore.

Tipo di restituzione

Operatore

Nota

Il prodotto di punti può essere ottenuto utilizzando l'operatore binario @ . Quindi a.dot(b) è equivalente a a @ b.

expand

expand(other)

GitHub

Restituisce il prodotto tensoriale di ordine inverso con un altro Kraus.

Parametri

other (Kraus) – un oggetto Kraus.

Risultati

il prodotto tensoriale bab \otimes a, dove aa

è il Kraus attuale e bb è l'altro Kraus.

Tipo di restituzione

Kraus

input_dims

input_dims(qargs=None)

GitHub

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

is_cp

is_cp(atol=None, rtol=None)

GitHub

Verifica se la matrice di Choi è completamente positiva (CP)

Parametri

Tipo di restituzione

bool

is_cptp

is_cptp(atol=None, rtol=None)

GitHub

Restituisce True se la traccia è completamente positiva.

is_tp

is_tp(atol=None, rtol=None)

GitHub

Test per verificare se un canale è a conservazione di traccia (TP)

Parametri

Tipo di restituzione

bool

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Restituisce True se QuantumChannel è un canale unitario.

Parametri

Tipo di restituzione

bool

output_dims

output_dims(qargs=None)

GitHub

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

power

power(n)

GitHub

Restituisce la potenza del canale quantistico.

Parametri

n (float) – l'esponente della potenza.

Risultati

il canale En\mathcal{{E}} ^n.

Tipo di restituzione

SuperOp

Aumenti

QiskitError – se le dimensioni di ingresso e di uscita dell' SuperOp e non sono uguali.

Nota

Per esponenti non positivi o non interi, la potenza è definita come la potenza della matrice della rappresentazione SuperOp cioè per un canale E\mathcal{{E}}, la SuperOp del canale alimentato En\mathcal{{E}}^n è SEn=SEnS_{{\mathcal{{E}}^n}} = S_{{\mathcal{{E}}}}^n.

reshape

reshape(input_dims=None, output_dims=None, num_qubits=None)

GitHub

Restituisce una copia superficiale con le dimensioni dei sottosistemi di ingresso e di uscita rimodellate.

Parametri

  • input_dims (None or tuple) – nuove dimensioni di input del sottosistema. Se Nessuno, le attenuazioni dell'input originale verranno mantenute. [Predefinito: Nessuno].
  • output_dims (None or tuple) – nuove dimensioni di uscita del sottosistema. Se Nessuno, le gradazioni di output originali verranno mantenute. [Predefinito: Nessuno].
  • num_qubits (None or int) – rimodella in un operatore N-qubit [Predefinito: Nessuno].

Risultati

restituisce self con le dimensioni di ingresso e di uscita rimodellate.

Tipo di restituzione

BaseOperator

Aumenti

QiskitError – se la somma delle dimensioni di ingresso o di uscita di tutti i sottosistemi non è costante.

tensor

tensor(other)

GitHub

Restituisce il prodotto tensoriale con un altro Kraus.

Parametri

other (Kraus) – un oggetto Kraus.

Risultati

il prodotto tensoriale aba \otimes b, dove aa

è il Kraus attuale e bb è l'altro Kraus.

Tipo di restituzione

Kraus

Nota

Il prodotto tensoriale può essere ottenuto utilizzando l'operatore binario ^ . Quindi a.tensor(b) è equivalente a a ^ b.

to_instruction

to_instruction()

GitHub

Convertire in un'istruzione di circuito Kraus o UnitaryGate.

Se il canale è unitario, sarà aggiunto come porta unitaria, altrimenti sarà aggiunto come istruzione del simulatore di kraus.

Risultati

Un'istruzione kraus per il canale.

Tipo di restituzione

qiskit.circuit.Instruction

Aumenti

QiskitError – se i dati di ingresso non costituiscono un canale quantistico CPTP a N qubit.

to_operator

to_operator()

GitHub

Cercare di convertire il canale in una rappresentazione unitaria Operatore.

Tipo di restituzione

Operatore

transpose

transpose()

GitHub

Restituisce il canale quantistico trasposto.

Nota

Ciò equivale alla trasposizione della matrice nella SuperOp rappresentazione, ovvero, per un canale E\mathcal{E}, il canale SuperOp del canale trasposto ET\mathcal{{E}}^T è SET=SETS_{\mathcal{E}^T} = S_{\mathcal{E}}^T.

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