Como calcular efetivamente a rotação de autovalor em HHL
Dec 10 2020
No algoritmo HHL, como você faz o$\lambda-$rotação controlada no qubit auxiliar ? Parece-me depois de ler algumas respostas que isso pode ser feito em duas etapas:
- Primeiro, mapeamos$|\lambda\rangle\mapsto |\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$, definindo$|\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$ser uma representação binária$|\frac{1}{\pi}\arcsin(\frac{C}{\lambda})\rangle$com$m$qubits.
- Em seguida, execute uma rotação controlada$U_y(|\theta\rangle \otimes |0\rangle)\mapsto |\theta\rangle \otimes \big(\cos(\theta)|0\rangle + \sin{(\theta})|1\rangle\big)$Onde$U_y$e simples$$ U_y(|\theta\rangle \otimes |0\rangle) = \prod_{j=1}^m (I^{\otimes^m}\otimes R_y(2\pi\theta_j/2^j)) $$ou seja, uma sequência de rotações controladas onde sucessivamente reduzimos pela metade o ângulo de rotação condicionalmente dos dígitos da representação binária de$\theta$.
Minha pergunta é a seguinte: como se pode implementar eficientemente o primeiro passo em um ambiente como o Qiskit?
Respostas
4 user96233 Dec 11 2020 at 19:24
Existe uma nova abordagem que será mesclada em breve no qiskit terra ( aqui para o PR ) que usa aproximação polinomial para calcular$\arcsin(C/\lambda)$, e assintoticamente esta seria a implementação eficiente.
Na prática, se você estiver resolvendo um$2\times 2$matriz ou um sistema muito pequeno, seria melhor codificar as rotações.
A teoria e as análises de erro desta abordagem são explicadas na Seção VI deste artigo .
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?