chbibo的个人博客分享 http://blog.sciencenet.cn/u/chbibo

博文

回复袁岚峰“九章不是计算机,是浮夸宣传?这是严重的误解”一文

已有 1471 次阅读 2021-1-30 16:34 |系统分类:观点评述

朋友转来袁岚峰老师发的“九章不是计算机,是浮夸宣传?这是严重的误解”,文章中批评了本人的“高斯玻色采样不是量子并行计算而是经典的硬件蒙特卡洛模拟”。虽然我事情很多,但还是有必要进行回复。

 关于科学的可重复性

针对我的文章中就好比你用很多支手电筒在装满凹凸不平的镜子的屋子里乱照一通,然后让经典计算机计算出光的图像。你完全可以说你用手电筒就那么一晃,超级计算机就得计算几亿年。并且随着你的计算精度要求的提高,超级计算机的计算年数还可以无限延长。但这与量子霸权无关。这是模拟霸权。”袁岚峰老师在文章中说:“基本的道理在于,计算机必须要稳定地、可重复地获得数据。九章确实做到了这一点,而拿手电筒乱照或者点爆竹不能做到,它们不具备可重复性。你这次点个爆竹,和下次点个爆竹,有多少碎片、这些碎片往哪儿飞,都是不一样的。你没法控制,除非你能控制爆竹中的每个原子。

袁老师对科学的可重复性应该有误解。可重复性,是针对实验要检测的结果来说的。如果实验的结果是要得到非随机性的结果,就应该针对非随机性的结果进行重复检测。如果实验的结果是要得到概率统计数据,就应该针对概率统计的结果进行重复检测。

在九章实验中,得到的结果也是概率结果,而不是非随机性结果。如果按照袁老师这样这次点个爆竹,和下次点个爆竹,有多少碎片、这些碎片往哪儿飞,都要一样”才算具有科学的可重复性的标准,那么九章也完全不具有科学的可重复性。因为九章实验中,每次输出的光子数量以及在各个输出口的数量都是不同的,不具有可重复性。

通过九章得到的是具有可重复性的概率数据。爆竹爆炸当然也有可重复性的概率数据。譬如,一只小卖部销售的爆竹,它的爆炸威力肯定不会超过一颗核弹,这说明它至少在这个参数上,方差是有限的,是具有可重复性的。此外,我们还可以研究爆竹在不同容器爆炸对容器的不同损害,这些都计算复杂且具有可重复性。我的文章中“手电筒晃动”也具有可重复性,只要每次晃动相同,结果就具有可重复的统计性质。所以袁老师需要对科学的可重复性加强理解。

 解析计算与模拟计算的各自优劣

袁老师说:“你也许想问,九章究竟计算了什么?回答是‘积和式’(Permanent......这个符号之差,就带来了计算量的巨大差别。在经典计算机上,行列式有快速的算法,但积和式至今都没有快速的算法。你要让经典计算机算一个比较大的方阵的积和式,它到太阳爆炸都算不完。

但是袁老师脑海中的“经典计算机算一个比较大的方阵的积和式,它到太阳爆炸都算不完”,只是指“经典计算机通过解析方法来计算”的方式,并没有提及“模拟计算”的方式。并没有任何证明说通过硬件布设来进行蒙特卡洛模拟也“到太阳爆炸都算不完”。

当然,模拟也有模拟的问题。模拟计算的快速性体现在一定误差标准内的计算。如果给定推导前提,要求计算结果的绝对精确,模拟计算就通常反而不如经典计算机的解析计算了。如我之前所说,模拟计算得到的往往是概率性结论,它是在一定误差标准范围的取值,不是解析计算那样绝对精确的结论。模拟计算如果要达到解析计算那样绝对精确的程度,那就是十个太阳爆炸都算不完,九章也不例外。

换言之,要按绝对精确的标准来衡量,那么经典计算机的解析计算在消耗掉一个太阳的时间来完成某特定积和式的计算后,九章的同样精确计算还遥遥无期,再给九章一亿个太阳都不够。这是模拟计算的通病,九章也不例外。

 量子与概率的关系

袁岚峰老师引用物理学家理查德·费曼的话说:“现在的计算机用来模拟经典力学很合适,但模拟量子力学就会遇到计算量爆炸。因为量子力学里同一个原因会产生不同的结果,我们的描述只能用概率的语言。请注意,这是一个质的区别。我们平常见到的随机都是伪随机,而量子力学里的随机是真随机!

费曼的说法也是错的,这是因为在他的时代,概率论尚未成熟。概率不是只在量子力学中才存在,通常稍微复杂一点的系统,都要使用概率语言。众所周知,三体以上的作用系统,在前提数据需要实地测量而不是预先给定的情况下,就不可进行长久的预测性的解析计算,因此其初始条件极端敏感,而前提数据的测量不可能绝对精确。这是刘慈欣写《三体》的灵感来源。事实上,哪怕是单体的力学,要对之进行模拟,随着精度要求提高,也要使用概率性的语言:因为不可能完全精确地重现每次实验的环境参数,也不可能每次完全精确地测量。此外,也不能说我们平常见到的随机都是伪随机,因为只要不是通过程序而是通过硬件噪声来获得的随机数,里面可能还能找出非随机因素,但一定会有目前还无法研判的真随机性在里面。而量子力学的随机也不能说就一定是真随机,真随机性是不可证明的,因为一个量随机与否,取决于你对它信息的掌握多少,这是一个主观的判断。同一个随机量的同样数据,如果你对这个量掌握的信息多,知道它各个数据发生的原因,那它的随机性就弱。如果你对这个量掌握的信息少,不知道它各个数据发生的原因,那它的随机性就强。因此我们在研判一个量是否真随机的时候,只能说在一定假设和一定标准下研判它的真随机性,不能脱离假设和标准来谈其真随机性。所以如果有文章居然能证明量子力学的随机是真随机,那它一定有其人为的假设和真随机标准。之所以说“人为的”,乃是指这种假设和真随机标准仁者见仁、智者见智。

袁岚峰老师说:“现在来看看,概率为什么会导致计算量爆炸。对于一维空间中的一个粒子,它只有一个坐标x,我们可以用一个函数f(x)来表示在x这个位置找到这个粒子的概率。假如把空间分成N个格点,我们就需要知道f(x)在这N个位置的N个取值。这看起来很简单。但真正的麻烦在于,当我们有R个坐标时,概率函数就成了一个多元函数f(x1,x2, x3, , xR)。每一个坐标有N个取值,所以总共有NR组坐标,我们需要知道这个多元函数的这么多个取值才行。数据量对R是指数增长的,这是灾难性的增长。现在,大家明白量子力学的计算为什么这么困难了吧?面对这种计算量爆炸,费曼提出了一个办法,就是用量子体系去模拟量子体系。我们不是直接用解析的方法去计算多元概率函数,而是构造一个量子体系,它演化的方式跟要模拟的体系在数学上等价。然后我们去测量这个量子体系的演化结果,也就是取样。做若干次取样后,我们就直接知道了这个多元概率函数。当然是在一定的误差范围内,这个误差会随着取样的增加而减少。”

袁岚峰老师的说法可能会导致大家误导他的本意。他的本意不是说:概率为什么会导致计算量爆炸”,而是说“只用解析计算,不用概率计算,为什么会导致计算量爆炸”。问题同样在于:他所列举的f(x1,x2, x3, , xR)式子的计算复杂性,在非量子领域也同样成立。这就是笔者反复强调的:“我们在容忍一定误差的前提下,采用模拟计算”的原因。

而费曼用量子体系去模拟量子体系”的解决说法也具有严重问题,因为像九章要计算的积和式,恰恰就不是量子体系。联系积和式与九章的唯一纽带,就是概率。九章是通过概率模拟,使得量子体系来模拟非量子体系。按袁老师所引的费曼的话的意思,除了量子体系,别无概率,只要用了概率,就是量子体系,这种对概率论的理解,是让我十分惊讶的。

袁岚峰老师说:“那些认为九章不是计算机、是浮夸宣传的人,其实踩的不只是九章,而且还包括悬铃木,包括现在所有的量子计算机。”这点上,袁岚峰老师可以在网络上搜,悬铃木量子计算机一出来,我立刻就发文章批评了,批评的内容就是说它是模拟计算而不是真正的量子计算。

因此,笔者对九章计算机的评价,是到位的:它是硬件蒙特卡洛模拟。蒙特卡洛模拟的特点是,一个题目对应一种模拟。譬如要让九章去算另一种类型的题目,它就要拆掉重新搭建。

 真正量子计算机的计算原理

下面,就来阐述,它为什么不是量子计算机。

袁岚峰老师说:“经典计算机的基本操作单元是‘比特’,即一个体系有且只有两个状态。好比一个开关,它只有开和关两个状态。量子计算机的基本操作单元是‘量子比特’(qubit),它好比一个旋钮。旋钮跟开关的区别是什么?它不是只有两个状态,而是有无穷多个状态。用数学语言来表述,如果一个量子比特能处于|0>|1>两个状态,那么它也能处于这两个状态的任何叠加态,即a|0> + b|1>。这里的ab是两个数,|>叫做‘狄拉克符号’(Dirac notation),在其中填上任何的数字或字母就可以表示一个量子力学的状态。经典计算机的基本操作,是对比特进行的。例如把0变成1、把1变成0,这叫做‘非门’(NOT gate)。量子计算机的基本操作,是对量子比特进行的。例如把a|0> + b|1>变成b|0> + a|1>,这叫做‘泡利-X门’(Pauli-X gate)。所以你看,量子计算机跟经典计算机的编程完全不是同样的意义。经典计算机的算法都是人用手算可以实现的,只是算得慢点。而量子计算机的算法是人用手算无法实现的,因为基本操作就不同。所以你看,量子计算机跟经典计算机的编程完全不是同样的意义。经典计算机的算法都是人用手算可以实现的,只是算得慢点。而量子计算机的算法是人用手算无法实现的,因为基本操作就不同。量子计算机超越经典计算机的关键,在于量子算法。对于某些问题,我们设计出了快速的量子算法,例如因数分解,这时它们就可以远远超越经典计算机。而对于另一些问题,我们没有快速的量子算法,例如最基本的加减乘除,这时量子计算机就没有任何优势。

袁岚峰老师的这段阐述,清晰地说明了,他也是知道真正的量子计算机不应该只是经典的硬件蒙特卡洛模拟。如果九章只具有经典硬件蒙特卡洛模拟的优点,那它有一定价值,但是这个价值的含金量与真正的量子计算无关,至多说是“基于光速传播优势、基于量子的小型化优势的硬件蒙特卡洛模拟”。

但是,袁岚峰老师跟他的其它科普文章一样,仍然讲不清楚量子计算的基本原理。量子计算机的基本操作,是对量子比特进行的”,与“经典计算机的基本操作单元是‘比特’,即一个体系有且只有两个状态”,究竟有何不同?读者仍然不甚了了。

下面本文就来做一次真正的量子计算科普。

真实的原理是:在经典计算机的一个物理存储单元中,要么存储0”值,要么存储“1”值,不能同时存储“0”值和“1”值。但是量子计算机的一个物理存储单元中,可以同时存在两个态,每个态都可以存储自己的数据。例如“|0>”态上存储a,“|1>”上存储b到目前为止,量子计算机没有问题,与经典计算机也没有本质区别,因为经典计算机也可以把两个比特作为一个物理存储单元,实现量子计算机一个物理存储单元的两态效果。

因此,我们假设经典计算机也以两个比特作为一个物理存储单元,以与量子计算机等价。

现在经典计算机和量子计算机都增加一个物理存储单元。则经典计算机有两个物理存储单元,每个物理存储单元上有两个比特,可以存储一个4位数。量子计算机也有两个物理存储单元,每个物理存储单元上有两个态,如果按照经典计算机的逻辑,量子计算机也可以存储一个4位数。现在问题来了:量子计算机研究者相信一个错误的量子纠缠的非局域性原理:他们认为,量子计算机的这两个物理存储单元之间的量子态是可以通过纠缠关系来建立非局域联系的。量子计算机的第一个物理存储单元中的|0>”态可以与第二个物理存储单元中的“|0>”通过量子纠缠关联起来,构成一个“|00>”态;量子计算机的第一个物理存储单元中的“|0>”态可以与第二个物理存储单元中的“|1>”通过量子纠缠关联起来,构成一个“|01>”态;量子计算机的第一个物理存储单元中的“|1>”态可以与第二个物理存储单元中的“|0>”通过量子纠缠关联起来,构成一个“|10>”态,量子计算机的第一个物理存储单元中的“|1>”态可以与第二个物理存储单元中的“|1>”通过量子纠缠关联起来,构成一个“|11>”态。这样,量子计算机通过对不同物理存储单元上的各个态之间通过量子纠缠建立关联关系,构成了“关联存储组态”(“关联存储组态”是笔者在本文提出的,以方便读者理解),这种关联存储组的数量是2的物理存储单元数量次方,即若物理存储单元数量是n,则可以建立2^n组关联存储组。每个关联存储组态都是可以在物理上分辨出来,所以可以操作或读取每个关联存储组态中的数据。2^n组关联存储组态,就意味着可以同时操作或读取2^n组关联存储组态中的数据,这等价于有2^n台经典计算机在并行计算。

经典计算机为什么赶不上量子计算机?就是因为其两个物理存储单元中的比特位之间相互独立,不能分别建立第一个物理存储单元中两个比特位与第二个物理存储单元中两个比特位的分别关联。

举个例子说,经典计算机好比两个队,每队两个队员。两队队员互不沟通。每个队员拿出一个数,则第一组可以拿出2位的一个数,第二组也可以拿出2位的一个数,两个组的数字合在一起成为4位的一个数。量子计算机也好比两个队,每队两个队员,但是不同队的队员之间可以牵手。任何一个队员还可以同时牵其它组的任意多队员的手。相互有牵手的队员构成一个牵手组,一共有2^2=4个牵手组。每个牵手组可以拿出一个数,所以有2^2个数。

经典计算机能不能建立量子计算机这样的不同物理存储单元之间的关联?不可以。因为即使我们把经典计算机两个物理存储单元上的比特位用更多的线连起来,可以构成2^2个关联组,但这2^2个关联组中,一定有比特位既属于这个关联组,又属于那个关联组而经典计算机中,一个比特位只有一个数字,所以一个比特位满足这个关联组,就满足不了那个关联组,所以没法根据关联组来存储和操作。而量子计算机学者认为量子计算机不仅可以建立不同物理存储单元之间的各态关联,一个物理存储单元中的一个态还可以通过迭加性质,为不同的关联存储组态分别存储数据。

既然量子计算的原理是纠缠关联的并行计算,那它在并行计算上为何只适用于特定题目呢?这是因为量子学家们又相信另一个错误的量子原理:“量子不可测原理”。量子学家们认为,量子只要测一次,其它态就塌缩了,所以虽然量子的多态可以迭加,但是不能把这些迭加的数据都测量出来,一次只能测量其中的一个关联组数据。因此量子并行计算只能适用在计算过程中并行,最后生成结果为并行计算的结果汇总(例如累加、累乘等)的题目,因为最后输出的结果是并行计算的汇总结果,所以只有一个汇总结果就可以了,所以只需要测一次即可实现并行计算。

如果在量子计算过程中进行2^n个并行计算,这些并行计算之间各自独立,最后也输出2^n个并行计算结果,按照量子不可测理论,就只能测量其中一个计算结果,这就等价于单机非并行计算,量子计算机就没有优势。但是要划重点:单机非并行计算也是计算,并且是经典计算机的计算。

所以,量子计算机的核心其实不是多态迭加,而是量子纠缠的非局域性。如果量子计算机只有多态迭加,那它就还是经典计算机,无非存储位变小、变多、存储单元进一步小型化而已。只有量子纠缠的非局域性出现,量子计算机才草鸡变凤凰,脱胎换骨了。

九章中使用了量子纠缠的非局域性了吗?显然没有。

目前包括悬铃木在内的所有所谓量子计算机,无论其宣称弄了多少个光子,都没有一个是基于量子纠缠的非局域性质来进行量子门操作的。

但这并不是袁岚峰老师所说的“量子计算机的算法是人用手算无法实现的,因为基本操作就不同”。很显然,即使假设量子纠缠非局域性和量子不可测原理是对的,按照量子计算机的原理,其计算程序仍然是符合逻辑推理的,量子计算机的所有算法都可以用人手来计算,只是人手计算的效率很低而已。

 量子计算机与经典数字计算机的关系

袁岚峰老师说:“所以,量子计算机的用处就是解决某些经典计算机难以处理的问题,而不是解决所有的问题。许多人以为量子计算机将来会取代经典计算机,这是误解。无论量子计算机进步到什么程度,它都不会完全取代经典计算机。正确的前景是,量子计算机跟经典计算机联合使用。因此,量子计算机只要在一个问题上超越了经典计算机,它就是有价值的。这正是九章和悬铃木的成就。在当前阶段,编程并不是主要目标。事实上,光量子计算机首先在原理上是可以实现编程的。然后,现在的九章可以部分的编程,这可以通过调整实验中光的强度、干涉仪的透射率、反射率等参数来实现。潘建伟指出,九章的下一步,就是要成为一个可完全编程的计算机。

根据笔者本文前面的表述,我想读者应该知道真正的量子计算机具有什么计算上的特点了。真正的量子计算机的所有计算过程均是数字计算机一样的解析计算(不考虑最大存储位数的限制,事实上可以通过编程来扩展数字计算机的最大数字存储位数)。并且(划重点):真正的量子计算机可以完成任何经典数字计算机可以完成的解析计算。因此,真正的量子计算机,一定是通用计算机,而决不是什么只能解决特定问题的计算机。经典数字计算机能干什么,真正的量子计算机就一定能干什么。任何经典数字计算机上的程序,都可以在真正的量子计算机上跑——只要软件写的兼容即可。

现在所说的,量子计算机只能解决的特定问题,这种说法的真实含义是指:只有在特定问题的计算上,量子计算机才能展现出超越经典计算机的迭加并行计算优势。

换言之,经典数字计算机能做的事,量子计算机就能做。量子计算机在某些问题上能比经典数字计算机展现出巨大优势,但不是在所有问题上都能比经典数字计算机更优秀。

所以如果真的量子计算机出世,能够计算出经典计算机所不能完成的题目,那它只要略作软件处理,就一定可以跑经典计算机的其它程序。如果做不到这一点,那它就肯定不是真正的量子计算机。要改动量子计算机的硬件来实现编程,其本质仍然是经典的模拟计算机,并且这种硬件编程,显然也只是对特定类问题进行模拟计算的参数调整而已,与真正的量子计算机与经典数字计算机完全兼容通用不是一回事。

 量子计算机的未来

我建议,国内外研究量子计算机的工作者,如果真的对量子计算机感兴趣,不要再去做模拟计算这种跟真正的量子计算不相干的事情了,你们的迫待眉睫的工作,是完成最基础的、基于量子纠缠非局域性的量子门的物理实现。这种量子门,哪怕仅仅实现2-3位的一个,哪怕计算速度奇慢无比,都是量子计算机革命性的进步,也是人类的伟大进步之一。

我个人的研判,这不可能实现。我关于量子计算的文章早已发布,我个人的意见是:基于量子纠缠非局域性的量子计算机在原理上就不可能实现。基于量子波函数迭加的、根据频率来进行并行计算的量子频率计算机,则是有理论上的实现可能。虽然量子频率计算机不如量子纠缠计算机神话,但“一个频率一个并行计算机”的前景,仍然值得我们憧憬,并且它可以实现并行的多个结果的同时输出,这一点又碾压量子纠缠计算机。量子频率计算机的原理是脚踏实地的、非常朴实的,它才真正值得一做。我从来不认为科学可一蹴而就,也不认为要花费几代人甚至几十、几百、几千代人才能做成的事情就不应该去做。我从来都钦佩那些无视名利,为人类几千上万年命运而工作的面壁者,虽千万人吾往矣。但是不应该把A说成是风马牛不相关的B,在做A的道路上,说成在达到B的道路上不断进步,而把AB的风马牛不相及,说成是在到达B的道路上的漫长的艰苦探索。

回过头来答复袁岚峰老师在其文章开头所列的那么多外国期刊或学者的支持证据。袁岚峰老师问:“这些说法似乎很有道理。但请仔细想一想,难道九章是这么简单的东西吗?为什么九章能发《Science》,而拿手电筒乱照或者点爆竹不能发任何科学杂志?

袁岚峰老师的提问很值得我们深思:为什么在西方全面封锁中国科技、封锁中国几十所科研院所的情况下,这些并不复杂的东西能得到西方的一致赞赏,而反之的意见却很难发出声音。西方的各种意见,仅供我们参考,它不能代替我们的思考和辩证。丁仲礼院士向柴静女士语重心长地发问:“科学家有主流吗”?我想会一直叩问好几代中国科研工作者。我们要为之负责的,是这个国家生我们养我们的人民。




http://blog.sciencenet.cn/blog-3424736-1269758.html

上一篇:纹明:《山海经.西次三经》之五积石之山
下一篇:纹明:《山海经.西次三经》之六长留之山

11 刘亚俊 王安良 史晓雷 黄秀清 雷奕安 徐令予 王宏琳 张鹏举 刘山亮 苏保霞 李维纲

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-4-12 15:33

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部