UnitaryOverlap
class qiskit.circuit.library.UnitaryOverlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)
Basen: QuantumCircuit
Schaltung, die die Überschneidung zwischen zwei Einheiten zurückgibt .
Die Eingangsquantenschaltungen müssen unitäre Operationen darstellen, da sie invertierbar sein müssen. Wenn die Eingänge Parameter haben, werden sie durch ParameterVectors mit den Namen “p1” (für die Schaltung unitary1) und “p2” (für die Schaltung unitary_2) in der Ausgangsschaltung ersetzt.
Diese Schaltung wird normalerweise zur Berechnung der Wiedergabetreue verwendet:
durch Berechnung der Wahrscheinlichkeit, in der All-Zero-Bitkette zu sein, oder gleichwertig den Erwartungswert des Projektors .
Beispiel:
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)Die Klasse qiskit.circuit.library.overlap.UnitaryOverlap ist ab Qiskit 2.1 veraltet. Sie wird in Qiskit 3.0 entfernt. Verwenden Sie stattdessen qiskit.circuit.library.unitary_overlap.
Parameter
- unitary1 (QuantumCircuit) – Einheitsoperator, der auf den Ket-Vektor wirkt.
- unitary2 (QuantumCircuit) – Einheitselement, dessen Inverse auf den Bra-Vektor wirkt.
- prefix1 (str) – Der Name des Parametervektors, der mit
unitary1verbunden ist, wenn er parametrisiert ist. Die Standardeinstellung ist"p1". - prefix2 (str) – Der Name des Parametervektors, der mit
unitary2verbunden ist, wenn er parametrisiert ist. Die Standardeinstellung ist"p2". - insert_barrier (bool) – Ob eine Barriere zwischen den beiden Einheiten eingefügt werden soll.
Erhöht
- CircuitError – Die Anzahl der Qubits in
unitary1undunitary2stimmt nicht überein. - CircuitError – Die Eingaben enthalten Messwerte und/oder Rücksetzungen.
Attribute
name
Typ: str
Ein von Menschen lesbarer Name für den Stromkreis.
Beispiel
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit