在Grover算法的Wikipedia页面上,提到:
“ Grover的算法还可以用于估计一组数字的平均值和中位数”
到目前为止,我只知道如何将其用于搜索数据库。但不确定如何实施该技术来估计一组数字的均值和中位数。而且,据我所知,该页面上没有引用该技术的文章。
在Grover算法的Wikipedia页面上,提到:
“ Grover的算法还可以用于估计一组数字的平均值和中位数”
到目前为止,我只知道如何将其用于搜索数据库。但不确定如何实施该技术来估计一组数字的均值和中位数。而且,据我所知,该页面上没有引用该技术的文章。
Answers:
估计均值的想法大致如下:
对于任何以实数形式提供输出的,定义一个重缩放后的,其输出范围为0到1。我们旨在估算的平均值。
定义一个单一的其运算为重要的是要注意,此单元很容易实现。您从第一个寄存器的Hadamard变换开始,在辅助寄存器上执行的计算,使用它来实现第二个寄存器的受控旋转,然后取消计算辅助寄存器。
定义酉。
从状态,就像使用Grover迭代器来估计搜索问题的解决方案数量一样,使用
该算法的主要散装是振幅放大,如所描述这里。主要思想是可以定义两个状态 而这个定义演变的一个子空间。初始状态为。如果仅可以估计项的幅度,则显然包含有关平均值的信息。您可以重复准备该状态并测量获得的可能性
顺便说一下,与“一个干净的量子比特的功率”(也称为DQC1)相比,这很有趣。在那里,如果将应用于,得到1个答案的概率与非加速版本相同,并为您提供了均值的估算值。
对于中位数,显然可以将其定义为最小化 的值 这里有两个步骤。首先是要意识到我们试图最小化的功能基本上只是一个平均值。然后第二步是使用最小化算法,该算法也可以通过Grover搜索来加速。这里的想法是使用Grover搜索,并标记所有函数评估给出的值小于某个阈值。您可以估计给出的输入的数量,然后重复一个不同的直到您对最小值进行了足够的定位。
当然,我跳过了精确运行时间,错误估计等的一些详细信息。