Em esta resposta , o algoritmo de Grover é explicado. A explicação indica que o algoritmo depende muito do operador de difusão de Grover , mas não fornece detalhes sobre o funcionamento interno desse operador.
Resumidamente, o Operador de difusão de Grover cria uma 'inversão sobre a média' para iterativamente fazer as pequenas diferenças nas etapas anteriores grandes o suficiente para serem mensuráveis.
As perguntas são agora:
- Como o operador de difusão Grover consegue isso?
- Por que o O resultante ( √em tempo total para pesquisar um banco de dados não ordenado ideal?
algorithm
grovers-algorithm
Lagarto discreto
fonte
fonte
Respostas:
Começamos com um estado inicial que é uma superposição uniforme de todos os estados, e nosso objetivo é encontrar um estado que possa ser reconhecido como a resposta correta (assumindo que exista exatamente um desses estados, embora isso possa ser generalizado). Para fazer isso, evoluímos no tempo sob a ação de um Hamiltoniano O recurso realmente bonito da pesquisa de Grover é que, neste ponto, podemos reduzir a matemática a um subespaço de apenas dois estados , em vez de exigir todos os . É mais fácil descrever se fizermos uma base ortonormal a partir desses estados, em que | x⟩H=| x⟩⟨x| +| ip⟩⟨ip| . {| x⟩,| ip⟩}2n{| x⟩,| ip⊥⟩}| ip⊥⟩=1
Uma ressalva é a seguinte: você pode redefinir e evoluir usando e o tempo de evolução seria 5 vezes menor. Se você queria ser realmente radical, substitua o 5 por , e a pesquisa de Grover é executada em tempo constante! Mas você não tem permissão para fazer isso arbitrariamente. Qualquer experimento teria uma força máxima de acoplamento fixa (ou seja, um multiplicador fixo). Portanto, experimentos diferentes têm tempos de execução diferentes, mas sua escala é a mesma, . É como dizer que o custo do portão no modelo de circuito é constante, em vez de assumir que, se usarmos um circuito de profundidade cada portão poderá ser executado no tempo .H~= 5 H H~ 2n / 2 2n / 2 k 1 / k
A prova de otimização envolve essencialmente mostrar que, se você tornasse a detecção de um possível estado marcado mais rápido, tornaria a detecção de um estado marcado diferente, , mais lento. Como o algoritmo deve funcionar igualmente bem, qualquer que seja o estado marcado, esta solução é a melhor.| x ⟩ | y⟩
fonte
Uma maneira de definir o operador de difusão é 1 , em que é o oráculo de faseD = - H⊗ nvocê0 0H⊗ n você0 0
Isso mostra que também pode ser escrito como, dando onde .você0 0 você0 0= I- 2 | 0 0⊗ n⟩ ⟨ 0⊗ n|
Escrevendo um estado onde é ortogonal a (ou seja, fornece que .| ip ⟩ =alfa | + ⟩ +Β∣∣+⊥⟩ ∣∣+⊥⟩ | + ⟩ ⟨ +⊥∣ + ⟩ = 0 ) D | ip ⟩ = alfa | + ⟩ - β∣∣+⊥⟩
Isso mostra 2 que o operador de difusão é uma reflexão sobre| + ⟩
Como a outra parte do algoritmo de Grover também é um reflexo, eles se combinam para girar o estado atual mais próximo do valor 'procurado' . Esse ângulo diminui linearmente com o número de rotações (até exceder o valor pesquisado), fornecendo que a probabilidade de medir corretamente o valor correto aumente quadraticamente.x0 0
Bennet et. al. mostrou que isso é ótimo. Ao levar uma solução clássica para um problema NP, o algoritmo de Grover pode ser usado para acelerar quadraticamente isso. No entanto, usando um idioma para uma função de preservação de comprimento (aqui, um oráculo), qualquer A máquina de quantum turing baseada em oracle não pode aceitar esse idioma em um tempo .euUMA= { y: ∃ xA ( x ) = y} UMA T( n ) = o ( 2n / 2)
Isso é obtido usando um conjunto de oráculos onde não tem inverso (portanto, não está contido no idioma). No entanto, isso está contido em algum novo idioma por definição. A diferença nas probabilidades de uma máquina aceitar e uma máquina diferente aceitar no tempo é então menor que e, portanto, nenhuma linguagem é aceita e o algoritmo de Grover é realmente assintoticamente ideal. 3| 1 ⟩⊗ n euUMAy euUMA euUMAy T( N ) 1 / 3
Zalka mais tarde mostrou que o algoritmo de Grover é exatamente ideal.
1 No algoritmo de Grover, os sinais de menos podem ser movidos em volta, portanto, onde o sinal de menos é, é um tanto arbitrário e não precisa necessariamente estar na definição do operador de difusão
2 alternativamente, definir o operador de difusão sem o sinal de menos gera uma reflexão sobre∣∣+⊥⟩
3 Definindo a máquina usando o oráculo como e a máquina usando o oráculo como , isso se deve ao fato de haver um conjunto de cadeias de bits, onde os estados de e cada vez é -close 4 , com uma cardinalidade . Cada oráculo em que decide corretamente se está em pode ser mapeado para oráculos em que falhaUMA MUMA UMAy MUMAy S MUMA MUMAy t ϵ < 2 T2/ ϵ2 MUMA | 1 ⟩⊗ n euUMA 2n- Cartão ( S) MUMA para decidir corretamente se está no idioma desse oráculo. No entanto, ele deve fornecer uma das outras respostas em potencial e, se , a máquina não consegue determine a associação de .| 1 ⟩⊗ n 2n- 1 T( n ) = o ( 2n / 2) euUMA
4 Usando a distância euclidiana, o dobro da distância do traço
fonte