Skip to main content
IBM Quantum Platform

UnitaryOverlap

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

GitHub

베이스: QuantumCircuit

두 유니타리 사이의 중첩을 반환하는 회로 U2U1U_2^{\dag} U_1.

입력된 양자 회로는 반전 가능해야 하므로 단일 연산을 나타내야 합니다. 입력에 매개변수가 있는 경우, 입력은 다음과 같이 대체됩니다 ParameterVector를 “p1” (회로 unitary1)와 “p2” (회로 unitary_2)라는 이름으로 출력 회로에서 대체합니다.

이 회로는 일반적으로 충실도를 계산하는 데 사용됩니다:

0U2U102\left|\langle 0| U_2^{\dag} U_1|0\rangle\right|^{2}

가 모든 0 비트 문자열에 있을 확률, 즉 프로젝터 00|0\rangle\langle 0| 의 기대값을 계산하여 계산합니다.

예:

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)
버전부터 사용되지 않음 2.1

qiskit.circuit.library.overlap.UnitaryOverlap 클래스는 키스킷 2.1 에서 더 이상 사용되지 않습니다. 키스킷 3.0 에서 제거됩니다. 대신 qiskit.circuit.library.unitary_overlap 을 사용하세요.

매개변수

  • unitary1 (QuantumCircuit) – 케트 벡터에 작용하는 유니터리 연산.
  • unitary2 (QuantumCircuit) – 역행렬이 브라 벡터에 작용하는 유니터리.
  • prefix1 (str) – unitary1 에 연결된 매개변수 벡터의 이름(매개변수화된 경우)입니다. 기본값은 "p1" 입니다.
  • prefix2 (str) – unitary2 에 연결된 매개변수 벡터의 이름(매개변수화된 경우)입니다. 기본값은 "p2" 입니다.
  • insert_barrier (bool) – 두 유니타리 사이에 배리어를 삽입할지 여부입니다.

레이즈

  • CircuitError – 와 unitary2unitary1 큐비트 수가 일치하지 않습니다.
  • CircuitError – 입력값에는 측정값 및/또는 초기화 값이 포함됩니다.

속성

name

유형: str

사람이 읽을 수 있는 회로의 이름입니다.

예제

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.