Wie man die Eigenwertrotation in HHL effektiv berechnet

Dec 10 2020

Wie machen Sie das im HHL-Algorithmus effizient?$\lambda-$kontrollierte Rotation auf dem Hilfs-Qubit? Es scheint mir, nachdem ich einige Antworten gelesen habe, dass dies in zwei Schritten erfolgen kann:

  • Zuerst kartieren wir$|\lambda\rangle\mapsto |\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$, definierend$|\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$eine binäre Darstellung sein$|\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$mit$m$Qubits.
  • Führen Sie dann eine kontrollierte Drehung durch$U_y(|\theta\rangle \otimes |0\rangle)\mapsto |\theta\rangle \otimes \big(\cos(\theta)|0\rangle + \sin{(\theta})|1\rangle\big)$wo$U_y$ist einfach$$ U_y(|\theta\rangle \otimes |0\rangle) = \prod_{j=1}^m (I^{\otimes^m}\otimes R_y(2\pi\theta_j/2^j)) $$dh eine Folge von kontrollierten Drehungen, bei denen wir die Drehwinkel sukzessive halbieren, abhängig von den Ziffern der binären Darstellung$\theta$.

Meine Frage ist folgende, wie kann man den ersten Schritt in einer Umgebung wie Qiskit effizient umsetzen?

Antworten

4 user96233 Dec 11 2020 at 19:24

Es gibt einen neuen Ansatz, der bald in qiskit terra ( hier für die PR ) zusammengeführt wird, der polynomiale Annäherung zum Berechnen verwendet$\arcsin(C/\lambda)$, und asymptotisch wäre dies die effiziente Implementierung.

In der Praxis lösen Sie a$2\times 2$Matrix oder einem sehr kleinen System wäre es besser, die Drehungen fest zu codieren.

Die Theorie und Fehleranalysen dieses Ansatzes werden in Abschnitt VI dieses Papiers erläutert .