O que exatamente é um oráculo?

18

O que exatamente é um " oráculo "? A Wikipedia diz que um oráculo é uma " caixa preta ", mas não tenho certeza do que isso significa.

Por exemplo, no algoritmo Deutsch – Jozsa ,
,
o oracle é apenas a caixa rotulada como ""vocêf", ou é tudo entre a medição e as entradas (incluindo os portões Hadamard)?

E para dar ao oráculo, preciso escrever vocêf na forma de matriz ou na forma condensada: vocêf fornece yyf(x) e xx é suficiente com relação à definição de um oracle?

StarBucK
fonte
A Microsoft possui uma boa documentação sobre oráculos quânticos .
Sanchayan Dutta 27/03

Respostas:

22

Um oráculo (pelo menos nesse contexto) é simplesmente uma operação que possui alguma propriedade que você não conhece e está tentando descobrir. O termo "caixa preta" é usado de forma equivalente, para transmitir a ideia de que é apenas uma caixa que você não pode ver por dentro e, portanto, não sabe o que está fazendo. Tudo que você sabe é que pode fornecer entradas e receber saídas. No diagrama de circuito que você descreve, é apenas a caixa . Todo o resto são coisas que você está adicionando para ajudar a interrogar o oráculo e descobrir suas propriedades.vocêf

Para dar ao oráculo, você pode escrevê-lo em qualquer forma válida que defina um mapa de todas as entradas e saídas possíveis. Pode ser uma matriz (presumivelmente com um parâmetro desconhecido) ou pode ser o mapa (estritamente ), porque, dada uma descrição, você pode trabalhar com a outra.você:(x,y)(x,yf(x))x,y{0 0,1}

DaftWullie
fonte
Você poderia esclarecer o que quis dizer estritamente na última frase?
Aritra Das 26/03
@tparker não realmente - o objetivo de tais formas de oracle é muitas vezes permitir uma descrição não apenas do algoritmo, mas também para otimizar o algoritmo. Isso é medido simplesmente como uma contagem do número de usos do oráculo. Não importa quanto tempo o oráculo leva para ser executado. Assim, para Grover, isso requer raiz quadrada do número de chamadas oraculares que a clássica faz.
DaftWullie
Você está certo; meu comentário foi mal formulado. O que eu quis dizer é que, se você deseja que um resultado do oracle forneça informações sobre um tempo de execução "do mundo real", você deve assumir (além da suposição da caixa preta) que qualquer sub-rotina que você está executando para realmente implementar a chamada oracle domina o tempo de execução do algoritmo, de modo que o número de chamadas oracle é de fato proporcional ao tempo de execução real. Mas isso é uma suposição adicional para a relevância do "mundo real", não uma parte necessária da definição de um oráculo.
tparker