Skip to main content
IBM Quantum Platform

TwoQubitBasisDecomposer

class qiskit.synthesis.TwoQubitBasisDecomposer(gate, basis_fidelity=1.0, euler_basis='U', pulse_optimize=None)

GitHub

베이스: object

2쿼비트 단위 게이트를 최소한의 사용 횟수로 분해하는 클래스입니다.

매개변수

  • gate (Gate) – KAK 분해에 사용되는 2큐비트 게이트입니다.
  • basis_fidelity (float) – KAK 게이트 적용 시 가정해야 할 충실도. 기본값은 1.0 입니다.
  • euler_basis (str) – 제공될 기준 문자열 OneQubitEulerDecomposer1Q 합성을 위해 제공해야 합니다. 유효한 옵션은 다음과 같습니다. ['ZYZ', 'ZXZ', 'XYX', 'U', 'U3', 'U1X', 'PSX', 'ZSX', 'RR'].
  • pulse_optimize (bool | None) – True, 얽힌 게이트 사이의 로컬 유니터리를 최소화하는 디분해를 시도합니다. 최적의 분해가 구현되지 않으면 예외가 발생합니다. 현재는 [{CX, SX, RZ}] 만 알려져 있습니다. False 인 경우 최적화를 시도하지 마세요. None 인 경우 최적화를 시도하되 알 수 없는 경우 올리지 마세요.

__call__

__call__(unitary, basis_fidelity=None, approximate=True, use_dag=False, *, _num_basis_uses=None)

GitHub

각 기저 애플리케이션에 유한한 basis_fidelity 이 있다는 가정 하에 최상의 근사치를 사용하여 고정 기저와 SU(2)SU(2) 에 대한 2큐비트 unitary 를 분해합니다.

매개변수

  • unitary (Operator or ndarray) – 4×44 \times 4 유니티를 합성합니다.
  • basis_fidelity (float or None) – KAK 게이트 적용 시 가정해야 할 충실도. 지정한 경우 초기화 시 지정된 basis_fidelity 을 재정의합니다.
  • approximate (bool) – 베이시스 충실도가 1.0 보다 작은 경우 근사치입니다.
  • use_dag (bool) – 참이면 a DAGCircuit 는 이 클래스가 호출될 때 QuantumCircuit 대신 반환됩니다.
  • _num_basis_uses (int) – [0, 3으로] 숫자를 전달하여 특정 근사치를 강제 적용합니다.

리턴

합성된 양자 회로.

반환 유형

QuantumCircuit

레이즈

QiskitError – 만약 pulse_optimize 가 True이지만, 어떻게 해야 할지 모를 경우.


메소드

decomp0

static decomp0(target)

GitHub

Ud(x,y,z)\sim U_d(x, y, z) 대상을 00 기본 게이트 사용으로 분해합니다. 결과 UrU_r 추적 있습니다:

Tr(UrUtarget)=4(cos(x)cos(y)cos(z)+jsin(x)sin(y)sin(z)\Big\vert\text{Tr}(U_r\cdot U_\text{target}^{\dag})\Big\vert = 4\Big\vert (\cos(x)\cos(y)\cos(z)+ j \sin(x)\sin(y)\sin(z)\Big\vert

모든 대상과 기반에 최적입니다

decomp1

decomp1(target)

GitHub

11 베이시스 게이트 Ud(a,b,c)\sim U_d(a, b, c) 사용으로 대상 Ud(x,y,z)\sim U_d(x, y, z) 을 분해합니다. 결과 UrU_r 에 추적이 있습니다:

Tr(UrUtarget)=4cos(xa)cos(yb)cos(zc)+jsin(xa)sin(yb)sin(zc)\Big\vert\text{Tr}(U_r \cdot U_\text{target}^{\dag})\Big\vert = 4\Big\vert \cos(x-a)\cos(y-b)\cos(z-c) + j \sin(x-a)\sin(y-b)\sin(z-c)\Big\vert

를 사용하여 z==0 또는 c==0 을 사용하는 모든 대상과 기반에 최적입니다.

decomp2_supercontrolled

decomp2_supercontrolled(target)

GitHub

Ud(x,y,z)\sim U_d(x, y, z) 대상을 22 기본 게이트 사용으로 분해합니다.

초제어 기준 Ud(π/4,b,0)\sim U_d(\pi/4, b, 0), 모두 b, 결과 UrU_r 추적 있음

Tr(UrUtarget)=4cos(z)\Big\vert\text{Tr}(U_r \cdot U_\text{target}^\dag) \Big\vert = 4\cos(z)

cNOT 클래스 Ud(π/4,0,0)\sim U_d(\pi/4, 0, 0) 또는 DCNOT 클래스 Ud(π/4,π/4,0)\sim U_d(\pi/4, \pi/4, 0) 및 모든 대상에 대한 최적의 근사치입니다. b0b \neq 0 에 대해서는 최적이 아닐 수 있습니다(즉, BUd(π/4,π/8,0)B \sim U_d(\pi/4, \pi/8, 0) 을 사용하는 모든 대상에 대한 정확한 분해가 존재하지만 이 분해가 아닐 수도 있습니다). 이것은 초통제 기준 및 목표에 대한 정확한 분해입니다 Ud(x,y,0)\sim U_d(x, y, 0). 초통제되지 않은 기준에 대한 보장은 없습니다.

decomp3_supercontrolled

decomp3_supercontrolled(target)

GitHub

33 용도로 대상을 분해합니다. 이것은 초제어 기준 Ud(π/4,b,0)\sim U_d(\pi/4, b, 0), 모든 b 및 모든 대상에 대한 정확한 분해입니다. 슈퍼컨트롤이 아닌 경우 보장하지 않습니다.

num_basis_gates

num_basis_gates(unitary)

GitHub

입력 단위를 분해하는 데 필요한 기저 게이트의 수를 계산합니다

traces

traces(target)

GitHub

다른 수의 베이시스 게이트에 대해 예상 트레이스 Tr(UUtarget)\Big\vert\text{Tr}(U \cdot U_\text{target}^{\dag})\Big\vert 를 제공합니다.

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