Skip to main content
IBM Quantum Platform

qiskit.circuit.library.unitary_overlap

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

GitHub

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 in der Regel für die 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|.

Referenzkreislauf:

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')
Schaltplan, der durch den vorherigen Code ausgegeben wurde.

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.

Rückgabetyp

QuantumCircuit

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.