hacker news上面有个问题:有啥科学现象你希望有人能更好的解释一下?
其中有个被人提到的,就是量子计算,并且也有人给出了很好的科普文章:
我来大概翻译一下。
看完这篇文章,你会大概了解量子计算。(当然,对量子物理你依然一窍不通)
在普通计算机中,一个「位」有两种状态:0或者1
这通常对应现实世界中的低电平和高电平。
我们说,一个「位」有两种可能的状态。
同样,量子计算中,也有「量子位」的概念,那么量子位有多少种状态呢?
我先卖个关子,我不说它有多少种可能的状态,我先说两种很特殊的状态:
和
是的,「量子位」是一个(二维)向量。
我们称第一种状态为 ,第二种状态为 。(是的,物理学家就是对一行能写下所有符号的执念很深)。
好了,以上是两种特殊状态。还有其他的很多种状态,比如
也是一种状态。
当然,我们有:
(看,依然是个向量)
一般的,量子位的状态是 ,其中
也就是说,量子位的状态总是一个单位向量。
但是要特别注意的是, 和 都是复数。
也就是说,状态是复平面上的向量。
你现在可能在思考直观的物理图像。如果你做不到,那很正常,毕竟是量子力学。很不直观。
我们的普通计算机也使用逻辑门,比如一个普通的「非门」:
同样,量子计算中也有逻辑门,并且很巧,也有一个非门:
当然,我这么写是有点特意和经典逻辑门保持一致,严谨点说,计算规则(或者说物理规则)是这样的:
当然,我们要入乡随俗,量子计算中,一般不用NOT这个符号,而是用
有一个更数学的表述,是这样的:
这样对量子位做X操作就变成了左乘:
(我假设你懂得矩阵乘法,如果你不懂,可以去看相关教程,或者去看我的数学符号入门)
在普通的门电路中,最简单的电路并不是非门,而是导线,是的,导线是最简单的,不论是理解,还是制造。(当然,光刻机的事情是个例外,光刻机的事情嘛……)
但在量子电路中(如果我们称之为电路的话),「导线」反而是最难制造的。
量子态极容易受到干扰,所以保持量子态,并不是那么简单。
当然,我们可以用一些「稳定」的物质保存量子态,比如中微子(因它很少和别的物质发生交互),但问题也来了,那么我们在提取量子态的时候,就会遇到困难(因为你得找到能和它发生交互的物质并为你所用)。
这是一个基本的矛盾。
当然,我们可以像普通门电路一样串联一些门。比如说,我们希望一个量子态经过一个X之后,再经过一个X。
理解它的计算过程并不困难:
这并不令人感到意外,它和经典的逻辑门是一样的。
当然,我们还有另一种表示形式:
毫不意外,我们看到结果是一个单位矩阵。
在经典逻辑中,一元运算只有一种,那就是非。但是量子计算中,可以对一个量子位进行运算的逻辑门远不止一个,接下来我们介绍Hadamard 门。
(看,事情终于变得比较量子一点了)
但聪明的你一定看出来了,上面的两个式子并不那么普世。
对于任意的量子位,我们甚至可以「代入」上面的公式:
这还是显得有些冗余,于是请出我们秀气的矩阵表示方法:
你甚至可以自己验证一下,用矩阵乘法计算一下 和 ,看看是否正确。
接下来有一个小小的练习:
如果一个量子位连续经过两个H门,会发生什么情况?
--- 故意的留白 ---
你可以计算 ,也可以直接用矩阵乘法计算 ,当然结果你会发现: (其中 是单位矩阵)
也就是说,连续的两个H门,相当于什么都没做。
接下来还有一个小练习:
有一个量子位 ,经过一个H门,再经过一个X门,为什么结果会是 ,而非 ?
我们刚才一直在讲底层的量子门,你不禁要问,量子计算有没有什么「高级」的语言呢?
还不太有。
现在就像是1940年的计算机科学:有了埃尼亚克,相关的书籍也汗牛充栋,但归根结底,这门学科还有很大的发展空间。
这也是令人激动的地方。
假设著名的Alice在实验室制作了一个量子位 ,她发送给同样著名的Bob,那么Bob如何得到 和 的值呢?
答案是:不可能!
Bob将不可能获得这信息。
事实上,如果Bob可以获得 和 ,那么事情将会变得奇怪起来,毕竟 和 是两个复数,理论上可以存储无限的信息。如果Bob有手段提取这两个数字,那么Alice甚至可以将国家图书馆整个打包进去。
不可能就是不可能。
但我们有种方法观测一下这个量子位,我们可以让这个量子位坍塌,最后,我们将会以 的概率观察到 ,以 的概率观察到 。
还记得我们最开始说过的 吗?
你看,现在一切都联系起来了。
当然,你要记住,当你观察的那一瞬间, 和 就远去了,再也回不来了。(简单的物理规则,狗头)
练习
假设臭名昭著的Alice给了你一个量子位,她向你保证,只可能是 和 两种状态中的一种。
那么你将如何分辨呢?
--- 留白 ---
我们让这个量子位过一个H门。
如果是前者,那么我们将会以1的概率得到0,如果是后者,就会以1的概率得到1.
单量子位有多少种可能的操作呢?事实上,有无限种。
我们之前说过,量子位是复平面上的单位向量(长度为1),那么只要能保持长度,就是合法的单量子位门。
事实上,有个专门的数学语言表示这种单量子位门。也就是 酉矩阵。
对于矩阵 ,若 ,则称 为酉矩阵。
其中 是 的复共轭转置:
转置就不用说了,复共轭指的是,对矩阵的每个元素,对其虚数部分进行取相反数操作。
若矩阵中某元素为 ,则其复共轭是
数学就是这么神奇。
练习:证明X是酉矩阵。
练习:证明单位矩阵 是酉矩阵
练习:你能再举出一个除了XHI三个之外的2x2的酉矩阵的例子吗?
我们之前说了X这个量子门,其实还有Y和Z。
练习:证明Y和Z是酉矩阵。
还有一类非常好的例子,是旋转矩阵(在二维平面上旋转 )
有一个n维的复向量 ,以及一个 复矩阵 ,则 ,当且仅当 为酉矩阵。
(译者:原文有证明,感兴趣的同学可以去看看。求知欲让我进去看,求生欲让我退出来)
刚才所讲的,全是单量子位的逻辑门。
那么多个量子位的逻辑门呢?
经典的逻辑门里,有一种带有控制位的非门。
只有当控制位设置了,才是非门,如果没有设置,就相当于普通导线。
我们甚至可以写出以下伪代码:
def CNOT(c, b):(甚至这还是可运行的python代码)
当然,还有另一种形式更加接近电子线路:
def CNOT(c, b):其中的add_mod_2是模2的加法。
这里可以看到,本质上,c(控制位)是不变的,另一个输入则会和c进行一个(异或)运算。
当然,以上我们所讲的是经典的带有控制位的非门。
到了这里,必须讲一讲两个量子位的观测了。
我们有四个基本的计算状态: 、 、 和 ,于是,观测任意量子态 将会以 的概率观察到对应的四种状态。
其中
接下来,我们写出量子世界的控制非门:
看起来很简单,也很符合直觉不是吗?不就是10和11交换一下嘛。
在上面,我用 来表示 。这很正常。(毕竟怎么可能有其他的结果)。
一般的,如果两个量子位 和 结合,则结果状态为:
我说CNOT保留控制位不变,目标位可能改变。但是在量子的世界中,可能是相反的。
练习:你能找到两个位 和 ,使得两者结合之后的 再应用一下CNOT,结果改变了第一个量子位(也就是控制位)?
我可以给你一个例子作为答案:
如果我们放入 ,出来的是
(你可以自己验算一下)
就是这么神奇。
我们描述一下一般的量子计算过程
就是这么简单。
除了这种量子电路计算模型之外。还有很多其他的模型,比如基于测量的量子计算、拓扑量子计算等。但是在数学上它们等价。
有一类特殊的量子门:
其中 是个实数。
叫做 全局相因子。
这个门对最终的结果无影响。(译者:证明在此 )
量子计算在某些方面,有着超越普通计算的速度。
但量子计算可以代替普通计算吗?
当然可以。我们已经用X门代替了NOT门,接下来,如果有什么门可以代替AND门,我们就完成了证明。
但不幸的是,AND门在量子的世界不可能。证明并不难,如果你喜欢挑战自我,可以试着思考一下(译者:我不)。
当然,也不是没有解决的办法。科学家发现了一种量子门叫做Toffoli 门(你现在知道是谁发现的了)。
如果z=0,那么 的结果就是
练习:如何实现NAND门?(也就是对 的结果取反。)
练习:你可以发现一种只使用Toffoli 门的NAND门吗?
实际上Toffoli 门还挺复杂的。(译者:见原文)
练习:证明Toffoli 门的相反操作还是Toffoli 门。
量子计算可以快速模拟量子,而普通计算机很难模拟量子。
这并不难理解。我们发现,模拟一个量子态需要两个系数( ,也叫振幅),那么假如一个分子有n个原子,每个原子都有一个量子态(实际上,还可能不止一个),我们需要多少个系数呢?
个。
毕竟,每个形如 都需要一个系数。
这是指数增长的。所以,对经典计算机来说,计算这个量子系统几乎是不可能的。
如果大容量的量子计算机投入实用,可能会立马改变化学行业的现状。
从这里,我们也可以看出量子计算机的一个变态之处——量子摩尔定律:
如果经典计算机的摩尔定律是线性增长,我量子计算机就可以指数增长。
长远来看,赢的一定是量子计算机。
量子计算机的另一个用处是分解大质数(Peter Shor的分解质因数算法(译者:如果有可能我会去学一下))。这个看起来平平无奇。可实际上很多加密算法都依赖大质数难于分解这个事实。
所以,量子计算让世界上没有难破解的密码(当然,现在还没有那么大容量的量子计算机)。
我们刚才谈到,经典计算机在模拟量子系统上有难度,那么量子计算机真的足够通用到高效模拟任何物理系统吗?
这还是个未解之谜。
到现在为止,我们学习了量子计算的基础,但并没有进行任何实际的应用。
接下来我会写两篇(更短的!)文章进行介绍。
上一篇:对量子计算的简单解释
下一篇:量子计算方向的博士值得读吗?