Answers:
除了您提到的以外,我知道的(一种改进的)格罗弗算法的另一个应用是解决复杂性理论,量子计算和计算数学中的碰撞问题。也称为BHT算法。
介绍:
碰撞问题通常是由Scott Aaronson在其博士论文中描述的2对1版本。鉴于甚至和功能˚F :{ 1 ,。。。,Ñ } → { 1 ,。。。,n }我们事先知道f是1对1或2对1。我们只能做出关于价值查询˚F (我)对于任何我∈ { 1 ,2 ,。然后问题问我们需要确定多少个查询才能确定 f是1比1还是2比1。
确定性地解决2对1版本需要查询,通常将r对1函数与1对1函数区分开需要n / r + 1个查询。
确定性经典解:
这是信鸽原理的直接应用:如果一个函数是从r到1的关系,那么在查询之后,我们保证会发现一个碰撞。如果函数是一对一的,则不存在冲突。如果我们很不幸,那么n / r个查询可能会返回不同的答案。因此,n / r + 1个查询是必要的。
随机经典解:
如果我们允许随机性,那么问题就更容易了。根据生日悖论,如果我们随机选择(不同)查询,则很有可能在Θ (√之后出现任何固定的2比1函数冲突 查询。
量子BHT解决方案:
直观地讲,该算法将 使用(经典)随机性的 生日悖论的平方根加速与通过Grover(量子)算法的平方根加速进行了组合。
首先,的输入至˚F随机选择和˚F在所有这些查询。如果这些输入之间发生冲突,那么我们将返回碰撞的输入对。否则,所有这些输入将通过f映射到不同的值。然后,使用格罗弗(Grover)算法查找冲突的f的新输入。由于只有 Ñ 2 / 3这样的输入到˚F,Grover的算法可以通过使只找到一个(如果它存在) Ô(√
资料来源:
Grover的算法也广泛用于量子密码学中。它可以用于解决先验对数问题,多项式求根问题等问题。
Grover的算法可以比蛮力搜索更快地解决任何数值优化问题,因为任何优化问题都可以表述为搜索问题(在其中搜索大于或小于某个固定值的函数输出 在每次运行中重复一次,然后使用二进制搜索重复对数运行,以找到最佳 ):https://epubs.siam.org/doi/abs/10.1137/040605072?journalCode = sjope8。
实际上,对于许多困难的优化问题(例如NP完全问题),格罗弗的算法是最著名的量子算法,这些问题的结构没有比蛮力搜索更聪明的经典算法:https:// link.springer.com/chapter/10.1007/978-3-540-78773-0_67。