UnitaryOverlap
class qiskit.circuit.library.UnitaryOverlap(unitary1, unitary2, prefix1='p1', prefix2='p2', insert_barrier=False)
Bases: QuantumCircuit
Circuito que devuelve el solapamiento entre dos unitarios .
Los circuitos cuánticos de entrada deben representar operaciones unitarias, ya que deben ser invertibles. Si las entradas tienen parámetros, se sustituyen por ParameterVectors con los nombres “p1” (para el circuito unitary1) y “p2” (para el circuito unitary_2) en el circuito de salida.
Este circuito suele emplearse para calcular la fidelidad:
calculando la probabilidad de estar en la cadena de bits de todos los ceros, o lo que es lo mismo, el valor de la expectativa del proyector .
Ejemplo:
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 clase qiskit.circuit.library.overlap.UnitaryOverlap está obsoleta a partir de Qiskit 2.1. Se eliminará en Qiskit 3.0. Utilice qiskit.circuit.library.unitary_overlap en su lugar.
Parámetros
- unitary1 (QuantumCircuit) – Unitario que actúa sobre el vector ket.
- unitary2 (QuantumCircuit) – Unitario cuya inversa opera sobre el vector bra.
- prefix1 (str) – El nombre del vector de parámetros asociado a
unitary1, si está parametrizado. Por defecto"p1". - prefix2 (str) – El nombre del vector de parámetros asociado a
unitary2, si está parametrizado. Por defecto"p2". - insert_barrier (bool) – Si se inserta una barrera entre los dos unitarios.
Eleva
- CircuitError - El número de qubits en
unitary1yunitary2no coincide. - CircuitError - Las entradas contienen medidas y/o reseteos.
Atributos
name
Tipo: str
Un nombre legible para el circuito.
Ejemplo
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit