Algoritmo de Grover: o que inserir no Oracle?

9

Estou confuso sobre o que inserir no Oracle no algoritmo de Grover.

Não precisamos inserir o que estamos procurando e onde encontrar o que estamos procurando para a Oracle, além dos estados quânticos sobrepostos?

Por exemplo, suponha que tenhamos uma lista de nomes de pessoas {"Alice", "Bob", "Corey", "Dio"} e queremos descobrir se "Dio" está na lista. Em seguida, a Oracle deve tomar como uma entrada e saída de 1 / 2 ( | 00 + | 01 + | 10 - | 11 ) . Eu meio que entendo isso.1/2(|00+|01+|10+|11)1/2(|00+|01+|10|11)

Mas também não precisamos inserir a palavra "Dio" e a lista {"Alice", "Bob", "Corey", "Dio"} no Oracle? Caso contrário, como o Oracle pode retornar a saída? Não é mencionado explicitamente, pois o Oracle é uma caixa preta e não precisamos pensar em como implementá-lo?

Meu entendimento sobre Oracle é,

  • A Oracle tem a capacidade de reconhecer se a palavra "Dio" está na lista.
  • Para fazer isso, o Oracle usa os estados quânticos sobrepostos como uma entrada, onde cada estado quântico representa o índice da lista.
  • Então, insira aos meios da Oracle, verifique se a palavra "Dio" está no índice 0 da lista e retorno - | 00 se sim e retorno | 00 contrário.|00|00|00
  • No nosso caso, a Oracle retorna .1/2(|00+|01+|10|11)
  • Mas e a lista e a palavra?
Bick
fonte
11
Embora não seja formulada da mesma maneira, acredito que sua pergunta é mais ou menos a mesma: Esta: o algoritmo de Grover: onde está a lista?
DaftWullie

Respostas:

4

O(NF)NF

NFO(N)O(NF)=O(NN)=O(N1.5)N1.5>N

Craig Gidney
fonte
O(Nlog(N))
@DaftWullie O problema é que Grover deve fazer uma pesquisa sob superposição, e isso requer um circuito multiplexador com portas N AND (ou outras operações que não sejam de Clifford). Um portão quântico AND (ou seja, um Toffoli) tem um custo não desprezível ao executar a correção de erros. Tecnicamente, esse custo também está presente na máquina clássica (ou seja, a RAM possui portas O (N) AND)), mas é desprezível e até evitável nesse contexto.
Craig Gidney
Eu não entendo o que você está dizendo. Você seria capaz de expressar uma pergunta e respondê-la para mostrar os detalhes? (Eu não acho que posso formular uma pergunta boa o suficiente neste momento)
DaftWullie
@DaftWullie Acho que a pergunta seria algo como "como faço para dar a um computador quântico acesso de leitura a um banco de dados clássico e quão caro é".
Craig Gidney