TransWikia.com

How to effectively compute eigenvalue rotation in HHL

Quantum Computing Asked by SRichoux on March 20, 2021

In the HHL algorithm, how do you efficiently do the $lambda-$controlled rotation on the ancillary qubit ? It seems to me after reading around some answers that this can be done in two steps :

  • First, we map $|lambdaranglemapsto |frac{1}{pi}arcsin(frac{C}{lambda})rangle$, defining $|frac{1}{pi}arcsin(frac{C}{lambda})rangle$ to be a binary representation $|frac{1}{pi}arcsin(frac{C}{lambda})rangle$ with $m$ qubits.
  • Then perform a controlled rotation $U_y(|thetarangle otimes |0rangle)mapsto |thetarangle otimes big(cos(theta)|0rangle + sin{(theta})|1ranglebig)$ where $U_y$ is simply
    $$
    U_y(|thetarangle otimes |0rangle) = prod_{j=1}^m (I^{otimes^m}otimes R_y(2pitheta_j/2^j))
    $$

    i.e. a sequence of controlled rotations where we successively halve the angle of rotation conditionally of the digits of the binary representation of $theta$.

My question is the following how can one implement efficiently the first step in an environment such as Qiskit ?

One Answer

There is a new approach that will be merged soon in qiskit terra (here for the PR) that uses polynomial approximation to compute $arcsin(C/lambda)$, and asymptotically this would be the efficient implementation.

In practice if you are solving a $2times 2$ matrix or a very small system it would be better to hard code the rotations.

The theory and error analyses of this approach are explained in Section VI of this paper.

Correct answer by user96233 on March 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP