美文网首页冷知识01改变世界
揭开量子计算的神秘面纱

揭开量子计算的神秘面纱

作者: 逸之 | 来源:发表于2020-10-09 10:28 被阅读0次

    提到量子,多数读者的感觉可能是既熟悉又陌生。熟悉是因为它的有趣和不可思议,和相对论一起,经常成为科普人津津乐道的主题,尤其是我国2016年的墨子号卫星成功实现千公里级量子通信后,国内乃至世界范围更是掀起了一股量子热潮。而陌生,是因为这套理论和我们的常识格格不入,它仿佛来自另一个世界,用匪夷所思的现象挑战着人脑的极限,何况,非专业的我们往往只能定性地了解,无法像物理学家那样定量推演,究其根本。

    其实,即使是物理学家,也仍未摸透量子世界的本质。不过,这并不影响我们先把它利用起来,就像电子被发现之前,人们早已开始享受电的便利了。

    神奇的量子

    首先,了解一下什么是量子。人们由于望文生义,会有一种普遍的误解,认为量子是某种微观粒子,其实它是表示物理量不可再分的最小单位,也许改叫“量元”或“基量”之类的名字更有助于准确理解吧。

    量子最早由德国物理学家马克斯·普朗克(Max Planck)在1900年解释黑体辐射时提出,他大胆假设,就像物质是由一个个原子组成的一样,能量也由一种最基本的能量子(即量子)组成。也就是说,能量不是连续的,是一份一份的。在我们走路时,跨出一步的距离可以是60厘米,也可以是59厘米,或者59.9厘米,乃至59.999999厘米,只要有把控手段,任意厘米都可以,因此步长是连续的;而当我们遇到楼梯,却必须一个台阶、一个台阶地走,没有办法走半个或三分之一个台阶,如果把整个楼梯看做能量,那么台阶就是组成它的量子。

    1905年,爱因斯坦指出,光也是由一个个不可再分的光量子(即光子)组成的。科学家们意识到,量子化是微观世界的普遍现象。

    而量子的发现,远不止将我们心目中连续的世界打成离散那么简单,它还提示我们,世界是概率的,是不确定的。比如电子和光子的波粒二象性,在有些情况下它们是波,在有些情况下它们又是粒子,而这两种身份都是人类观察的结果,在观察前,它们既是波,又是粒子,处于两者的叠加态。导致量子从叠加态坍缩至确定态的观察过程称为测量。

    量子叠加也是普遍现象,我们可以借助著名的思想实验“薛定谔的猫”去理解它。把一只猫和一瓶致命的毒气一起关在一个封闭的盒子里,一个由原子衰变控制的机关可以将毒气瓶打碎。由于原子处于既衰变又没衰变的叠加态,因此毒气瓶也处于既破碎又完好的叠加态,此时,我们得到了一只即死又活的猫。而世界好像有意想隐藏这种真相,当我们打开盒子(进行测量),总会以一定的概率看到死猫或活猫。

    薛定谔的思想实验

    量子计算

    我们永远无法亲眼目睹神奇的量子叠加,只能尽量去想象这种状态。不过这并不影响我们发挥它的价值,量子系统的两种状态本身就可以用来表示二进制信息,而它们叠加之后更是出现了非凡的效果。在传统二进制计算机中,一个比特位(bit)可以表示0或者1,而处于叠加态的量子比特(qubit/qbit)却可以同时表示0和1,而一旦被测量,它就会以一定的概率坍缩为0或1。如果用英国物理学家保罗·狄拉克(Paul Dirac)在1939年提出的狄拉克符号表示,量子比特就写作|ψ\rangle = α|0\rangle + β|1\rangle|0\rangle|1\rangle表示量子比特的两种测量值,αβ是复数,其模满足|α|^2+|β|^2=1,测量该量子比特得到|0\rangle的概率是|α|^2,得到|0\rangle的概率是|β|^2

    不论多少位的传统比特,都只能用于表示1个二进制数,比如4个比特可以表示0000~1111中的某一个。而量子比特就不同了,4个量子比特可以同时表示0000~1111,共16个数,10个量子比特可以表示1024个数,n个量子比特可以表示2n个数。这种指数级的增长有着极其恐怖的威力,比如,仅当我们拥有266个量子比特时,就可以为可观测宇宙中的所有原子一一编号,而这在传统计算机中需要333万亿亿亿亿亿亿亿TB的容量!

    在运算时,量子也同样拥有着碾压性的优势。比如2个4比特二进制数的相加只能得到一个结果,而2个4量子比特数的相加却可以得到256个结果,即同时完成了如下256项运算:

    看起来很厉害的样子,不过你可能会质疑:我们需要的总是特定数之间的运算,这样把所有可能的取值都算一遍有什么用处呢?试着回忆一下小时候偷试大人手机密码的经历吧,如果你的手指也具有叠加态,不就可以一次性把所有可能的密码都试一遍了吗?

    当今世界,许多信息系统的安全性建立在一种叫RSA[1]的加密算法之上。要想破解RSA,就需要对其公钥进行因数分解,当公钥的数值足够大且只包含2个为质数的因数(质因数),破解就变得非常困难。比如15的因数是3和5,人为一眼就能看出来,但2301408713的因数分解就不得不依靠计算机了,通过编程,可以从2开始到公钥的平方根一个个地试,最终得到47969和47977,这点运算量难不倒现在的电子计算机。可当公钥是一个300位的十进制数,就算从宇宙大爆炸开始试,也试不出来。即使用上已知最快的因数分解算法——数域筛算法,也需要千万年,乃至上亿年时间。因此,除非有更有效的算法问世,否则1024位(二进制)的公钥就能保证RSA的绝对安全,实在不放心,升到2048或4096位,足以让黑客彻底死心。

    然而,一旦有了量子计算机,RSA将变得不堪一击,因为只需要一次运算就可以将所有数都试一遍。难怪科学家们把量子计算机的实现形容为“量子霸权”。

    不过你可能还是会质疑:量子计算只是同时给出了所有可能的结果,却没有指明哪个才是正确的。比如用512个量子比特去试除1024位的RSA公钥,如果只有2个质因数,测量到正确结果的可能性就只有2/2512

    刘慈欣的短篇科幻小说《诗云》中,高度发达的外星文明出于对中国诗词的热爱,将整个太阳系改造成诗云,用于存储所有汉字所有诗词形式的排列组合,其中一定有一首超越人类诗词艺术巅峰的千古绝唱,但问题是,找不到它。

    量子计算拥有绝对的并行能力,却面临着诗云式的困境。与其期望量子比特在测量时正好坍缩为正确结果,还不如去买张彩票。因此,光有量子比特是没用的,还需要精心设计的量子算法,以将测量到正确结果的可能性提高到最大,哪怕只有10%也足够了,因为结果的正确性很容易验证,在100次计算和测量中,将有10次左右可以验证到正确结果。美国数学家彼得·秀尔(Peter Shor)在1994年提出的秀尔算法就是一种有效的因数分解量子算法,分解一个只有2个质因数的公钥,给出正确测量的概率在75%以上。2001年,IBM成功在7量子比特的量子计算机上用秀尔算法实现了15的因数分解,验证了量子算法的可行性。

    除了因数分解,量子计算还将在信息检索上大显神通。比如给银河系中的所有恒星都起一个独一无二的名字,打乱之后存到一张表中,如果要从中找到“太阳”,传统计算机只能从第一个名字开始一一查看,如果运气好,可能第一个就是“太阳”,运气不好,可能最后一个才是“太阳”。而量子计算机就不同了,它可以同时查看所有名字,一眼就把“太阳”给揪出来。1996年,美国计算机学家洛弗•格罗弗(Lov Grover)就提出了这样一种量子搜索算法,不断迭代之后测量到正确结果的概率可以无限接近于1。

    所以说,量子计算的价值不在于完全代替现有的计算机,而是对一些需要巨大计算量的问题进行“降维打击”。

    量子逻辑门

    我们已经知道,传统二进制计算机的运算和控制靠的是与、或、非等逻辑门,同样的,量子计算也有相应的量子逻辑门,它们是实现量子算法的砖瓦。下面简单介绍一些基本的量子逻辑门,让我们一起直观感受一下量子运算的过程。

    由于叠加态的量子比特相当于一个向量,因此量子逻辑门也往往写成矩阵的形式,量子比特的逻辑运算涉及矩阵运算的知识,此处将省略这一过程,仅使用狄拉克表达式说明量子逻辑门的作用,有兴趣的读者可自行验证。

    首先上场的是单量子比特门,只作用于单个量子比特,最基本的有Pauli-X门、Pauli-Y门和Pauli-Z门,简称X门、Y门和Z门:

    X= \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} Y= \begin{bmatrix} 0 & -i \\ i & 0 \end{bmatrix} Z= \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}

    X门相当于传统的逻辑非门,它将|0\rangle变换为|1\rangle|1\rangle变换为|0\rangleα|0\rangle + β|1\rangle在X门的作用下就成了β|0\rangle + α|1\rangle。Y门中的i表示虚数,别忘了,αβ可是复数。

    另一个比较典型的单量子比特门是Hadamard门,简称H门:

    Z= \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}

    它使两种量子态被测量到的概率相等,|0\rangle变换为\frac{|0\rangle+|1\rangle}{\sqrt{2}}|1\rangle变换为\frac{|0\rangle-|1\rangle}{\sqrt{2}}α|0\rangle + β|1\rangle在H门的作用下就成了\frac{α+β}{\sqrt{2}}|0\rangle+\frac{α-β}{\sqrt{2}}|1\rangle

    下面上场的是双量子比特门,可使2个量子比特相互产生影响。最基本的是受控非门(controlled NOT gate),简称CNOT门:

    CNOT= \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{bmatrix}

    CNOT门相当于传统的异或门,它使一个量子比特(目标比特)受控于另一个量子比特(目标比特)。当控制比特为|0\rangle时,目标比特保持不变;当控制比特为|1\rangle时,目标比特翻转。2个量子组成的系统具有|00\rangle|01\rangle|10\rangle|11\rangle4种状态,如果将前一位视为控制比特,那么α|00\rangle+β|01\rangle+χ|10\rangle+δ|11\rangle在CNOT门的作用下将变换为α|00\rangle+β|01\rangle+δ|10\rangle+χ|11\rangle

    此外,还有三量子比特、四量子比特等多量子比特门,但它们都可由单量子比特门和CNOT门组合而成。

    物理实现

    正所谓条条大路通罗马,微观上具有量子效应的物质都能用于实现量子计算,目前常见的材料包括电子、原子核、离子、量子点、光子等,它们的许多属性(比如自旋态)具有两种状态,操控这些属性需要用到各种高精尖技术,比如超导、核磁共振、离子阱、谐振腔等。本节选取我们比较熟悉的光子管窥一二。

    还记得光的偏振吗?就让我们用光子的偏振态来表示量子比特吧,在量子效应下,光子的偏振同时发生在水平方向和垂直方向,光子比特的狄拉克表达式可以写作α|H\rangle+β|V\rangle

    使用移相器、分束器、波片等光学元件可以改变光子的叠加态,即实现光子比特的逻辑运算。以波片为例,这是一种对水平偏振光和垂直偏振光具有不同折射率的介质。当光子进入波片,两个偏振方向上的“分身”将具有不同的传播速度,通过调整波片的厚度,可以让两者穿出波片后出现二分之一波长的光程差,这就是所谓的半波片。上一篇“以光控光”的例子中,泵浦光就是将克尔介质改造成了半波片,并且我们已经知道,半波片会使光的偏振方向发生90°的旋转。调整半波片的放置角度,就能将这种旋光效果作用到光子的|H\rangle|V\rangle上,记光轴[2]与水平面(|H\rangle方向)的夹角为θ,通过几何运算可以得到如下作用矩阵:

    \begin{bmatrix} cos2θ & sin2θ \\ sin2θ & -cos2θ \end{bmatrix}

    θ为45°,它就是X门;当θ为0°,它就是Z门;当θ为22.5°,它就是H门。简单吧!但这只是纸上谈兵而已,真正实现起来却问题多多,比如光子一不小心被介质吸收怎么办,又比如如何让两个本来没有相互作用的光子进行双比特逻辑运算。

    参考文献


    1. RSA是其3位发明者Ron Rivest、Adi Shamir和Leonard Adleman名字的首字母缩写。

    2. 当一束线偏振光进入波片时不发生双折射,其偏振方向就是波片的光轴。

    相关文章

      网友评论

        本文标题:揭开量子计算的神秘面纱

        本文链接:https://www.haomeiwen.com/subject/olsamctx.html