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')
하드웨어 효율이 높은 2-로컬 회로.
efficient_su2 회로는 및 CX 얽힘에 걸쳐 있는 단일 쿼비트 연산 레이어로 구성됩니다. 이는 가변 양자 알고리즘이나 머신러닝을 위한 분류 회로를 위한 시험 파동 함수를 준비하는 데 사용할 수 있는 휴리스틱 패턴입니다.
는 차수 2의 특수 유니타리 그룹이며, 그 요소는 폴리 회전 게이트와 같이 행렬식 1을 갖는 유니타리 행렬입니다.
3개의 큐비트를 사용하고, 단일 큐비트 게이트로 파울리 및 회전을 적용할 때, 이 회로는 다음과 같이 표현됩니다:
┌──────────┐┌──────────┐ ░ ░ ░ ┌───────────┐┌───────────┐
┤ 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) – 단일 큐비트 게이트 레이어에 적용할 단일 큐비트 게이트. 단 하나의 게이트만 제공될 경우, 동일한 게이트가 각 큐비트에 적용됩니다. 게이트 목록이 제공되면, 모든 게이트가 제공된 순서대로 각 큐비트에 적용됩니다.
- 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) 회로.
리턴 유형
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.