Questions tagged «grovers-algorithm»

Grover的搜索算法是一种可以按输入大小的平方根顺序执行搜索的算法。这是优于最佳经典算法的可证明的速度,最佳经典算法需要N阶时间才能执行搜索。

3
对于Grover算法为何有效,是否有外行的解释?
斯科特·亚伦森(Scott Aaronson)的这篇博文是对Shor算法的非常有用且简单的解释。 我想知道第二种最著名的量子算法是否有这样的解释:格罗弗(Grover)算法可在时间内搜索大小为的无序数据库。O(n)O(n)O(n)O(n−−√)O(n)O(\sqrt{n}) 特别是,我希望对运行时间最初令人惊讶的结果看到一些可以理解的直觉!

2
自Grover和Shor以来,量子算法是否有真正突破性的进展?
(对一个有点业余的问题很抱歉) 我从2004年到2007年研究了量子计算,但是从那以后,我就再也不了解该领域了。当时有很多关于质量控制的炒作和讨论,它们可能通过超越传统计算机来解决各种问题,但是实际上实际上只有两个理论突破: Shor的算法确实显示出显着的速度提升,但是适用性有限,并且在整数分解之外并没有真正的用处。 Grover算法适用于更广泛的问题类别(因为它可以用于解决NP-Complete问题),但是与传统计算机相比,该算法仅能提高多项式速度。 还讨论了量子退火,但是尚不清楚它是否真的比经典的模拟退火好。基于测量的质量控制和质量控制的图形状态表示法也是热门话题,但是在这方面也没有任何确定的证据。 从那时起,在量子算法领域是否取得了任何进展?特别是: 除Grover和Shor之外,是否还有真正突破性的算法? 在定义BQP与P,BPP和NP的关系方面是否有任何进展? 除了说“一定是由于纠缠”之外,我们在理解量子加速的性质方面是否取得了进展?

2
绝热量子计算能比格罗弗的算法更快吗?
已经证明绝热量子计算等效于“标准”或门模型量子计算。但是,绝热计算显示出优化问题的希望,其目标是最小化(或最大化)某种与问题相关的功能,即找到最小化(或最大化)该功能的实例立即解决该问题。问题。 现在,在我看来,格罗弗(Grover)的算法基本上可以做到这一点:通过搜索解空间,它将找到一个满足oracle标准的解(可能从许多解中),在这种情况下,该解等于最优条件,在时间,其中N是解空间的大小。O(N−−√)O(N)O(\sqrt N)NNN 该算法已被证明是最佳的:如Bennett等人所述。(1997年)提出,“ 不能在时间o (2 n / 2)上在量子图灵机上求解类 ”。以我的理解,这意味着没有任何方法可以构建比O (NPNP\rm NPo(2n/2)o(2n/2)o(2^{n/2}),其中NO(N−−√)O(N)O(\sqrt N)NNN与问题的大小成比例。 所以我的问题是:虽然绝热量子计算在优化问题上通常被认为是优越的,但它真的能比?如果是的话,这似乎与格罗弗算法的最优性相矛盾,因为任何绝热算法都可以通过量子电路来模拟。如果不是,那么开发绝热算法的目的是什么,如果它们永远不会比我们可以使用电路系统地构建的算法快呢?还是我的理解有问题?O(N−−√)O(N)O(\sqrt N)

4
Grover的算法:列表在哪里?
格罗弗的算法时,除其他事项外,要搜索某个项目中的项目的无序列表的长度为。尽管这里有很多关于此主题的问题,但我仍然不明白这一点。yy\mathbf{y}[x0,x1,...,xn−1][x0,x1,...,xn−1][\mathbf{x}_0, \mathbf{x}_1, ..., \mathbf{x}_{n-1}]nnn 以经典方式在列表中搜索 通常,我会这样设计搜索功能 因此,我将列表和所需项作为输入,得到位置列表中项目的输出。我想我已经理解,关于是通过oracle的门嵌入到算法中的,所以我们的函数变成 让我们做一个实际的例子。考虑搜索黑桃1 \ Spadesuit的王牌search([x0,x1,...,xn−1],y)=i∈Nsuch that xi=ysearch([x0,x1,...,xn−1],y)=i∈Nsuch that xi=y \mathrm{search}([\mathbf{x}_0, \mathbf{x}_1, ..., \mathbf{x}_{n-1}], \mathbf{y}) = i \in \mathbb{N} \quad \text{such that } \mathbf{x}_i = \mathbf{y} yy\mathbf{y}OOOsearchy([x1,x2,...,xn])=i∈Nsuch that xi=ysearchy([x1,x2,...,xn])=i∈Nsuch that xi=y \mathrm{search}_\mathbf{y}([\mathbf{x}_1, \mathbf{x}_2, ..., \mathbf{x}_n] ) = i \in \mathbb{N} \quad \text{such that } \mathbf{x}_i = …

2
Grover扩散算子如何工作,为什么它是最优的?
在这个答案中,解释了格罗弗的算法。解释表明,该算法在很大程度上依赖于Grover Diffusion运算符,但未提供该运算符内部工作的详细信息。 简而言之,Grover扩散算子创建了一个“均值倒置”,以迭代方式使先前步骤中的细微差异大到足以测量的程度。 现在的问题是: Grover扩散算子如何实现这一目标? 为什么得到的O(n−−√)O(n)O(\sqrt{n})在总时间内搜索无序数据库是否最优?

3
Grover的搜索算法有哪些应用程序?
Grover的搜索算法通常是在未排序的数据库中查找标记的条目时谈论的。这是一种自然的形式主义,可将其直接用于寻找NP问题的解决方案(在这里容易识别出好的解决方案)。 我有兴趣了解格罗弗搜索在寻找一组数字的最小值,均值和中值的其他应用。这让我想知道是否还有其他已知的Grover搜索应用程序(或其一般化应用程序,例如振幅放大)?任何简短的见解如何做到这一点将不胜感激。

2
格罗弗的算法:一个真实的例子?
对于在实际中如何使用Grover算法,我感到很困惑,我想通过一个示例寻求帮助,以澄清问题。 假设一个元素数据库包含红色,橙色,黄色,绿色,青色,蓝色,靛蓝和紫罗兰色,并且不一定按此顺序排列。我的目标是在数据库中找到Red。N=8N=8N=8 Grover算法的输入为量子位,其中3个量子位编码数据集的索引。我的困惑在这里(可能会对前提感到困惑,所以在这里可能会引起困惑),据我所知,oracle实际上是在搜索数据集的索引之一(由3个量子位的叠加表示),此外, oracle是“硬编码”的,它应该寻找哪个索引。n=log2(N=8)=3n=log2⁡(N=8)=3n = \log_2(N=8) = 3 我的问题是: 在这里我怎么了? 如果oracle确实在寻找数据库的索引之一,那意味着我们已经知道要寻找哪个索引,那么为什么要搜索呢? 给定上述带有颜色的条件,是否有人可以指出,如果Grover可以在非结构化数据集中查找Red? 存在Grover算法的实现,其中的oracle 搜索| 111>,例如(或参见以下相同oracle的R实现):https : //quantumcomputing.stackexchange.com/a/2205n=3n=3n=3 再次,我的困惑是,由于我不知道数据集中元素的位置,因此该算法要求我搜索一个编码N个元素的位置的字符串。我如何知道数据集非结构化时应该寻找哪个位置?NNNNNN R代码: #START a = TensorProd(TensorProd(Hadamard(I2),Hadamard(I2)),Hadamard(I2)) # 1st CNOT a1= CNOT3_12(a) # 2nd composite # I x I x T1Gate b = TensorProd(TensorProd(I2,I2),T1Gate(I2)) b1 = DotProduct(b,a1) c = CNOT3_02(b1) # 3rd composite # …

3
Grover-算法如何应用于数据库?
题 我想使用Grover-Algorithm在未排序的数据库中搜索元素。现在出现了问题,如何使用qubits初始化数据库的索引和值?Xxx 例 假设我有量子位。因此,可以映射经典值。44424= 1624=162 ^ 4 = 16 我未排序的数据库具有以下元素:。dddd[ 数值] = [ 3 ,2 ,0 ,1 ]d[Value]=[3,2,0,1]d [\text{Value}] = [3,2,0,1] 我想搜索。x = 2d= 10b= | 10 ⟩x=2d=10b=|10⟩x = 2_d = 10_b = |10\rangle 我的方法:用为数据库编制索引。寄存器和用于索引,寄存器和用于值。然后,仅将Grover-Algorithm应用于寄存器和。可以实现吗?还有其他方法吗?dddd[ (指数值)] = [ (0 ,3 ),(1 ,2 ),(2 ,0 ),(3 ,1 )]d[(Index, Value)]=[(0,3),(1,2),(2,0),(3,1)]d [(\text{Index, Value})] …

4
Grover算法及其与复杂度类别的关系?
我对Grover的算法及其与复杂度类的联系感到困惑。 该Grover的算法找到和元件中的一个数据库Ñ = 2 Ñ(使得˚F (ķ )= 1)与元件的〜√kkkN=2nN=2nN=2^nf(k)=1f(k)=1f(k)=1 对oracle的调用。∼N−−√=2n/2∼N=2n/2\sim \sqrt{N}=2^{n/2} 所以我们有以下问题: 问题:在数据库中找到一个,使得f (k )= 1kkkf(k)=1f(k)=1f(k)=1 现在我知道这不是一个决定性的问题,因此我们对复杂度等级,NP等的一般定义并没有真正应用。但是我很好奇,在这种情况下我们将如何定义复杂性类,而对于N或n而言,它是如何完成的呢?PP\text{P}NPNP\text{NP}NNNnnn 此外,格罗弗的算法可以用作子例程。我在几个地方都读到了Grover的算法不会改变复杂度等级的问题-是否有一种启发式的方式来解决这一问题。

1
为什么在Grover算法中需要一个oracle qubit?
我对Grover算法中必须使用oracle qubit感到困惑。 我的问题是,是否需要一个oracle qubit取决于您如何实现oracle?或者,是否有任何理由使用oracle qubit?(例如,存在一些无法使用oracle qubit无法解决的问题,或者更容易考虑使用oracle qubit的问题,或者这是一个约定,等等) 许多资源介绍了带有oracle量子位的Grover算法,但是我发现在某些情况下您不需要oracle量子位。 例如,这是IBM Q仿真器中Grover算法的两种实现。一种是使用oracle qubit,另一种则不是。在这两种情况下,我都想从| 00>,| 01>,| 10>和| 11>的空间中找到| 11>。在这两种情况下,oracle成功将| 11>翻转到-| 11>。 ・使用oracle qubit(链接到IBM Q模拟器) ・没有oracle qubit(链接到IBM Q模拟器)

2
使用三个量子位在IBM Q上实现Grover算法的预言
我正在尝试通过实现三个量子位的Grover算法来适应IBM Q,但是难以实现Oracle。 您能否展示如何做到这一点或建议一些好的资源来习惯IBM Q电路编程? 我想要做的是通过翻转一个符号来标记一个任意状态,就像预言中那样。 例如,我有 1 / 8–√(| 000 ⟩ + | 001 ⟩ + | 010 ⟩ + | 011 ⟩ + | 100 ⟩ + | 101 ⟩ + | 110 ⟩ + | 111 ⟩ )1个/8(|000⟩+|001⟩+|010⟩+|011⟩+|100⟩+|101⟩+|110⟩+|111⟩)1/\sqrt8(|000\rangle+|001\rangle+|010\rangle+|011\rangle+|100\rangle+|101\rangle+|110\rangle+|111\rangle)。 我想标记通过翻转其标志。我以某种方式理解CCZ闸门可以解决问题,但是IBM Q中没有CCZ闸门。某些闸门的组合将起到与CCZ相同的作用,但是我不确定如何做到这一点。我还为其他情况而苦苦挣扎,不仅是。- | 111 ⟩ | 111 ⟩| 111⟩|111⟩|111\rangle- | …



1
Grover的算法:向Oracle输入什么?
我对于在Grover的算法中向Oracle输入什么感到困惑。 除了叠加的量子态,我们是否不需要向Oracle输入我们正在寻找的东西以及在哪里可以找到我们想要的东西? 例如,假设我们有一个人名列表{“ Alice”,“ Bob”,“ Corey”,“ Dio”},并且我们要查找列表中是否包含“ Dio”。然后,Oracle应该采取1 / 2 (| 00 ⟩ + | 01 ⟩ + | 10 ⟩ + | 11 ⟩ )1/2(|00⟩+|01⟩+|10⟩+|11⟩)1/2(|00\rangle + |01\rangle + |10\rangle + |11\rangle) 作为输入和输出 1 / 2 (| 00 ⟩ + | 01 ⟩ + | 10 ⟩ - | 11 …
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.