Grover算法的运行时


19

Grover算法的时间复杂度(不是查询复杂度)是多少?在我看来,这是因为存在迭代,并且每次迭代都需要使用反射操作,这反过来又需要时间使用任何标准的通用门集。Ω(log(N)N)ΩlogNΩ(N)Ω(log(N))

问题是,我什至找不到一个引用,该引用说Grover算法的时间复杂度是。维基百科和其他几个网页说时间复杂度。Grover的论文声称 “步骤”。OΩ(log(N)N)OO(N)O(N)

我想念什么吗?也许人们将反射操作定义为花费单位时间。但这对我来说没有意义,因为如果我们可以玩允许任意unit取单位时间的游戏,那么查询复杂度和时间复杂度之间就不会有差异。


11
我想不出关于格罗弗算法时间复杂度的参考,但是您写的是对的。实际上,在任何有限的门集合上,在Grover算法中查询之间执行的操作至少需要门,因为每个门的宽度都是有限的,但是我们需要执行影响所有量子位的门。log NΩ(logN)logN
罗宾·科塔里

Answers:


11

出于以下原因,通常认为该问题没有意义。Grover算法是一种组合搜索算法,用于查找任意谓词的解决方案。是的,虽然是黑盒算法每个阶段的量子门复杂度,但该谓词也需要计算。量子门的复杂度为,因为否则它将无法读取整个输入,因此您可以从搜索中丢弃一些输入位。另一方面,一个有趣的谓词可能花费更多的时间。因此,谓词的调用次数被视为标准硬币,就像格罗弗算法的经典模拟(即随机猜测)一样。Ω log N Θ(logN)Ω(logN)


6

事实证明,有一种方法可以实现少于门的Grover算法!这就是为什么您找不到引用声称需要门的原因。至少在有一个标记项目的情况下,可以做得更好。ΩO(NlogN)Ω(NlogN)

Arunachalam和de Wolf最近的预印本提供了一种新算法,可以解决一个带有查询复杂度且只有标记项目的搜索问题。门(来自门组Toffoli +所有一比特位的门)。OO(N)O(Nlog(logN))

请注意,函数增长非常缓慢,以至于即使是宇宙中的原子数,最多也只有3。N log log * N log(logN)Nlog(logN)

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.