甲骨文到底是什么?


18

什么是“ 甲骨文 ”?维基百科说,甲骨文是一个“ 黑匣子 ”,但是我不确定这是什么意思。

例如,在的Deutsch-Jozsa量子算法,,是oracle只是标记盒子``U_f“,或者是它的测量和输入(包括哈达玛栅极)之间的所有内容?

''üF

并给出甲骨文,我需要以矩阵形式还是üF形式写U_füFÿÿFXXX就甲骨文的定义而言足够了吗?


微软有关于量子预言的不错的文档。
Sanchayan Dutta

Answers:


22

oracle(至少在这种情况下)只是一个具有某些您不知道的属性的操作,并且正在尝试找出。术语“黑匣子”被等同地用来表达这样的想法,即它只是一个在内部看不到的箱子,因此您不知道它在做什么。您所知道的是,您可以提供输入和接收输出。在您描绘的电路图中,它只是üF框。其他所有内容都是您要添加的内容,以帮助查询oracle并发现其属性。

要提供oracle,您可以用任何有效的形式编写oracle,它定义了从所有可能的输入到输出的映射。它可以是矩阵(可能带有未知参数),也可以是映射(严格来说,),因为给出了任何一个描述,您就可以计算出另一个。üXÿXÿFXXÿ{01个}


您能否在最后一句话中严格解释您的意思?
阿里特拉达斯

@tparker并不是真的-这种预言形式的目的通常是它不仅允许描述算法,而且可以描述算法的最优性。这可以简单地作为对oracle使用次数的计数来衡量。oracle运行多长时间都没关系。因此,对于grover来说,这需要经典的oracle调用数的平方根。
DaftWullie

你是对的; 我的评论措辞不好。我的意思是,如果您想让oracle结果提供对“真实世界”运行时的任何见解,则需要假设(除了黑盒假设之外)您要运行的任何子例程都将实际实现oracle调用支配了算法的运行时,因此oracle调用的次数确实与实际运行时成比例。但这是“现实世界”相关性的附加假设,而不是Oracle定义的必要部分。
tparker,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.