Como o algoritmo de Grover é usado para estimar a média e a mediana de um conjunto de números?

10

Na página da Wikipedia para o algoritmo de Grover , é mencionado que:

"O algoritmo de Grover também pode ser usado para estimar a média e a mediana de um conjunto de números"

Até agora, eu só sabia como ele pode ser usado para pesquisar em um banco de dados. Mas não sei como implementar essa técnica para estimar a média e a mediana de um conjunto de números. Além disso, não há nenhuma citação (até onde eu notei) nessa página que explica a técnica.

Sanchayan Dutta
fonte
Se você optar por responder sua própria pergunta ou para quem escolher assumir a tarefa, este link parecerá um ótimo lugar para começar. Como usar o algoritmo de Grover para encontrar a média (aka média, integral) de uma função esquisita
agaitaarino
@agaitaarino Obrigado. Vou dar uma olhada. A propósito, seu comentário não está sendo renderizado corretamente como um link, porque você deixou um espaço em branco após o parêntese de abertura. :)
Sanchayan Dutta

Respostas:

9

A idéia para estimar a média é aproximadamente a seguinte:

  • Para qualquer que fornece saídas em reais, defina um F ( x ) redimensionado que fornece saídas no intervalo de 0 a 1. Nosso objetivo é estimar a média de F ( x ) .f(x)F(x)F(x)

  • Defina um unitário cuja operação é U a : | 0 | 0 1vocêumaÉ importante notar que esta unidade é facilmente implementada. Você começa com uma transformação Hadamard no primeiro registro, executa um cálculo def(x)em um registro ancilla, usa isso para implementar uma rotação controlada do segundo registro e, em seguida, não calcula o registro ancilla.

    vocêuma:|0 0|0 01 12n/2x|x(1 1-F(x)|0 0+F(x)|1 1).
    f(x)
  • Definir o unitário .G=vocêuma(Eu-2|0 00 0||0 00 0|)vocêumaEuZ

  • A partir de um estado , utilize G assim como você usaria o Grover iterador para estimar o número de soluções a um problema de pesquisa.vocêuma|0 0|0 0G

A maior parte desse algoritmo é a amplificação de amplitude, conforme descrito aqui . A idéia principal é que você pode definir dois estados e esta define um subespaço para a evolução. O estado inicial éUa| 0| 0=(

|ψ=1 1xF(x)xF(x)|x|1 1|ψ=1 1x1 1-F(x)x1 1-F(x)|x|0 0,
. A amplitude do| ipprazo claramente contém as informações sobre a média deF(x), se pudéssemos estimar-lo. Você pode preparar repetidamente esse estado e medir a probabilidade de obter um| 1no segundo registo, mas a busca de Grover dá-lhe uma melhoria quadrática. Se você comparar com o modo como o Grover é normalmente configurado, a amplitude disso| ipvocêuma|0 0|0 0=(xF(x)|ψ+x1 1-F(x)|ψ)2-n/2|ψF(x)|1 1|ψque você pode 'marcar' (neste caso, aplicando ) seria EuZ quemé o número de soluções.m2nm

Aliás, é interessante comparar com o "poder de um qubit limpo", também conhecido como DQC1. Lá, se você aplicar a Ivocêuma, a probabilidade de obter a resposta 1 é igual à versão não acelerada e fornece uma estimativa da média.Eu2n|0 00 0|


z

x|f(x)-f(z)|.
Txf(x)TT

Obviamente, estou pulando alguns detalhes de tempos de execução precisos, estimativas de erro etc.

DaftWullie
fonte
Você precisa primeiro executar o algoritmo de Grover um número logarítmico de vezes para calcular o valor mínimo e máximo da função antes de poder executar o redimensionamento na etapa 1?
tparker 01/10/19
@ parker Isso provavelmente depende. Frequentemente, supõe-se que você saiba o suficiente sobre a função F para poder vincular seus possíveis valores.
DaftWullie 01/10/19