UnitaryOverlap
class qiskit.circuit.library.UnitaryOverlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)
Bases : QuantumCircuit
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 tous zéros, ou, de manière équivalente, la valeur d'espérance du projecteur .
Exemple :
import numpy as np
from qiskit.circuit.library import EfficientSU2, UnitaryOverlap
from qiskit.primitives import Sampler
# get two circuit to prepare states of which we compute the overlap
circuit = EfficientSU2(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 = UnitaryOverlap(unitary1, unitary2)
# sample from the overlap
sampler = Sampler(options={"shots": 100})
result = sampler.run(overlap).result()
# the fidelity is the probability to measure 0
fidelity = result.quasi_dists[0].get(0, 0)La classe qiskit.circuit.library.overlap.UnitaryOverlap est obsolète depuis Qiskit 2.1. Elle sera supprimée à Qiskit 3.0. Utilisez plutôt qiskit.circuit.library.unitary_overlap.
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.
Attributs
name
Type : str
Un nom lisible par l'homme pour le circuit.
Exemple
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit