Qu'est-ce qu'un oracle exactement?


18

Qu'est-ce qu'un " oracle " exactement ? Wikipedia dit qu'un oracle est une " boîte noire ", mais je ne sais pas ce que cela signifie.

Par exemple, dans l' algorithme Deutsch – Jozsa ,
,
l'oracle est-il juste la case étiquetée ou est-ce tout entre la mesure et les entrées (y compris les portes Hadamard)?""UF",

Et pour donner l'oracle, dois-je écrire sous forme matricielle ou sous forme condensée: donne et est suffisant par rapport à la définition d'un oracle?UFUFyyF(X)XX


Microsoft a une belle documentation sur les oracles quantiques .
Sanchayan Dutta

Réponses:


22

Un oracle (au moins dans ce contexte) est simplement une opération qui possède des propriétés que vous ne connaissez pas et que vous essayez de découvrir. Le terme "boîte noire" est utilisé de manière équivalente, pour transmettre l'idée que c'est juste une boîte que vous ne pouvez pas voir à l'intérieur, et donc vous ne savez pas ce qu'elle fait. Tout ce que vous savez, c'est que vous pouvez fournir des entrées et recevoir des sorties. Dans le schéma de circuit que vous représentez, il s'agit simplement de la case . Tout le reste est des choses que vous ajoutez afin d'aider à interroger l'oracle et à découvrir ses propriétés.UF

Pour donner l'oracle, vous pouvez l'écrire sous n'importe quelle forme valide qui définit une carte de toutes les entrées et sorties possibles. Cela pourrait être une matrice (vraisemblablement avec un paramètre inconnu), ou ce pourrait être la carte (strictement, ), car étant donné l'une ou l'autre description, vous pouvez déterminer l'autre.U:(X,y)(X,yF(X))X,y{0,1}


Pourriez-vous préciser ce que vous entendiez par strictement dans la dernière phrase?
Aritra Das

@tparker pas vraiment - le but de ces formes d'oracle est souvent qu'il permet une description non seulement de l'algorithme, mais pour l'optimalité de l'algorithme. Cela se mesure simplement en fonction du nombre d'utilisations de l'oracle. Peu importe le temps que prend l'oracle pour fonctionner. Donc, pour les grover, cela nécessite une racine carrée du nombre d'appels oracle que le classique fait.
DaftWullie

Tu as raison; mon commentaire était mal formulé. Ce que je voulais dire, c'est que si vous voulez qu'un résultat Oracle donne un aperçu d'un runtime "réel", vous devez supposer (en plus de l'hypothèse de la boîte noire) que le sous-programme que vous utilisez pour réellement l'implémenter l'appel oracle domine l'exécution de l'algorithme, de sorte que le nombre d'appels oracle est en effet proportionnel à l'exécution réelle. Mais c'est une hypothèse supplémentaire pour la pertinence "du monde réel", pas une partie nécessaire de la définition d'un oracle.
tparker
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.