SuperOp
class qiskit.quantum_info.SuperOp(data, input_dims=None, output_dims=None)
Basi: QuantumChannel
Rappresentazione del superoperatore di un canale quantistico.
La rappresentazione del superoperatore di un canale quantistico è una matrice tale che l'evoluzione di a DensityMatrix è data da
dove la notazione a due tacche indica un vettore formato impilando le colonne della matrice (vettorizzazione delle colonne).
Per ulteriori dettagli si veda il riferimento [1].
Riferimenti
- 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 Superoperatore 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 superoperatore.
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 una matrice Numpy di forma ( 4**N, 4**N ) verranno utilizzati sistemi di qubit. Se l'operatore di input non è un operatore N-qubit, assegnerà un singolo sottosistema con dimensione specificata dalla forma dell'input.
Attributi
atol
Valore predefinito: 1e-08
data
Dati di ritorno.
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()
Restituisce il canale quantistico aggiunto.
Questo è equivalente al coniugato della matrice Hermitiana nella rappresentazione SuperOp cioè per un canale , la SuperOp del canale adiacente è .
compose
compose(other, qargs=None, front=False)
Restituisce l'operatore composizione con un altro SuperOp.
Parametri
- other (SuperOp) – un oggetto SuperOp.
- 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 composto SuperOp.
Tipo di restituzione
Aumenti
QiskitError – se l’altro non può essere convertito in un operatore o presenta dimensioni incompatibili con i sottosistemi specificati.
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()
Restituisce il canale quantistico coniugato.
Questo è equivalente alla matrice complessa coniugata nella rappresentazione SuperOp cioè per un canale , la SuperOp del canale coniugato è .
copy
dot
dot(other, qargs=None)
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
Il prodotto di punti può essere ottenuto utilizzando l'operatore binario @ . Quindi a.dot(b) è equivalente a a @ b.
expand
expand(other)
Restituisce il prodotto tensoriale di ordine inverso con un altro SuperOp.
Parametri
other (SuperOp) – un oggetto SuperOp.
Risultati
il prodotto tensoriale , dove
è l'attuale SuperOp, e è l'altro SuperOp.
Tipo di restituzione
input_dims
input_dims(qargs=None)
Restituisce una tupla di dimensioni di ingresso per i sottosistemi specificati.
is_cp
is_cp(atol=None, rtol=None)
Verifica se la matrice di Choi è completamente positiva (CP)
Parametri
Tipo di restituzione
is_cptp
is_cptp(atol=None, rtol=None)
Restituisce True se la traccia è completamente positiva (CPTP).
Parametri
Tipo di restituzione
is_tp
is_tp(atol=None, rtol=None)
Test per verificare se un canale è a conservazione di traccia (TP)
Parametri
Tipo di restituzione
is_unitary
is_unitary(atol=None, rtol=None)
Restituisce True se QuantumChannel è un canale unitario.
Parametri
Tipo di restituzione
output_dims
output_dims(qargs=None)
Restituisce una tupla di dimensioni di uscita per i sottosistemi specificati.
power
power(n)
Restituisce la potenza del canale quantistico.
Parametri
n (float) – l'esponente della potenza.
Risultati
il canale .
Tipo di restituzione
Aumenti
QiskitError – se le dimensioni di ingresso e di uscita dell' SuperOp e non sono uguali.
Per esponenti non positivi o non interi, la potenza è definita come la potenza della matrice della rappresentazione SuperOp cioè per un canale , la SuperOp del canale alimentato è .
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
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)
Restituisce il prodotto tensoriale con un altro SuperOp.
Parametri
other (SuperOp) – un oggetto SuperOp.
Risultati
il prodotto tensoriale , dove
è l'attuale SuperOp, e è l'altro SuperOp.
Tipo di restituzione
Il prodotto tensoriale può essere ottenuto utilizzando l'operatore binario ^ . Quindi a.tensor(b) è equivalente a a ^ b.
to_instruction
to_instruction()
Convertire in un'istruzione di circuito Kraus o UnitaryGate.
Se il canale è unitario, verrà aggiunto come porta unitaria, altrimenti verrà aggiunto come istruzione del simulatore di kraus.
Risultati
Un'istruzione kraus per il canale.
Tipo di restituzione
Aumenti
QiskitError – se i dati di ingresso non costituiscono un canale quantistico CPTP a N qubit.
to_operator
to_operator()
Cercare di convertire il canale in una rappresentazione unitaria Operatore.
Tipo di restituzione