qiskit.circuit.library.unitary_overlap
qiskit.circuit.library.unitary_overlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)
Circuito che restituisce la sovrapposizione tra due unitari .
I circuiti quantistici di ingresso devono rappresentare operazioni unitarie, poiché devono essere invertibili. Se gli ingressi hanno dei parametri, questi vengono sostituiti da ParameterVectors con i nomi “p1” (per il circuito unitary1) e “p2” (per il circuito unitary_2) nel circuito di uscita.
Questo circuito viene solitamente utilizzato per calcolare la fedeltà:
calcolando la probabilità di essere nella stringa di bit all-zeros o, equivalentemente, il valore di aspettativa del proiettore .
Circuito di riferimento:
import numpy as np
from qiskit.circuit.library import efficient_su2, unitary_overlap
# get two circuit to prepare states of which we compute the overlap
circuit = efficient_su2(2, reps=1)
unitary1 = circuit.assign_parameters(np.random.random(circuit.num_parameters))
unitary2 = circuit.assign_parameters(np.random.random(circuit.num_parameters))
# create the overlap circuit
overlap = unitary_overlap(unitary1, unitary2)
overlap.draw('mpl')
Parametri
- unitary1 (QuantumCircuit) – Operatore unitario che agisce sul vettore ket.
- unitary2 (QuantumCircuit) – Unitario il cui inverso agisce sul vettore bra.
- prefix1 (str) – Il nome del vettore di parametri associato a
unitary1, se è parametrizzato. L'impostazione predefinita è"p1". - prefix2 (str) – Il nome del vettore di parametri associato a
unitary2, se è parametrizzato. L'impostazione predefinita è"p2". - insert_barrier (bool) – Se inserire una barriera tra le due unità.
Aumenti
- CircuitError – Il numero di qubit in
unitary1eunitary2non corrisponde. - CircuitError – Gli input contengono valori di misura e/o comandi di azzeramento.
Tipo di restituzione
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.