为什么在Grover算法中需要一个oracle qubit?


10

我对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模拟器在此处输入图片说明

Answers:


5

U|x|y=|x|yf(x),
f(x)x(|0|1)/2
U~|x=(1)f(x)|x

xU~U


假设多余的qubit在oracle计算过程中不用作工作空间,实际上避免它容易。在多余的量子位上找到任何CNOT,然后将其替换为CN控件上的Z门。同样,用CCNOT的两个控件之间的CZ将CCNOT替换到额外的量子位上。等等
克雷格·吉德尼

@CraigGidney这是一个公平的观点,尽管我认为您的陈述中内置了更多假设(即使我们知道大多数情况都满足,也使其成为非一般假设):(1)在此期间不应使用任何中间词功能评估;(2)甲骨文的电路必须分解成一个门集合,其中作用于oracly量子比特上的唯一多量子比特门是(多)受控的,而不是针对甲骨文量子比特的;(3)没有其他门可以对oracle量子位起作用(即,您不能仅仅通过在输入和输出上使用Hadamards来使c-not以错误的方式作用)。
DaftWullie '18

那是正确的。
Craig Gidney '18
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.