Skip to main content
IBM Quantum Platform

UnitaryOverlap

class qiskit.circuit.library.UnitaryOverlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)

GitHub

Basen: QuantumCircuit

Schaltung, die die Überschneidung zwischen zwei Einheiten zurückgibt U2†U1U_2^{\dag} U_1.

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:

∣⟨0∣U2†U1∣0⟩∣2\left|\langle 0| U_2^{\dag} U_1|0\rangle\right|^{2}

durch Berechnung der Wahrscheinlichkeit, in der All-Zero-Bitkette zu sein, oder gleichwertig den Erwartungswert des Projektors ∣0⟩⟨0∣|0\rangle\langle 0|.

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)
Veraltet seit Version 2.1

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 unitary1 verbunden ist, wenn er parametrisiert ist. Die Standardeinstellung ist "p1".
  • prefix2 (str) – Der Name des Parametervektors, der mit unitary2 verbunden 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 unitary1 und unitary2 stimmt 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
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.