Skip to main content
IBM Quantum Platform

qiskit.circuit.library.efficient_su2

qiskit.circuit.library.efficient_su2(num_qubits, su2_gates=None, entanglement='reverse_linear', reps=3, skip_unentangled_qubits=False, skip_final_rotation_layer=False, parameter_prefix='θ', insert_barriers=False, name='EfficientSU2')

GitHub

하드웨어 효율이 높은 SU(2)SU(2) 2-로컬 회로.

efficient_su2 회로는 SU(2)SU(2) 및 CX 얽힘에 걸쳐 있는 단일 쿼비트 연산 레이어로 구성됩니다. 이는 가변 양자 알고리즘이나 머신러닝을 위한 분류 회로를 위한 시험 파동 함수를 준비하는 데 사용할 수 있는 휴리스틱 패턴입니다.

SU(2)SU(2) 는 차수 2의 특수 유니타리 그룹이며, 그 요소는 폴리 회전 게이트와 같이 행렬식 1을 갖는 2×22 \times 2 유니타리 행렬입니다.

3개의 큐비트를 사용하고, 단일 큐비트 게이트로 파울리 YYZZ 회전을 적용할 때, 이 회로는 다음과 같이 표현됩니다:

┌──────────┐┌──────────┐ ░            ░       ░ ┌───────────┐┌───────────┐
RY(θ[0]) ├┤ RZ(θ[3]) ├─░────────■───░─ ... ─░─┤ RY(θ[12]) ├┤ RZ(θ[15])
├──────────┤├──────────┤ ░      ┌─┴─┐ ░       ░ ├───────────┤├───────────┤
RY(θ[1]) ├┤ RZ(θ[4]) ├─░───■──┤ X ├─░─ ... ─░─┤ RY(θ[13]) ├┤ RZ(θ[16])
├──────────┤├──────────┤ ░ ┌─┴─┐└───┘ ░       ░ ├───────────┤├───────────┤
RY(θ[2]) ├┤ RZ(θ[5]) ├─░─┤ X ├──────░─ ... ─░─┤ RY(θ[14]) ├┤ RZ(θ[17])
└──────────┘└──────────┘ ░ └───┘      ░       ░ └───────────┘└───────────┘

예:

기본적으로 "reverse_linear" 인탱글이 사용되는데, 이는 CX 게이트의 경우 올투올 인탱글과 동일합니다:

from qiskit.circuit.library import efficient_su2

circuit = efficient_su2(3, reps=1)
circuit.draw("mpl")
이전 코드에서 출력한 회로도입니다.

회전 레이어에 어떤 SU(2) 게이트를 사용할지 지정하려면 su2_gates 인수를 설정하면 됩니다. 또한 얽힘 구조를 변경할 수도 있습니다. 예를 들어,

circuit = efficient_su2(4, su2_gates=["rx", "y"], entanglement="circular", reps=1)
circuit.draw("mpl")
이전 코드에서 출력한 회로도입니다.

매개변수

  • num_qubits (int) – 큐비트 수입니다.
  • su2_gates (str |Gate |Iterable[str |Gate] | None) – SU(2)SU(2) 단일 큐비트 게이트 레이어에 적용할 단일 큐비트 게이트. 단 하나의 게이트만 제공될 경우, 동일한 게이트가 각 큐비트에 적용됩니다. 게이트 목록이 제공되면, 모든 게이트가 제공된 순서대로 각 큐비트에 적용됩니다.
  • reps (int) – 회전 레이어와 얽힘 레이어의 구조가 얼마나 자주 반복되는지 지정합니다.
  • entanglement (str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]] | Callable[[int], str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]]]) – 입력 블록이 어떤 큐비트에 작용하는지를 지정하는 인덱스들. 자세한 내용은 를 n_local() 참조하십시오.
  • skip_final_rotation_layer (bool) – 회로에 최종 회전 레이어를 추가할지 여부입니다.
  • skip_unentangled_qubits (bool) – True 이면 회전 게이트는 얽혀 있는 큐비트에만 작동합니다. False 이면 회전 게이트가 모든 큐비트에 작용합니다.
  • parameter_prefix (str) – 무료 매개변수의 이름입니다.
  • insert_barriers (bool) – True를 선택하면 각 레이어 사이에 장벽이 삽입됩니다. False이면 장벽이 삽입되지 않습니다.
  • name (str) – 서킷의 이름입니다.

리턴

효율적인 SU(2) 회로.

리턴 유형

QuantumCircuit

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