HHLで固有値回転を効果的に計算する方法
Dec 10 2020
HHLアルゴリズムでは、どのようにして効率的に $\lambda-$補助量子ビットの制御された回転?いくつかの回答を読んだ後、これは2つのステップで実行できるように思えます。
- まず、マップします $|\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
多項式近似を使用して計算するqiskitterra(ここではPR用)にまもなくマージされる新しいアプローチがあります$\arcsin(C/\lambda)$、そして漸近的に、これは効率的な実装になります。
あなたが解決している場合、実際には $2\times 2$ マトリックスまたは非常に小さなシステムでは、回転をハードコーディングする方がよいでしょう。
このアプローチの理論とエラー分析は、このペーパーのセクションVIで説明されています。