黑盒子量子电路的基本原理是什么?

时间:2016-06-02 14:30:53

标签: quantum-computing

我读过一些关于量子计算机和量子电路的资料。一定数量的已知算法(Simon算法,周期搜索算法,Grover算法......)具有以下形式:

  

假设我有一个未知的经典函数f:{0,1} ^ n - > {0,1} ^ m满足一定数量的语句。我可以将(未知的)量子电路U_f与它相关联并插入| 0 ... 0>输入状态。现在让我们定义电路X并显示当附加到U_f时,可以测量全局输出以提取关于f的一些信息。

等一下......与经典电路的关系是什么?经典问题是指满足某些属性的未知输入,此输入表示来自外部的状态(用户操作,文件系统,数据库,服务器等等)。如果该状态由另一电路/算法产生,则逻辑应用于之前的输入。最后,我们没有推理未知电路,而是关于未知输入。电路(算法/功能)是已知/选择的组件。

在这里,我意识到通用名称“电路”在某种程度上具有误导性。在经典世界中,门输入可以被认为是与输出共存的值。但量子门似乎需要时间解释:输入和输出代表相同量子比特的时间演化。

现在这并没有真正解释你如何改造一堆先天未知的经典输入位(我相信你的键盘将来会继续产生,除非可能是Schrödinger的猫坐在它上面)变成一个“黑匣子”量子电路“变换| 0 ... 0>变成了可逆转的东西。例如,Grover算法提出,对应于函数f的量子电路:{0,1} ^ n - > {0,1}为单个未知输入产生1,这是确定此输入的有效方法。太好了!但是,你首先要从这样的电路开始如何以及为什么要开始呢?

1 个答案:

答案 0 :(得分:0)

在实践中,“未知功能黑匣子”只是一个检查其输入是否符合某些标准或是问题解决方案的电路。

这很有用,因为制作检测解决方案的电路比实际找到解决方案更容易。 Grover的算法然后将我们的检测器电路扩展为求解器电路:

Grover Search

Grover算法的经典等价物是像这样的强力搜索函数:

def bruteForceSearch(min, max, predicate):
    for i in min..max:
        if predicate(i):
            return i
    return none

你可以这样使用它:

let mersennePrimeWithFiveDigitExponent = bruteForceSearch(
     10000,
     99999,
     i => isMersennePrime(2**i - 1))

请注意蛮力搜索如何将我们如何识别某些内容的知识转化为查找某事物的机制。 Grover的算法做了同样的事情,但是方形更快,并且需要注意识别器必须实现为可逆电路。