A restrição nos valores próprios geralmente é dada na forma de um número de condição . Este é o κ que você vê em todos os tempos de execução da sua tabela. κ=|λmax/λmin|onde λmax e λmin são os valores próprios máximos e mínimos, respectivamente.
Em todos os tempos de execução listados em sua tabela, supõe-se que o número da condição seja conhecido. Normalmente, não se pensa em "calcular o número da condição" como parte do algoritmo para resolver Ax=b , por exemplo. Se o número da condição for maior, o sistema será mais difícil de resolver e, se for menor, será mais fácil resolver o sistema (assumindo que todos os outros parâmetros, incluindo o erro máximo desejado ϵ sejam mantidos fixos).
Em termos de necessidade de saber que λmax<M e λmin>L , há muitos exemplos em que podemos conhecer os limites dos valores próprios sem realmente passar pelo esforço de calcular os valores próprios. Dessa forma, o HHL pode ser uma ótima maneira de encontrar o estado que você está procurando, sem o custo de calcular o número da condição ou quaisquer valores próprios.
Deixe-me dar apenas um exemplo do mundo real. Digamos que eu quero encontrar o estado vibracional molecular |ψ⟩ de tal modo que depois de t=10 ps de evolução sob o seu hamiltoniano H , as extremidades da molécula-se em estado |b⟩ . Isso pode ser descrito pela equação:
e−iHt|ψ⟩=|b⟩
onde o |ψ⟩ satisfazer esta equação é o que você quer saber. Você pode encontrar o seu desejado |ψ⟩ usando o algoritmo HHL com A=e−iℏHte|ψ⟩=|x⟩.
Obter os autovalores menores e maiores de uma precisão hamiltoniana molecular com precisão arbitrária é extremamente oneroso em um compactador clássico, mas saber que eles estão dentro da faixa (L,M) pode ser determinado sem nenhum custo. Por exemplo, se a molécula é o dímero de nitrogênio, sabemos que os estados vibratórios mais baixo e mais alto têm energias (valores próprios) entre 0 e 10 eV e, como e0=1 , temos L=1 e M=e−iℏ10eV⋅10ps. Você pode converter eV para Hz e ps em segundos para avaliarMnumericamente e, em seguida, obter os limites inferior e superior que você precisa usar ao dimensionar sua matriz da maneira descrita na pergunta anterior. Em nenhum momento eu precisei calcular os autovalores de um hamiltoniano molecular de 14 elétrons (o que seria extremamente difícil e derrotaria o objetivo de usar o HHL, porque se eu pudesse calcular os autovalores, poderia apenas calcularAe invertê-lo para obter|ψ⟩) Eu apenas usei a energia de dissociação da molécula para criar os limites de suas energias vibracionais. Eu poderia ter criado limites ainda melhores usando a aproximação semi-clássica do WKB , também com muito menos custo do que realmente calculando os valores próprios, mas o primeiro exemplo já é suficiente.
Então agora vamos abordar todas as suas perguntas individuais:
Primeiro grupo de perguntas: li muitos artigos sobre o HHL e nenhum deles sequer mencionou essa restrição. Por quê? Essa restrição é conhecida, mas considerada fraca (ou seja, é fácil ter esse tipo de informação)? Ou a restrição não era conhecida? Existe algum trabalho de pesquisa que mencione essa restrição?
Dos 539 artigos que (atualmente) citaram o artigo original do HHL, muitos deles não conhecerão os detalhes mais refinados, como a dependência de seu desempenho no número da condição ou nos valores próprios. Alguns trabalhos certamente saberão que o desempenho do algoritmo dependerá do número da condição ou dos valores próprios da matriz, ou seja, os trabalhos listados em sua tabela sobre melhorias no algoritmo HHL. Robin Kothari também mencionou, por exemplo, no início de sua palestra em 2016 sobre o algoritmo CKS (mencionado na sua tabela).
Segundo grupo de perguntas: Existe um algoritmo melhor em termos de complexidade? Caso contrário, por que o algoritmo HHL ainda é apresentado como uma melhoria exponencial em relação aos algoritmos clássicos?
O ( N--√)Ns ⋘ NO ( N--√)
Você está certo, as pessoas devem mencionar as advertências de algoritmos com mais frequência em seus trabalhos. Em termos de sua pergunta específica "por que o algoritmo HHL ainda é apresentado como uma melhoria exponencial em relação aos algoritmos clássicos", acho que os autores originais HHL fizeram a devida diligência em explicar o algoritmo e suas advertências, pois disseram que há um exponencial mas o custo aumenta quadraticamente com o número e a escarsidade da condição e inversamente com o tamanho do erro que você deseja tolerar. Por que a maioria das pessoas após o HHL não menciona todas as advertências? Bem, muitos deles não conhecem as advertências, e aqueles que sabem podem ter sentido que isso não era necessário, pois calcular o número da condição não faz parte do algoritmo. Saber o número da condição informará como o algoritmo funcionará,