最近,我做了一期介绍量子计算机“九章”的节目。有些人质疑它是不是计算机,其实这种问题就好比问“宇宙飞船是不是船”,完全不得要领。真正重要的不是一个事物叫什么名字,而是它实际是什么,能实现什么超能力。九章能计算“玻色子取样”,而这个问题经典计算机处理起来非常困难,所以九章被学术界认为是量子计算领域的重大突破。

量子计算机27个里程碑事件(量子计算机练成了)(1)

我很高兴地看到,在评论区里大多数观众都理解了我的要点,纷纷表示受益匪浅。然而,也有一位网友说:“可别先别练屠龙绝技,最好把基础1 1=2做好。”

量子计算机27个里程碑事件(量子计算机练成了)(2)

这句话有语病,不过能看出来,他是认为量子计算机必须要先能运行1 1 = 2这样的基础,然后才谈得上其他的。这样想的人不少。实际上,这正是一个严重的误解。

首先,量子计算机可以计算1 1 = 2,不是不能算。但这并不是重点。重点在于,我需要向这些人问一句:你们认为,量子计算机是什么意思?

他们肯定以为,量子计算机跟经典计算机运行的过程是一样的,都是加减乘除,只是加减乘除的每一步都更快而已。错了,完全错误!

如果是这样的话,量子计算机就没有意义了,只不过是经典计算机的常规的进步而已。但实际上,量子计算机是革命性的进步,而不是这种小打小闹的进步。量子计算的精妙之处,就是要绕过常规的加减乘除,用物理过程来直接得到计算结果。

打个比方。爱迪生有一个著名的故事:他拿一个灯泡,让一位数学家助手求出它的容积。这位数学家拿尺子和纸笔又是测量,又是计算,捣鼓了半天都没算出来。而爱迪生把灯泡里灌满水,然后把水倒在量筒里,一下子就知道了它的容积。

量子计算机27个里程碑事件(量子计算机练成了)(3)

爱迪生

现在,你明白什么叫“用物理过程直接得到计算结果”了吧?

许多人听到九章计算玻色子取样的办法就是直接运行玻色子取样,就大惑不解,很怀疑这叫不叫计算。实际上,这不就是爱迪生的思路吗?这种方法确实解决了问题,这才是我们真正希望的。至于你是否把它叫做计算,那只是个咬文嚼字的问题,真正做事的人是不会被名称束缚住的。

现在你可以明白,如果一定要量子计算机先会算加减乘除,然后再一步步按照数学公式计算一个问题,那完全是缘木求鱼,本末倒置,把量子计算机的优势丢掉了。量子计算机的好处,就是可以跳过这些步骤,否则我们去研发它干什么?

很好,你对量子计算的理解已经超过了90%的人。不过,有人听了上面那个故事,可能会问:难道爱迪生已经造出了一台量子计算机吗?

当然没有。这只是个比喻而已,并不是真正的量子计算机。原因有两点。第一,它没有用到量子力学的特性。第二,它解决的并不是个真正困难的问题。用数学方法计算灯泡的容积,虽然比较繁琐,但完全是可以做到的。爱迪生那个时代条件不行,算得比较慢。而如果用现在的计算机,算一个灯泡容积肯定就是瞬间搞定。

计算机科学里有一个分支叫做计算复杂性理论(computational complexity theory)。用计算复杂性的语言说,计算灯泡容积这个问题在本质上是简单的,因为它用“多项式时间”就能解决,即计算量随问题规模的增长是个多项式函数。

而量子计算机处理的问题,是在本质上就困难的问题。困难的意思是,计算它所需的时间是指数增长的,甚至更长。例如玻色子取样这个问题,它的计算量增长速度是阶乘,比指数还快。60的阶乘就是8.32乘以10的81次方,比整个宇宙的粒子数都多。因此,经典计算机很快就算不动了。也正是因为这个原因,九章相对于现在最强的超级计算机才会有一百万亿倍这样惊人的优势,——因为这个问题经典计算机处理起来实在太慢了。

量子计算机27个里程碑事件(量子计算机练成了)(4)

下面是一个真正的要点:要快速解决本质上困难的问题,目前所知的唯一有希望的办法,就是利用量子力学的特性。也就是设计某种量子物理过程,通过执行这个物理过程快速得到问题的解。这就是量子计算的本意。

爱迪生没有利用量子力学的特性,所以他解决的不是个本质上困难的问题。用物理过程快速求解本质上困难的问题,是量子力学出现以后才可能的,所以我把它称为“超能力”。如果你理解到这一层,你对量子计算的理解就超过了99%的人。

最后,如果你真的就是想计算1 1 = 2,那其实量子计算机也能做。

2005年,潘建伟、杨涛和杜江峰等人发了一篇文章《对两个独立光量子比特的非破坏性受控非量子门的实验演示》(Experimental Demonstration of a Nondestructive Controlled-NOT Quantum Gate for Two Independent Photon Qubits),第一次用光学方法实现了量子计算机的基础逻辑单元“受控非门”(CNOT)。这个受控非门就像经典计算机中的“与非门”一样,通过它就能组合出任意复杂的线路,实现任意功能。

量子计算机27个里程碑事件(量子计算机练成了)(5)

因此,用量子计算机计算1 1 = 2是完全可行的。唯一的问题只是,这样没有任何好处。因为它算得并不比经典计算机更快,成本却高得多。但你如果以为它不能算,那就错了。

这就好比少林派有个高手,练成了七十二绝技。你如果问他,会不会最基础的功夫,例如扎马步?回答是:他当然会,但他为什么要向你演示扎马步呢?!你的关注重点,应该是人家会不会最高级的功夫,而不是会不会最初级的功夫!

,