Estou tentando entender o famoso algoritmo Quantum (?) Para sistemas de equações lineares (Harrow, Hassidim & Lloyd, 2009) (mais conhecido popularmente como o algoritmo HHL09 ) há algum tempo, agora.
Na primeira página, eles dizem :
Esboçamos aqui a idéia básica do nosso algoritmo e, em seguida, discutimos mais detalhadamente na próxima seção. Dado um Hermitian matriz , e uma unidade de vetor , suponha que nós gostaríamos de encontrar satisfazendo . (Discutimos questões de eficiência posteriores, bem como como as suposições que fizemos sobre e podem ser relaxadas.) Primeiro, o algoritmo representa como um estado quântico . Em seguida, usamos técnicas de simulação hamiltoniana [3, 4] para aplicar aA → b → x A → x = → b A → b → b | b ⟩ = Σ N i = 1 b i | i ⟩ e i A t | b i ⟩ t A | b ⟩ Um λ j Σ j = N j = 1 β j | você jpara uma superposição de tempos diferentes . Essa capacidade de exponenciar traduz, por meio da conhecida técnica de estimativa de fase [5–7], na capacidade de decompor na base própria de e encontrar os valores próprios correspondentes Informalmente, o estado do O sistema após este estágio está próximo de , em que é a base do vetor próprio de e .u j A | b ⟩ = Σ j = N j = 1 β j | u j ⟩
Por enquanto, tudo bem. Conforme descrito em Nielsen & Chuang no capítulo " A transformada quântica de Fourier e suas aplicações ", o algoritmo de estimativa de fase é usado para estimar em que é o valor próprio correspondente a um vetor próprio do operador unitária .e i 2 pi φ | u ⟩ U
Aqui está a parte relevante da Nielsen & Chuang:
O algoritmo de estimativa de fase usa dois registros. O primeiro registro contém qubits inicialmente no estado . A escolha de depende de duas coisas: o número de dígitos de precisão que desejamos ter em nossa estimativa para e com que probabilidade desejamos que o procedimento de estimativa de fase seja bem-sucedido. A dependência de dessas quantidades emerge naturalmente da análise a seguir.| 0 ⟩ t φ t
O segundo registro começa no estado e contém quantos qubits são necessários para armazenar . A estimativa de fase é realizada em dois estágios. Primeiro, aplicamos o circuito mostrado na Figura 5.2. O circuito começa aplicando uma transformação Hadamard ao primeiro registro, seguida pela aplicação de operações controladas no segundo registro, com elevado a potências sucessivas de dois. O estado final do primeiro registro é facilmente visto como sendo:| u ⟩ U U
O segundo estágio da estimativa de fase é aplicar a transformada de Fourier quântica inversa no primeiro registro. Isso é obtido revertendo o circuito para a transformada quântica de Fourier na seção anterior (Exercício 5.5) e pode ser feito nas etapas . O terceiro e último estágio da estimativa de fase é ler o estado do primeiro registro fazendo uma medição na base computacional. Mostraremos que isso fornece uma estimativa muito boa de . Um esquema geral do algoritmo é mostrado na Figura 5.3.φ
Para aprimorar nossa intuição sobre o funcionamento da estimativa de fase, suponha que possa ser expresso exatamente como int bits, como . Então o estado (5.20) resultante do primeiro estágio da estimativa de fase pode ser reescritoφ = 0. φ 1 . . . φ t
O segundo estágio da estimativa de fase é aplicar a transformada de Fourier quântica inversa. Mas comparando a equação anterior com a forma do produto para a transformada de Fourier, Equação (5.4), vemos que o estado de saída do segundo estágio é o estado do produto . Uma medida na base computacional, portanto, nos dá exatamente!
Resumindo, o algoritmo de estimativa de fase permite estimar a fase de um autovalor de um operador unitário , dado o vetor correspondente . Uma característica essencial no coração deste procedimento é a capacidade da transformação inversa de Fourier para realizar a transformação
Vamos prosseguir daqui. Encontrei um belo diagrama de circuitos para o algoritmo HHL09 aqui [ ] :
Etapa 1 (estimativa de fase):
No primeiro passo do algoritmo HHL09 o mesmo conceito (do algoritmo padrão Quantum fase de estimativa como descrito em Nielsen e Chuang) é usado. No entanto, devemos ter em mente que por si só não é um operador unitário. No entanto, se assumirmos que é Hermitian então o exponencial é unitária (não se preocupe, há existe uma solução alternativa no caso de não é Hermitian!).
Aqui, podemos escrever . Há outro ponto sutil envolvido aqui. Nós não sabemos os autovetores de antemão (mas nós sabemos que para qualquer matriz unitária de tamanho existem autovetores ortonormais). Além disso, precisamos lembrar a nós mesmos que, se os autovalores de forem , os autovalores de serão . Se compararmos isso com a forma de autovalores dados em Nielsen e Chuang para isto é, se , encontraríamos . Neste caso, começamos no estado (o qual pode ser escrito como uma superposição dos vectores próprios de isto é ) em vez de qualquer vetor próprio de , no que diz respeito ao segundo registro de qubits. Se tivéssemos começado no estado , teríamos terminado com ie (considerando que | b⟩Ué o valor próprio associado ao vetor próprio de ). Agora, se começarmos pela superposição de vetores próprios , devemos terminar com .
Questão:
Parte 1 : No artigo do HHL09 , eles escreveram sobre o estado do sistema após a etapa de Estimativa de Fase ser . No entanto, pelo que escrevi acima, parece-me que o estado do sistema deveria ser .
O que estou perdendo aqui? Onde o fator desapareceu em seu algoritmo?
Edit: A Parte 2 foi solicitada aqui para tornar as perguntas individuais mais focadas.
Também tenho várias confusões sobre as Etapas 2 e 3 do algoritmo HHL09, mas decidi publicá-las como threads de perguntas separadas, pois esta está se tornando muito longa. Vou adicionar os links a esses tópicos de perguntas, neste post, depois que eles forem criados.
[ ]: experimentos de criptografia homomórfica na plataforma de computação em nuvem da IBM em nuvem Huang et al. (2016)