【译】量子计算

【译】量子计算

hacker news上面有个问题:有啥科学现象你希望有人能更好的解释一下?

Hacker News65.49.203.80

其中有个被人提到的,就是量子计算,并且也有人给出了很好的科普文章:

https://quantum.country/qcvcquantum.country

我来大概翻译一下。

看完这篇文章,你会大概了解量子计算。(当然,对量子物理你依然一窍不通)


第一部分 量子位及其状态

在普通计算机中,一个「位」有两种状态:0或者1

这通常对应现实世界中的低电平和高电平。

我们说,一个「位」有两种可能的状态。

同样,量子计算中,也有「量子位」的概念,那么量子位有多少种状态呢?

我先卖个关子,我不说它有多少种可能的状态,我先说两种很特殊的状态:

\left[ \begin{matrix}      1 \\      0  \end{matrix} \right]\left[ \begin{matrix}      0 \\      1  \end{matrix} \right]

是的,「量子位」是一个(二维)向量。

我们称第一种状态为 \left|0\right \rangle ,第二种状态为 \left| 1\right \rangle 。(是的,物理学家就是对一行能写下所有符号的执念很深)。

好了,以上是两种特殊状态。还有其他的很多种状态,比如

0.6\left|0\right \rangle+0.8\left| 1\right \rangle

也是一种状态。

当然,我们有:

0.6\left|0\right \rangle+0.8\left| 1\right \rangle= 0.6 \left[ \begin{matrix}      1 \\      0  \end{matrix} \right] + 0.8 \left[ \begin{matrix}      0 \\      1  \end{matrix} \right] = \left[ \begin{matrix}      0.6 \\      0.8  \end{matrix} \right] \\

(看,依然是个向量)

一般的,量子位的状态是 \alpha\left|0\right \rangle + \beta\left| 1\right \rangle ,其中 |\alpha|^2+|\beta|^2=1

也就是说,量子位的状态总是一个单位向量。

但是要特别注意的是, \alpha\beta 都是复数

也就是说,状态是复平面上的向量

你现在可能在思考直观的物理图像。如果你做不到,那很正常,毕竟是量子力学。很不直观。


第二部分 量子逻辑门

我们的普通计算机也使用逻辑门,比如一个普通的「非门」:

\mathrm{NOT}(0)=1 \\ \mathrm{NOT}(1)=0

同样,量子计算中也有逻辑门,并且很巧,也有一个非门:

\mathrm{NOT}(|0\rangle)=|1\rangle \\ \mathrm{NOT}(|1\rangle)=|0\rangle

当然,我这么写是有点特意和经典逻辑门保持一致,严谨点说,计算规则(或者说物理规则)是这样的:

\mathrm{NOT}(\alpha|0\rangle+\beta|1\rangle)=(\alpha|1\rangle+\beta|0\rangle) \\

当然,我们要入乡随俗,量子计算中,一般不用NOT这个符号,而是用

X(\alpha|0\rangle+\beta|1\rangle)=(\alpha|1\rangle+\beta|0\rangle) \\

有一个更数学的表述,是这样的:

X= \left[ \begin{matrix}      0 & 1 \\      1 & 0 \end{matrix} \right] \\

这样对量子位做X操作就变成了左乘:

\left[ \begin{matrix}      0 & 1 \\      1 & 0 \end{matrix} \right] \left[ \begin{matrix}      \alpha \\      \beta \end{matrix} \right] = \left[ \begin{matrix}      \beta \\      \alpha \end{matrix} \right] \\

(我假设你懂得矩阵乘法,如果你不懂,可以去看相关教程,或者去看我的数学符号入门)

最难实现的量子线路?

在普通的门电路中,最简单的电路并不是非门,而是导线,是的,导线是最简单的,不论是理解,还是制造。(当然,光刻机的事情是个例外,光刻机的事情嘛……)

但在量子电路中(如果我们称之为电路的话),「导线」反而是最难制造的。

量子态极容易受到干扰,所以保持量子态,并不是那么简单。

当然,我们可以用一些「稳定」的物质保存量子态,比如中微子(因它很少和别的物质发生交互),但问题也来了,那么我们在提取量子态的时候,就会遇到困难(因为你得找到能和它发生交互的物质并为你所用)。

这是一个基本的矛盾。

门的串联

当然,我们可以像普通门电路一样串联一些门。比如说,我们希望一个量子态经过一个X之后,再经过一个X。

理解它的计算过程并不困难:

X(X(\alpha|0\rangle+\beta|1\rangle))=X(\alpha|1\rangle+\beta|0\rangle) =(\alpha|0\rangle+\beta|1\rangle) \\

这并不令人感到意外,它和经典的逻辑门是一样的。

当然,我们还有另一种表示形式:

XX= \left[ \begin{matrix}      0 & 1 \\      1 & 0 \end{matrix} \right] \left[\begin{matrix}      0 & 1 \\      1 & 0 \end{matrix}\right] = \left[\begin{matrix}      1 & 0 \\      0 & 1 \end{matrix}\right] \\

毫不意外,我们看到结果是一个单位矩阵。

Hadamard 门

在经典逻辑中,一元运算只有一种,那就是非。但是量子计算中,可以对一个量子位进行运算的逻辑门远不止一个,接下来我们介绍Hadamard 门。

H|0\rangle=\frac{|0\rangle+|1\rangle}{\sqrt 2}\\ H|1\rangle=\frac{|0\rangle-|1\rangle}{\sqrt 2}

(看,事情终于变得比较量子一点了)

但聪明的你一定看出来了,上面的两个式子并不那么普世。

对于任意的量子位,我们甚至可以「代入」上面的公式:

H(\alpha|0\rangle+\beta|1\rangle) =\alpha\frac{|0\rangle+|1\rangle}{\sqrt 2}+\beta\frac{|0\rangle-|1\rangle}{\sqrt 2} =\frac{\alpha+\beta}{\sqrt 2}|0\rangle+\frac{\alpha-\beta}{\sqrt 2}|1\rangle \\

这还是显得有些冗余,于是请出我们秀气的矩阵表示方法:

H=\frac 1{\sqrt 2} \left[\begin{matrix}      1 & 1 \\      1 & -1 \end{matrix}\right] \\

你甚至可以自己验证一下,用矩阵乘法计算一下 H|0\rangleH|1\rangle ,看看是否正确。

接下来有一个小小的练习:

如果一个量子位连续经过两个H门,会发生什么情况?


--- 故意的留白 ---


你可以计算 H(H(\alpha|0\rangle+\beta|1\rangle)) ,也可以直接用矩阵乘法计算 HH ,当然结果你会发现: HH=I (其中 I 是单位矩阵)

也就是说,连续的两个H门,相当于什么都没做。


接下来还有一个小练习:

有一个量子位 |\psi\rangle ,经过一个H门,再经过一个X门,为什么结果会是 XH|\psi\rangle ,而非 HX|\psi\rangle


我们刚才一直在讲底层的量子门,你不禁要问,量子计算有没有什么「高级」的语言呢?

还不太有。

现在就像是1940年的计算机科学:有了埃尼亚克,相关的书籍也汗牛充栋,但归根结底,这门学科还有很大的发展空间。

这也是令人激动的地方。

测量量子位

假设著名的Alice在实验室制作了一个量子位 \alpha|0\rangle+\beta|1\rangle ,她发送给同样著名的Bob,那么Bob如何得到 \alpha\beta 的值呢?

答案是:不可能!

Bob将不可能获得这信息。

事实上,如果Bob可以获得 \alpha\beta,那么事情将会变得奇怪起来,毕竟\alpha\beta是两个复数,理论上可以存储无限的信息。如果Bob有手段提取这两个数字,那么Alice甚至可以将国家图书馆整个打包进去。

不可能就是不可能。

但我们有种方法观测一下这个量子位,我们可以让这个量子位坍塌,最后,我们将会以 |\alpha|^2 的概率观察到 |0\rangle ,以 |\beta|^2 的概率观察到 |1\rangle

还记得我们最开始说过的 |\alpha|^2+|\beta|^2=1 吗?

你看,现在一切都联系起来了。

当然,你要记住,当你观察的那一瞬间,\alpha\beta 就远去了,再也回不来了。(简单的物理规则,狗头)

练习

假设臭名昭著的Alice给了你一个量子位,她向你保证,只可能是 \frac{|0\rangle+|1\rangle}{\sqrt 2}\frac{|0\rangle-|1\rangle}{\sqrt 2} 两种状态中的一种。

那么你将如何分辨呢?


--- 留白 ---


我们让这个量子位过一个H门。

如果是前者,那么我们将会以1的概率得到0,如果是后者,就会以1的概率得到1.

一般单量子位门

单量子位有多少种可能的操作呢?事实上,有无限种。

我们之前说过,量子位是复平面上的单位向量(长度为1),那么只要能保持长度,就是合法的单量子位门

事实上,有个专门的数学语言表示这种单量子位门。也就是 酉矩阵

对于矩阵 U ,若 U^\dagger U=I ,则称 U 为酉矩阵。

其中 U^\daggerU 的复共轭转置: U^\dagger=(U^T)^*

转置就不用说了,复共轭指的是,对矩阵的每个元素,对其虚数部分进行取相反数操作。

若矩阵中某元素为 a+bi ,则其复共轭是 a-bi

数学就是这么神奇。

练习:证明X是酉矩阵。

练习:证明单位矩阵 I 是酉矩阵

练习:你能再举出一个除了XHI三个之外的2x2的酉矩阵的例子吗?


我们之前说了X这个量子门,其实还有Y和Z。

Y:= \left[\begin{matrix}      0 & -i \\      i & 0 \end{matrix}\right] \\ Z:= \left[\begin{matrix}      1 & 0 \\      0 & -1 \end{matrix}\right]

练习:证明Y和Z是酉矩阵。


还有一类非常好的例子,是旋转矩阵(在二维平面上旋转 \theta

\left[\begin{matrix}      \mathrm{cos}(\theta) & -\mathrm{sin}(\theta)  \\      \mathrm{sin}(\theta) & \mathrm{cos}(\theta) \end{matrix}\right] \\


酉矩阵到底意味着什么?

有一个n维的复向量 \psi ,以及一个 n\times n 复矩阵 U ,则 \|\psi\|=\|U\psi\| ,当且仅当 U 为酉矩阵。

(译者:原文有证明,感兴趣的同学可以去看看。求知欲让我进去看,求生欲让我退出来)

带有控制位的非门

刚才所讲的,全是单量子位的逻辑门。

那么多个量子位的逻辑门呢?

经典的逻辑门里,有一种带有控制位的非门。

只有当控制位设置了,才是非门,如果没有设置,就相当于普通导线。

我们甚至可以写出以下伪代码:

def CNOT(c, b):
    if c:
        return c, not b
    else:
        return c, b

(甚至这还是可运行的python代码)

当然,还有另一种形式更加接近电子线路:

def CNOT(c, b):
    return c, add_mod_2(c, b)

其中的add_mod_2是模2的加法。

这里可以看到,本质上,c(控制位)是不变的,另一个输入则会和c进行一个(异或)运算。

当然,以上我们所讲的是经典的带有控制位的非门。

到了这里,必须讲一讲两个量子位的观测了。

我们有四个基本的计算状态: |00\rangle|01\rangle|10\rangle|11\rangle ,于是,观测任意量子态 \alpha|00\rangle+\beta|01\rangle+\gamma|10\rangle+\delta|11\rangle 将会以 \alpha^2\beta^2\gamma^2\delta^2 的概率观察到对应的四种状态。

其中 \alpha^2+\beta^2+\gamma^2+\delta^2=1

接下来,我们写出量子世界的控制非门:

\alpha|00\rangle+\beta|01\rangle+\gamma|10\rangle+\delta|11\rangle \\ \rightarrow \alpha|00\rangle+\beta|01\rangle+\gamma|11\rangle+\delta|10\rangle

看起来很简单,也很符合直觉不是吗?不就是10和11交换一下嘛。

在上面,我用 |00\rangle 来表示 |0\rangle|0\rangle 。这很正常。(毕竟怎么可能有其他的结果)。

一般的,如果两个量子位 \alpha|0\rangle+\beta|1\rangle\gamma|0\rangle+\delta|1\rangle 结合,则结果状态为:

(\alpha|0\rangle+\beta|1\rangle)(\gamma|0\rangle+\delta|1\rangle ) =\alpha\gamma|00\rangle+\alpha\delta|01\rangle +\beta\gamma|10\rangle+\beta\delta|11\rangle \\

我说CNOT保留控制位不变,目标位可能改变。但是在量子的世界中,可能是相反的。

练习:你能找到两个位 |a\rangle|b\rangle ,使得两者结合之后的 |ab\rangle 再应用一下CNOT,结果改变了第一个量子位(也就是控制位)?

我可以给你一个例子作为答案:

|+\rangle=\frac{|0\rangle+|1\rangle}{\sqrt 2} \\ |-\rangle=\frac{|0\rangle-|1\rangle}{\sqrt 2} \\

如果我们放入 |+-\rangle ,出来的是 |--\rangle

(你可以自己验算一下)

就是这么神奇。


第三部分 通用量子计算

我们描述一下一般的量子计算过程

  1. 从某种计算基础状态开始
  2. 量子位(们)经过一系列单量子门或者CNOT之类的双量子门
  3. 测量结果。

就是这么简单。

除了这种量子电路计算模型之外。还有很多其他的模型,比如基于测量的量子计算、拓扑量子计算等。但是在数学上它们等价。

有一类特殊的量子门:

\left[\begin{matrix}      e^{i\theta} & 0 \\      0 & e^{i\theta} \end{matrix}\right] =e^{i\theta}  \left[\begin{matrix}      1& 0 \\      0 & 1 \end{matrix}\right] =e^{i\theta} I \\

其中 \theta 是个实数。

e^{i\theta} 叫做 全局相因子。

这个门对最终的结果无影响。(译者:证明在此 \frac{(     e^{i\theta}\alpha  )^2}{(e^{i\theta}\beta)^2} =\frac{     \alpha  ^2}{\beta^2}

量子计算到底有啥好?

量子计算在某些方面,有着超越普通计算的速度。

但量子计算可以代替普通计算吗?

当然可以。我们已经用X门代替了NOT门,接下来,如果有什么门可以代替AND门,我们就完成了证明。

但不幸的是,AND门在量子的世界不可能。证明并不难,如果你喜欢挑战自我,可以试着思考一下(译者:我不)。

当然,也不是没有解决的办法。科学家发现了一种量子门叫做Toffoli (你现在知道是谁发现的了)。

|x,y,z\rangle\rightarrow |x,y,z\oplus(x\wedge y)\rangle \\

如果z=0,那么 z\oplus(x\wedge y) 的结果就是 x\wedge y


练习:如何实现NAND门?(也就是对 x\wedge y 的结果取反。)

练习:你可以发现一种只使用Toffoli 门的NAND门吗?


实际上Toffoli 门还挺复杂的。(译者:见原文)


练习:证明Toffoli 门的相反操作还是Toffoli 门。

量子计算到底有什么好?

量子计算可以快速模拟量子,而普通计算机很难模拟量子。

这并不难理解。我们发现,模拟一个量子态需要两个系数( \alpha\beta ,也叫振幅),那么假如一个分子有n个原子,每个原子都有一个量子态(实际上,还可能不止一个),我们需要多少个系数呢?

2^n 个。

毕竟,每个形如 |10100\cdots\rangle 都需要一个系数。

这是指数增长的。所以,对经典计算机来说,计算这个量子系统几乎是不可能的。

如果大容量的量子计算机投入实用,可能会立马改变化学行业的现状。

从这里,我们也可以看出量子计算机的一个变态之处——量子摩尔定律:

如果经典计算机的摩尔定律是线性增长,我量子计算机就可以指数增长。

长远来看,赢的一定是量子计算机。


量子计算机的另一个用处是分解大质数(Peter Shor的分解质因数算法(译者:如果有可能我会去学一下))。这个看起来平平无奇。可实际上很多加密算法都依赖大质数难于分解这个事实。

所以,量子计算让世界上没有难破解的密码(当然,现在还没有那么大容量的量子计算机)。

量子计算机真的是通用设备吗?

我们刚才谈到,经典计算机在模拟量子系统上有难度,那么量子计算机真的足够通用到高效模拟任何物理系统吗?

这还是个未解之谜。

回顾

到现在为止,我们学习了量子计算的基础,但并没有进行任何实际的应用。

接下来我会写两篇(更短的!)文章进行介绍。

编辑于 05-13

文章被以下专栏收录