Deutsch算法的推广

时间:2012-12-08 04:20:28

标签: algorithm probability quantum-computing

这个问题涉及对多于一位作为输入的函数讨论的Deutsch问题的直接推广。这次,我们有一个布尔函数f,它以4位数作为输入并输出0或1,即f:{0,1}4→{0,1}。因此,f的输入是16个可能的4位二进制数之一:

0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.

我们还被告知f是以下两种类型之一:

either f is a constant function, i.e., f(x) is the same for all 16 possible values of the input x, or
f is a balanced function, i.e., f(x) is 0 for exactly 8 of the possible 16 inputs and f(x) is 1 for the remaining 8 of the possible 16 inputs.

我们被允许通过给f的电路输入x并观察输出f(x)来将f的电路用作“黑盒子”。这称为“查询”操作。

显示经典概率算法可以通过使用2个查询来确定f是平衡的还是常数,概率至少为2/3。

提示:(显然,我们不能使用确定性算法。除非确定性算法看到输出至少9个输入值,否则无法找出函数是平衡的或恒定的。)

考虑从16个可能的输入集合中均匀和随机地选择两个输入。您的最终结果可能在概率上取决于这两个查询的结果。

2 个答案:

答案 0 :(得分:0)

编辑:我错误地计算了一些我的概率。我现在还提到我们需要为函数f随机选择2个不同的输入,以保证如果f是平衡的,那么我们就知道了看到各种可能结果的可能性。

函数不变的先验概率未知的事实使得这个问题更难,因为这意味着我们无法直接计算任何算法的成功概率。但是,我们将能够计算界限这个概率。

我提出以下概率算法:

  • 随机选择两个不同的4位值,并将每个值提供给函数f。
  • 如果看到0,0或1,1输出“常数”,概率为2/3,“平衡”概率为1/3。
  • 否则(如果看到0,1或1,0),请始终报告“平衡”。

让我们先看一下我们可以实际计算的东西:条件概率。

  1. “什么是P(校正|常数),即假设f是常数,我们的算法给出正确答案的概率?”当f是常数时,我们的算法报告正确答案2 / 3个时间。
  2. “什么是P(正确|平衡),即假设f是平衡的,我们的算法给出正确答案的概率?”当f平衡时,看到0,1的概率或1,0是2 *(8/16 * 8/15)= 8/15,在这种情况下肯定会输出正确的答案。在剩下的7/15个案例中 - 即看到0,0或1,1的案例 - 正确答案将在1/3的时间内输出,因此正确输出的总比例将为8/15 * 1 + 7/15 * 1/3 = 31/45 = 2/3 + 1 /45≈0.6889。
  3. 现在假设函数的先验概率是p。那么算法给出正确答案的概率是

    pCorrect(p)= p * P(校正|常数)+(1-p)* P(校正)。

    假设0 <= p <= 1,则pCorrect(p)必须至少为min(P(校正),P(校正)),并且至多为max(P(校正|常数) ),P(纠正|平衡))。 2/3和31/45的最小值是2/3,因此,对于任何先前的函数常数概率,pCorrect从下面以2/3为界。(可能有助于想到p作为一个“混合杠杆”,控制每个术语包括多少。如果p = 0或p = 1,那么我们实际上分别有P(正确|平衡)或P(正确|常数),对于任何在p的中间值,我们将有一个中间总数。)

答案 1 :(得分:-1)

查看不同类型函数的概率,以便为两个给定值返回不同的结果:

constant  0,0  50%
constant  1,1  50%
balanced  0,0  4/8 * 3/7 = 21,4%
balanced  0,1  4/8 * 4/7 = 28.6%
balanced  1,0  4/8 * 4/7 = 28.6%
balanced  1,1  4/8 * 3/7 = 21.4%

如果结果为0,0或1,1则该函数有70%的可能性是恒定的,而对于结果0,1和1,0,该函数平衡的可能性为100%。因此,对于71.4%的情况发生的情况,我们70%确定,并且发生的情况占28.6%,我们100%确定。平均而言,我们肯定是78.6%。