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

두 유니타리 사이의 중첩을 반환하는 회로 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 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')
이전 코드에서 출력한 회로도입니다.

매개변수

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

레이즈

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

리턴 유형

QuantumCircuit

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.