qiskit.circuit.library.unitary_overlap
qiskit.circuit.library.unitary_overlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)
Circuit qui renvoie le chevauchement entre deux unitaires .
Les circuits quantiques d'entrée doivent représenter des opérations unitaires, puisqu'ils doivent être inversables. Si les entrées ont des paramètres, ceux-ci sont remplacés par des ParameterVectoravec les noms “p1” (pour le circuit unitary1) et “p2” (pour le circuit unitary_2) dans le circuit de sortie.
Ce circuit est généralement utilisé pour calculer la fidélité :
en calculant la probabilité d'être dans la chaîne de bits entièrement zéros, ou, de manière équivalente, la valeur d'espérance du projecteur .
Circuit de référence :
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')
Paramètres
- unitary1 (QuantumCircuit) – Opération unitaire agissant sur le vecteur ket.
- unitary2 (QuantumCircuit) – Unitaire dont l'inverse agit sur le vecteur bra.
- prefix1 (str) – Le nom du vecteur de paramètres associé à
unitary1, s'il est paramétré. La valeur par défaut est"p1". - prefix2 (str) – Le nom du vecteur de paramètres associé à
unitary2, s'il est paramétré. La valeur par défaut est"p2". - insert_barrier (bool) – Insérer ou non une barrière entre les deux unitaires.
Augmentations
- CircuitError – Le nombre de qubits dans
unitary1etunitary2ne correspond pas. - CircuitError – Les entrées contiennent des mesures et/ou des réinitialisations.
Type de retour