Análise
Agora, analisaremos o algoritmo do Grover para entender como ele funciona. Começaremos com o que poderia ser descrito como uma análise simbólica, em que calculamos como a operação de Grover atua em determinados estados e, em seguida, vincularemos essa análise simbólica a uma imagem geométrica que é útil para visualizar como o algoritmo funciona.
Soluções e não soluções
Vamos começar definindo dois conjuntos de strings.
O conjunto contém todas as soluções para o nosso problema de busca, enquanto contém as sequências que não são soluções (às quais podemos nos referir como “não-soluções” quando for conveniente). Esses dois conjuntos satisfazem e , ou seja, trata-se de uma bipartição de .
Em seguida, definiremos dois vetores unitários que representam superposições uniformes sobre os conjuntos de soluções e não soluções.
Em termos formais, cada um desses vetores só é definido quando o conjunto correspondente não é vazio, mas daqui em diante vamos nos concentrar no caso em que nem nem são vazios. Os casos de e são facilmente tratados separadamente, e faremos isso mais tarde.
A título de observação, a notação utilizada aqui é comum: sempre que temos um conjunto finito e não vazio , podemos escrever para denotar o vetor de estado quântico que é uniforme sobre os elementos de .
Vamos também definir como um estado quântico uniforme em todas as cadeias de bits :
Observe que
Temos também que , de modo que representa o estado do registro após a inicialização na etapa 1 do algoritmo de Grover.
Isso implica que, imediatamente antes das iterações de ocorrerem na etapa 2, o estado de está contido no espaço vetorial bidimensional gerado por e ; além disso, os coeficientes desses vetores são números reais. Como veremos, o estado sempre terá essas propriedades — o que significa que o estado é uma combinação linear real de e — após qualquer número de iterações da operação na etapa 2.
Uma observação sobre a operação Grover
Agora vamos voltar nossa atenção para a operação de Grover
começando com uma observação interessante sobre ele.
Imagine, por um momento, que substituíssemos a função pela composição de com a função NOT — ou, em outras palavras, a função que obtemos invertendo o bit de saída de . Chamaremos essa nova função de e podemos expressá-la usando símbolos de algumas maneiras alternativas.
Observe que
para cada sequência , e, portanto,
Isso significa que, se substituíssemos a função pela função , o algoritmo de Grover não funcionaria de maneira diferente — pois os estados que obtemos do algoritmo nos dois casos são necessariamente equivalentes, exceto por uma fase global.
Isso não é um problema! Intuitivamente falando, o algoritmo não se importa com quais cadeias são soluções e quais não são - ele só precisa ser capaz de distinguir soluções e não soluções para operar corretamente.
Ação da operação Grover
Agora, vamos considerar a ação de uma operação de e sobre os vetores de estado quântico e .
Primeiro, observemos que a operação tem um comportamento muito simples em e .
Em segundo lugar, temos a operação . A operação é definida como
novamente para cada sequência , e uma maneira alternativa e prática de expressar essa operação é assim:
Uma maneira simples de verificar se essa expressão está de acordo com a definição de é avaliar sua ação em estados de base padrão.
A operação pode, portanto, ser escrita da seguinte forma:
utilizando a mesma notação, , que usamos acima para a superposição uniforme sobre todas as sequências de bits .
E agora temos o que precisamos para calcular a ação de em e . Primeiro, vamos calcular a ação de em .
E, em segundo lugar, vamos calcular a ação de em .
Em ambos os casos, estamos usando a equação
juntamente com as expressões
que se seguem.
Em resumo, temos
Como já observamos, o estado de imediatamente antes da etapa 2 está contido no espaço bidimensional gerado por e , e acabamos de estabelecer que mapeia qualquer vetor nesse espaço para outro vetor no mesmo espaço. Isso significa que, para fins de análise, podemos concentrar nossa atenção exclusivamente nesse subespaço.
Para entender melhor o que está acontecendo nesse espaço bidimensional, vamos expressar a ação do nesse espaço como uma matriz,
cujas primeira e segunda linhas/colunas correspondem a e , respectivamente. Até agora, nesta série, sempre associamos as linhas e colunas das matrizes aos estados clássicos de um sistema, mas as matrizes também podem ser usadas para descrever as ações de mapeamentos lineares em diferentes bases, como vemos aqui.
Embora não seja óbvio à primeira vista, a matriz é o que obtemos ao elevar ao quadrado uma matriz de aparência mais simples.
A matriz
é uma matriz de rotação, que pode ser expressa alternativamente como
para
Esse ângulo desempenhará um papel muito importante na análise a seguir, portanto, vale a pena enfatizar sua importância aqui, pois o vemos pela primeira vez.
À luz dessa expressão dessa matriz, observamos que
Isso ocorre porque girar duas vezes no ângulo equivale a girar no ângulo . Outra maneira de perceber isso é utilizar a expressão alternativa
juntamente com as fórmulas de ângulo duplo da trigonometria:
Em resumo, o estado do registro no início da etapa 2 é
e o efeito de aplicar a esse estado é girá-lo em um ângulo no espaço definido por e . Assim, por exemplo, temos
e em geral
Imagem geométrica
Agora, vamos relacionar a análise que acabamos de fazer com uma representação geométrica. A ideia é que a operação seja o produto de duas reflexões : e . E o efeito final de realizar duas reflexões é realizar uma rotação.
Vamos começar com . Como já observamos anteriormente, temos
No espaço vetorial bidimensional gerado por e , essa é uma reflexão em relação à reta paralela a , que chamaremos de . Aqui está uma figura que ilustra a ação dessa reflexão sobre um vetor unitário hipotético , que supomos ser uma combinação linear real de e .
Em segundo lugar, temos a operação , que, como já vimos, pode ser escrita da seguinte forma:
Esta também é uma reflexão, desta vez sobre a reta , paralela ao vetor . Aqui está uma figura que ilustra o efeito dessa reflexão sobre um vetor unitário .
Quando compomos essas duas reflexões, obtemos uma rotação - pelo dobro do ângulo entre as linhas de reflexão - como ilustra esta figura.
Isso explica, em termos geométricos, por que o efeito da operação de Grover consiste em girar combinações lineares de e em um ângulo de .