在过去大约半个世纪里,半导体工业的飞速发展支撑了信息体系的快速提升,每一年半集成电路的集成度就会翻倍,带来相应信息处理能力的不断提高。但在去年年初的时候,美国主要的大公司召集了一个会议,决定正式放弃摩尔定律,停止据此设计的所有产品。为什么摩尔定律走不下去了?
因为今天的电脑已经遇到了一些瓶颈效应,即信息容量的问题,它主要包括两方面,一个是受到集成电路不断做小的极限限制,另一个是原理的限制,即计算的瓶颈。
计算机科学的奠基人Alan Mathison Turing最早提出了图灵机的概念,他预测到:无论计算机多么强大,它基本上都代表的是图灵机的人性,并且有些问题的计算时间一定是需要指数增加的。而指数增加是一个非常可怕的增加规律,就跟原子弹爆炸一样,它是一分二、二分四不停地指数增长。这就意味着我们只要把问题的规模稍微增加一点,计算时间马上就翻倍,再增加一点时间就以10倍、100倍、一万倍这样增长。所以即使经典计算机的速度再快一亿倍,对于解决这样的问题实际上并不起什么作用。
但是,在量子的世界却可以克服这一限制。
大家知道量子世界一个最本质的特征就是,经典的0、1比特用量子比特代替,除了0和1以外,还有量子任意线性叠加形式,这个叠加有什么好处呢?这里引用个典故。
古时候有个名叫扬子的哲学家,有一天他坐在路口哭,大家问他为什么哭,他说:“这个分岔路口可以往东走也可以往西走,我不知道往哪里走”。这就是古典哲学里面的“杨子见歧路而哭之”。这个故事说明了人实际上也是一个电脑,也在做决定,有时候我们搞不清楚到底往哪个方向才是正确的决定,而这样的决定在人生里面是非常多的,时时刻刻都要做决定,所以人走上错误的路径的可能性也很多。在计算机里面也是同样的问题,在计算机世界也是同样的分岔路口,每个分岔路口都有可能走向错误的方向,所以要选择出正确方向的可能性就很小。
那么,在量子世界里如何解决这个问题呢?这就涉及到我们前面提到的量子相干性。经典计算里面的一个数字,0或1,你对它做一个操作,每一次只能走一个路径,但在量子里面,由于量子态是所有的路径完全相干叠加的形式,就相当于可以同时沿着很多条计算路径出发,最终到达目标,这样就推出了一个新概念,叫量子并行。
大家知道并行是现在所有做超算的最基本的技术,要把计算机做快,最基本的概念就是并行。量子并行(Quantum parallelism)跟经典并行有一个不一样的地方,经典并行中,如果我有100万个核,我可以最多快100万倍,但在量子里面的并行和问题的规模有关,问题规模越小越不明显,规模越大它会指数增长,因为它是加速的规律。
比如:一个比特只有两种可能性,两个比特有四种可能性,三个比特就有八种可能性,你有10个比特的话就有1000种可能性,就变成1000种路径的叠加,如果你有100个量子比特的话,它就变成2的100次方,就是一个非常庞大的数字,超过1亿亿亿个的路径的叠加。
而这实际上是它最本质的优越性,也是它为什么第一次超越了经典图灵机的概念,现有的超算理论都不能超越经典的图灵机,因为最多常数加速,但在量子里面它是指数加速,因此指数加速是量子计算机最本质的特性。
一个常见问题是量子计算机比及经典计算机快多少倍?这个问题没法笼统回答,因为指数加速不是常数加速,加速倍数依赖于问题规模。大家知道经典计算机的主频一般是几个G,但量子现在是几个兆。所以如果你只有几个比特的话,量子计算机实际上比经典计算机要慢;如果你得到10个有效量子比特以上,有可能与经典计算机差不多;但如果你做到100个有效量子比特以上的话,它的加速就有可能超过亿亿次倍;如果变成1000个有效量子比特的话,它就变成一个差不多无限大的数,就是10的300次方。
以上说法假定了量子指数加速的存在,要得到指数加速并不容易。量子计算完了得到一个量子态,我们不能直接看出量子态的信息来,只能通过测量,一旦测量往往就只有一个路径起作用了,所以简单的量子加速在考虑测量以后往往就没了。
那么,在量子里面怎么克服这个问题呢,这就要利用量子相干性和量子纠缠了。并不是指数多的路径就能够导致量子加速,而是要巧妙利用不同路径之间的量子相干性。2的N次方路径之间可以有某种相干的叠加的特性,使得往正确的路径上的概率得到一个指数的提高。当然要得到这一点是很不容易的事情,这就是所谓的量子算法的问题,怎么巧妙设计量子算法实现指数加速,是量子计算领域的一个核心问题,这些问题在实践上有非常大的应用,这里就不细谈了。