qiskit.circuit.library.hamiltonian_variational_ansatz
qiskit.circuit.library.hamiltonian_variational_ansatz(hamiltonian, reps=1, insert_barriers=False, name='HVA', parameter_prefix='t')
해밀턴의 변형 안식을 구축합니다.
용어 가 통근 폴리스로만 구성되고 서로 통근하지 않는 용어 인 해밀턴식 의 경우 해밀턴식 변형 안사츠(HVA)는 다음과 같습니다
여기서 지수 는 정확히 [1, 2로] 구현됩니다. 이는 연산자 구조에 대한 가정이 없는 evolved_operator_ansatz()와는 다른데, 연산자 구조에 대한 가정이 이루어지지 않습니다.
해밀턴은 다음과 같이 전달할 수 있습니다 SparsePauliOp로 전달할 수 있으며, 이 경우 해밀턴을 통근항 으로 분할합니다. 이 방법은 최적이 아닐 수 있으며, 최소 통근 항의 집합을 알고 있는 경우 이 함수에 수열로 전달할 수 있습니다.
예:
한 명의 운영자가 자동으로 출퇴근 시간으로 분할됩니다:
from qiskit.quantum_info import SparsePauliOp
from qiskit.circuit.library import hamiltonian_variational_ansatz
# this Hamiltonian will be split into the two terms [ZZI, IZZ] and [IXI]
hamiltonian = SparsePauliOp(["ZZI", "IZZ", "IXI"])
ansatz = hamiltonian_variational_ansatz(hamiltonian, reps=2)
ansatz.draw("mpl")
또는 약관을 직접 제공할 수도 있습니다:
from qiskit.quantum_info import SparsePauliOp
from qiskit.circuit.library import hamiltonian_variational_ansatz
zz = SparsePauliOp(["ZZI", "IZZ"])
x = SparsePauliOp(["IXI"])
ansatz = hamiltonian_variational_ansatz([zz, x], reps=2)
ansatz.draw("mpl")
매개변수
- hamiltonian (SparsePauliOp |Sequence[SparsePauliOp]) – 진화시킬 해밀토니안. 단일 연산자로 주어지면, 교환 가능한 항들로 분해됩니다. 순열이
SparsePauliOp인 경우, 각 원소는 서로 교환 가능한 항들로 구성되어 있다고 가정하지만, 원소들끼리는 서로 교환 가능하지 않다. - reps (int) – 진화한 연산자를 반복할 횟수입니다.
- insert_barriers (bool) – 각 진화 사이에 장벽을 삽입할지 여부를 설정합니다.
- name (str) – 서킷의 이름입니다.
- parameter_prefix (str) – 회로 파라미터의 이름을 지정합니다. 문자열인 경우, 각 매개변수에 동일한 접두사가 사용됩니다. 연산자별로 접두사를 지정하는 목록일 수도 있습니다.
리턴 유형
참조 자료:
[1] D. Wecker et al. 실용적인 양자 변형 알고리즘을 향한 진전 (2015) Phys Rev A 92, 042303
[2] R. Wiersema et al. 해밀턴 변형 안사츠 내에서 얽힘과 최적화 탐색하기 (2020) arXiv:2008.02941
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.