Grover的算法如何用于估计一组数字的均值和中位数?


10

Grover算法Wikipedia页面上,提到:

“ Grover的算法还可以用于估计一组数字的平均值和中位数”

到目前为止,我只知道如何将其用于搜索数据库。但不确定如何实施该技术来估计一组数字的均值和中位数。而且,据我所知,该页面上没有引用该技术的文章。


如果您选择回答自己的问题,或者对于选择承担任务的人,则此链接看起来像是一个很好的起点,开始如何使用Grover算法查找Weirdo函数的平均值(aka平均值,积分)
agaitaarino

@agaitaarino谢谢。我会仔细检查的。顺便说一句,您的注释不能正确显示为链接,因为您在左括号后留了空白。:)
Sanchayan Dutta '18年

Answers:


9

估计均值的想法大致如下:

  • 对于任何以实数形式提供输出的,定义一个重缩放后的,其输出范围为0到1。我们旨在估算的平均值。f(x)F(x)F(x)

  • 定义一个单一的其运算为重要的是要注意,此单元很容易实现。您从第一个寄存器的Hadamard变换开始,在辅助寄存器上执行的计算,使用它来实现第二个寄存器的受控旋转,然后取消计算辅助寄存器。Ua

    Ua:|0|012n/2x|x(1F(x)|0+F(x)|1).
    f(x)
  • 定义酉。G=Ua(I2|00||00|)UaIZ

  • 从状态,就像使用Grover迭代器来估计搜索问题的解决方案数量一样,使用Ua|0|0G

该算法的主要散装是振幅放大,如所描述这里。主要思想是可以定义两个状态 而这个定义演变的一个子空间。初始状态为。如果仅可以估计项的幅度,则显然包含有关平均值的信息。您可以重复准备该状态并测量获得的可能性

|ψ=1xF(x)xF(x)|x|1|ψ=1x1F(x)x1F(x)|x|0,
Ua|0|0=(xF(x)|ψ+x1F(x)|ψ)2n/2|ψF(x)|1在第二个寄存器上,但是Grover的搜索使您得到了二次改进。如果与通常设置Grover的方式进行比较,则可以“标记”(在本例中通过应用)的的幅度将为其中是解的数量。|ψIZm2nm

顺便说一下,与“一个干净的量子比特的功率”(也称为DQC1)相比,这很有趣。在那里,如果将应用于,得到1个答案的概率与非加速版本相同,并为您提供了均值的估算值。UaI2n|00|


对于中位数,显然可以将其定义为最小化 的值 这里有两个步骤。首先是要意识到我们试图最小化的功能基本上只是一个平均值。然后第二步是使用最小化算法,该算法也可以通过Grover搜索来加速。这里的想法是使用Grover搜索,并标记所有函数评估给出的值小于某个阈值。您可以估计给出的输入的数量,然后重复一个不同的直到您对最小值进行了足够的定位。z

x|f(x)f(z)|.
Txf(x)TT

当然,我跳过了精确运行时间,错误估计等的一些详细信息。


您需要先对数运行Grover算法以计算函数的最小值和最大值,然后才能在步骤1中执行重新缩放吗?
tparker

@tparker这可能取决于。通常假设您对函数F足够了解,可以绑定其可能的值。
DaftWullie,
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.