TwoQubitControlledUDecomposer
class qiskit.synthesis.TwoQubitControlledUDecomposer(rxx_equivalent_gate, euler_basis='ZXZ')
베이스: object
RXXGate일반적인 2-큐비트 유니터리 연산을, 와 국소적으로 동등한 대상 2-큐비트 게이트를 사용하여 분해한다.
합성 알고리즘
TwoQubitWeylDecomposition어떤 2-큐비트 유니터리 연산 도, 그 캐노니컬(바일) 분해(참조)를 통해, 4개의 단일 큐비트 유니터리 게이트로 둘러싸인 바일 게이트 로 표현될 수 있다:
┌─────┐┌───────┐┌─────┐
q_0: ┤ c2r ├┤0 ├┤ c1r ├
├─────┤│ Weyl │├─────┤
q_1: ┤ c2l ├┤1 ├┤ c1l ├
└─────┘└───────┘└─────┘Weyl 게이트는 세 개의 2-큐비트 회전( )의 곱으로 분해됩니다:
┌─────────┐┌─────────┐
q_0: ┤0 ├┤0 ├─■──────
│ Rxx(a) ││ Ryy(b) │ │ZZ(c)
q_1: ┤1 ├┤1 ├─■──────
└─────────┘└─────────┘그런 다음 및 회전은 단일 큐비트 기저 변환을 사용하여 회전으로 매핑됩니다. 를 사용하여:
┌─────┐┌─────────┐┌───┐
q_0: ┤ Sdg ├┤0 ├┤ S ├
├─────┤│ Rxx(b) │├───┤
q_1: ┤ Sdg ├┤1 ├┤ S ├
└─────┘└─────────┘└───┘그리고 :
┌───┐┌─────────┐┌───┐
q_0: ┤ H ├┤0 ├┤ H ├
├───┤│ Rxx(c) │├───┤
q_1: ┤ H ├┤1 ├┤ H ├
└───┘└─────────┘└───┘마지막으로, 각 회전은 사용자가 제공한 게이트(즉, rxx_equivalent_gateRXXGate )를 통해 구현되며, 이 게이트는 국소적으로 동등한 상태와 회전 각도의 스케일링을 모두 고려한 단일 큐비트 게이트들로 감싸져 있습니다. 모든 회전 연산이 확장된 후, 두 개의 연속된 2-큐비트 게이트 사이에 위치한 모든 단일 큐비트 게이트는 서로 곱해져 통합되므로, 합성된 회로에서는 연산이 rxx_equivalent_gate 최대 3회, 단일 큐비트 유니터리 게이트가 최대 8개 사용됩니다:
┌─────┐┌───────────┐┌─────┐┌───────────┐┌─────┐┌───────────┐┌─────┐
q_0: ┤ d2r ├┤0 ├┤ d1r ├┤0 ├┤ e1r ├┤0 ├┤ f1r ├
├─────┤│ Equiv(a) │├─────┤│ Equiv(b) │├─────┤│ Equiv(c) │├─────┤
q_1: ┤ d2l ├┤1 ├┤ d1l ├┤1 ├┤ e1l ├┤1 ├┤ f1l ├
└─────┘└───────────┘└─────┘└───────────┘└─────┘└───────────┘└─────┘RXXGateEquiv(a)여기서 Equiv(b) 와 Equiv(c) 는 사용자가 제공한 rxx_equivalent_gate (국소적으로 와 동등한 게이트)로, 각각 , 및 회전을 구현하며, 나머지 상자들은 통합된 단일 큐비트 유니터리 게이트들이다.
실제로 방출되는 2-큐비트 게이트의 개수는 대상의 바일 매개변수에 따라 달라집니다. 각도가 0인 회전은 제외되므로, 단일 또는 두 번의 RXXGate 적용에 더 가까운 유니터리 연산은 세 번이 아닌 각각 한 번 또는 두 번의 적용을 rxx_equivalent_gate 사용합니다. 정체성에 가까운 대상은 그 정체성을 전혀 적용하지 않을 것입니다.
매개변수
- rxx_equivalent_gate (type[Gate]) – 게이트와 국소적으로
RXXGate동등한 게이트. 유효한 옵션은 [RZZGate,RXXGate,RYYGate,RZXGate,CPhaseGate,CRXGate,CRYGate,CRZGate]입니다. - euler_basis (str) – 제공될 기준 문자열
OneQubitEulerDecomposer1Q 합성을 위해 제공해야 합니다. 유효한 옵션은 다음과 같습니다. ['ZXZ','ZYZ','XYX','XZX','U','U3','U321','U1X','PSX','ZSX','ZSXX','RR'].
레이즈
RXXGateQiskitError – 게이트가 로컬적으로 와 동등하지 않은 경우.
__call__
__call__(unitary, approximate=False, use_dag=False, *, atol=1e-12)
TwoQubitControlledUDecomposer를 사용하여 2-큐비트를 unitary 분해하십시오.
매개변수
- unitary (Operator |ndarray) – 합성하기 쉬운.
- 대략적 – 현재 이 분해기에서는 사용되지 않으나, 다른 두 큐비트 분해기와의 서명 호환성을 위해 허용됩니다. 추후 사용을 위해 예약됩니다.
- use_dag – 현재 이 분해기에서는 사용되지 않으나, 다른 두 개의 2-큐비트 분해기와의 서명 호환성을 위해 허용됩니다. 추후 사용을 위해 예약됩니다.
- atol – 반환된 회로를 단순화할 때 단일 큐비트 유니터리의 각도를 확인하는 데 사용되는 절대 허용 오차[. 기본값: 1e-12].
리턴
합성된 양자 회로.
리턴 유형
OneQubitEulerDecomposer참고: atol은.에 전달됩니다.