HHL에서 고유값 회전을 효과적으로 계산하는 방법

Dec 10 2020

HHL 알고리즘에서 어떻게 효율적으로 수행합니까? $\lambda-$보조 큐비트에서 회전 제어? 몇 가지 답변을 읽은 후 이것이 두 단계로 수행될 수 있다고 생각합니다.

  • 먼저 지도를 작성합니다. $|\lambda\rangle\mapsto |\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$, 정의 $|\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$ 이진 표현이 되려면 $|\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$ ~와 함께 $m$ 큐비트.
  • 그런 다음 제어 회전을 수행합니다. $U_y(|\theta\rangle \otimes |0\rangle)\mapsto |\theta\rangle \otimes \big(\cos(\theta)|0\rangle + \sin{(\theta})|1\rangle\big)$ 어디 $U_y$ 단순히 $$ U_y(|\theta\rangle \otimes |0\rangle) = \prod_{j=1}^m (I^{\otimes^m}\otimes R_y(2\pi\theta_j/2^j)) $$ 즉, 이진 표현의 숫자의 조건부로 회전 각도를 연속적으로 절반으로 줄이는 제어된 회전 시퀀스 $\theta$.

제 질문은 다음과 같습니다. Qiskit과 같은 환경에서 첫 번째 단계를 어떻게 효율적으로 구현할 수 있습니까?

답변

4 user96233 Dec 11 2020 at 19:24

계산을 위해 다항식 근사를 사용 하는 qiskit terra( 여기서는 PR )에 곧 병합될 새로운 접근 방식이 있습니다.$\arcsin(C/\lambda)$, 그리고 점근적으로 이것은 효율적인 구현이 될 것입니다.

실제로 문제를 해결하는 경우 $2\times 2$ 행렬 또는 매우 작은 시스템에서는 회전을 하드 코딩하는 것이 좋습니다.

이 접근 방식의 이론과 오류 분석은 이 문서의 섹션 VI에서 설명 합니다 .