qiskit.circuit.library.real_amplitudes
qiskit.circuit.library.real_amplitudes(num_qubits, entanglement='reverse_linear', reps=3, skip_unentangled_qubits=False, skip_final_rotation_layer=False, parameter_prefix='θ', insert_barriers=False, name='RealAmplitudes')
실제 진폭 2 로컬 회로를 구축합니다.
이 회로는 화학, 최적화 또는 머신 러닝 애플리케이션에서 안사츠로 사용되는 휴리스틱 시험 파동 함수입니다. 회로는 회전과 얽힘의 교대 레이어로 구성됩니다. 얽힘 패턴은 사용자가 정의하거나 미리 정의된 세트에서 선택할 수 있습니다. 준비된 양자 상태는 실제 진폭만 갖기 때문에 이 회로는 "실제 진폭"입니다.
예를 들어 "reverse_linear" 얽힘이 있는 3 큐비트에 2번 반복되는 real_amplitudes 회로는 다음과 같습니다
┌──────────┐ ░ ░ ┌──────────┐ ░ ░ ┌──────────┐
┤ Ry(θ[0]) ├─░────────■───░─┤ Ry(θ[3]) ├─░────────■───░─┤ Ry(θ[6]) ├
├──────────┤ ░ ┌─┴─┐ ░ ├──────────┤ ░ ┌─┴─┐ ░ ├──────────┤
┤ Ry(θ[1]) ├─░───■──┤ X ├─░─┤ Ry(θ[4]) ├─░───■──┤ X ├─░─┤ Ry(θ[7]) ├
├──────────┤ ░ ┌─┴─┐└───┘ ░ ├──────────┤ ░ ┌─┴─┐└───┘ ░ ├──────────┤
┤ Ry(θ[2]) ├─░─┤ X ├──────░─┤ Ry(θ[5]) ├─░─┤ X ├──────░─┤ Ry(θ[8]) ├
└──────────┘ ░ └───┘ ░ └──────────┘ ░ └───┘ ░ └──────────┘얽힘은 entanglement 키워드를 문자열 또는 인덱스 쌍의 목록으로 사용하여 설정할 수 있습니다. 의 문서를 참조하세요 n_local(). 추가로 설정할 수 있는 옵션으로는 반복 횟수, 얽히지 않은 큐비트에서 회전 게이트 건너뛰기, 최종 회전 레이어 생략, 회전과 얽힘 레이어 사이에 배리어 삽입 등이 있습니다.
예:
from qiskit.circuit.library import real_amplitudes
ansatz = real_amplitudes(3, reps=2) # create the circuit on 3 qubits
ansatz.draw("mpl")
ansatz = real_amplitudes(3, entanglement="full", reps=2) # it is the same unitary as above
ansatz.draw("mpl")
ansatz = real_amplitudes(3, entanglement="linear", reps=2, insert_barriers=True)
ansatz.draw("mpl")
ansatz = real_amplitudes(4, reps=2, entanglement=[[0,3], [0,2]], skip_unentangled_qubits=True)
ansatz.draw("mpl")
매개변수
- num_qubits (int) – RealAmplitudes 회로의 큐비트 수입니다.
- 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) – 서킷의 이름입니다.
리턴
실제 진폭 회로입니다.
리턴 유형
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.