我读过一些关于量子计算机和量子电路的材料。一些已知的算法(Simon 算法、周期查找算法、Grover 算法……)具有以下形式:
假设我有一个未知的经典函数 f: {0,1}^n -> {0, 1}^m 满足一定数量的语句。我可以将(未知)量子电路 U_f 与它相关联并插入 |0.. 0> 输入状态。现在让我们定义电路 X 并显示当附加到 U_f 时,可以测量全局输出以提取有关 f 的一些信息。
等一下……与经典电路有什么关系?经典问题是指满足某些属性的未知输入,该输入表示来自外部的状态(用户操作、文件系统、数据库、服务器等)。如果此状态是由另一个电路/算法生成的,则逻辑适用于之前的输入。最后,我们不是对未知电路进行推理,而是对未知输入进行推理。电路(算法/功能)是已知/选择的组件。
在这里,我意识到通用名称“电路”在某种程度上具有误导性。在经典世界中,门输入可以被认为是与输出共存的值。但量子门似乎需要时间解释:输入和输出代表相同量子位的时间演化。
现在这并不能真正解释你如何将一组给定的先验未知经典输入位(我相信你的键盘在未来会继续生成,除非薛定谔的猫坐在上面)变成“黑匣子量子电路”将 |0…0> 转换为要反转的东西。例如,格罗弗的算法提出,对于对应于函数 f: {0, 1}^n -> {0, 1} 的量子电路,对于单个未知输入产生 1,这是一种确定该输入的有效方法。好的!但是,您首先要如何以及为什么要从这样的电路开始呢?