原创 | 从大规模核酸检测窥见量子计算的冰山一角
作者介绍:
00 引言
量子力学一直是科学界的热词,大到科学家,小到我们老百姓,都听过量子力学这个词。
“遇事不决,量子力学。”这句话仿佛又给量子力学罩上一层神秘面纱,让我们这些小老百姓避而远之。
2020年年底,阿里达摩院发布的2021十大科技趋势,其中第二项就是量子计算,量子力学却离我们越来越近了。
其实从应用层面去认识和理解量子力学的一些领域,并不枯燥晦涩,相反,在我们生活中就有很多应用量子力学的例子,它们在我们小老百姓看来又是简单得不能再简单,平庸的不能再平庸的事情。
最近我国一些市区范围的大规模核酸检测就是一个量子力学中量子计算领域的生动例子。
(注:本文中所有叙述都不遵循学术准确性和完整性,仅供入门级科普参考)
01 大规模核酸检测是如何快速完成的
“上午采样,晚上出结果”,“某某地两天完成100多万人的核酸检测”,新闻App的热搜榜上出现了这些内容。当你参与了大规模核酸检测,就能100%的确定这些新闻都是真真实实的伟绩。
除了我们国家医疗资源的富足作为完成此项伟绩的基本条件外,还有更重要的“方法”。现在做大规模核酸检测的比较有效率的方法是5:1混检或10:1混检。2021年初北京各市区采用的核酸检测方法就是10:1混检。
什么是5:1混检和10:1混检,其实很好理解,就是将5个人的样本或10个人的样本混合在一起进行核酸检测,这样核酸检测的效率就快了5倍或10倍,如果混合的样本检测结果是阴性,那么每个个体样本的核酸检测结果就是阴性。如果混合样本的检测结果是阳性,则需要先暂时隔离观察这批样本的所有人,并一一对每个人进行核酸检测,最终确定感染者。因为感染者相对于未感染者属于少数人,所以这种检测方法可以大大的提高检测效率。
笔者曾参与了北京市西城区的大规模核酸检测,现场中人们按照居住社区排好队伍,以10人为单位,拿到一个样本试管并进入检测场地,检测人员获取样本后,都放入到这一支试管里,然后立即拿到医疗机构进行样本分析检测。笔者是在晚上21点左右完成了检测,第二天早上9点左右拿到了阴性的检测结果。
02 什么是量子叠加态
大规模核酸检测咱们先放到一边,先来看看近些年很火热的“量子力学”,也许笔者可以通过简单的笔墨为您描绘清楚科普层面的“量子叠加态”是什么,后面咱们再去看他和大规模核酸检测是怎么联系到一起的。
先说说现在我们都比较熟悉的电子计算机,也就是我们熟称的电脑。我们大部分人都知道,计算机是采用2进制数计数法,也就是说计算机只能识别0和1这两个数。因为电路中通常只有两个状态,即接通和断开,所以用电子器件来模拟0和1是简单、准确并有效的,这就是计算机采用2进制计数法的原因。在计算机里每一个模拟出来的0或1,我们称之为“比特位”,英文就是Bit,他是计算机进行计算的基础单位。
而量子是这样一种存在,他可以同时拥有两种不同的状态,并且当你对他进行观测时,他就会以一种状态稳定下来,或者说是坍缩成一种状态。还是以计算机为例子,电路可以模拟接通或断开两种状态,接通就是接通,断开就是断开,毋庸置疑。但量子却能同时拥有两种状态,用电路举例来说,即电路目前既是接通状态又是断开状态,而当你观测这个电路处于哪个状态时,他就会以一种稳定的状态展现给你。如果将量子作为计算机中的比特位时,计算机中的一个比特位就可以同时表示0或1了。
这种量子能够同时拥有两种状态的性质我们可以称之为量子叠加态。而采用量子作为计算机比特位从而使用量子特性进行计算的模式我们可称之为量子计算。
03 量子计算能解决什么问题
那么您一定要问了,采用了这个能同时表示0和1的量子比特位的量子计算能干什么呢?他们能同时表示0和1我们又能怎么应用呢?
此时在我脑海里出现了高尔顿钉板、熵增、非对称加密、天气预报等等一系列话题,这要唠下去可能要出个专栏了,为了以最快、最简单的方式说明白这些事,我们就把素数搬出来唠唠。
素数又称质数,指只能被1和其自身整除的大于1的自然数。这个我们在小学可能就学过,2,3,5,7,11,13等这些都是素数。笔者现在拿出比较大的一个数1674997285908599,明确的告诉大家这个数是由两个素数相乘得到的,那么你能不能告诉笔者这两个素数分别是多少?
拿出小本本开始做因式分解的同学还是不要算了,如果你真算出来是哪两个素数,很有可能我们人类社会赖以生存的信息加密技术就没有立足之地了,因为大整数难做因式分解是非对称加密技术的根基。
开了一个不算很玩笑的玩笑,没关系,咱们现在来算他,用最笨的方法,从2开始除,一直除到能整除的数吧。计算机在完成26854063次逻辑层运算后,终于得出了其中的一个素数,就是26854063,另外一个素数是62374073。这对现在一秒钟可做几十亿次运算的计算机来说也不算什么,最多花费5秒的时间就能得出结果,这里只能说笔者很良心了,没有拿出一个300位的大数吓到大家,而且300位的数字写在文章里颇有骗稿费的嫌疑。但实际上作为非对称加密的大数取值位数是很多的,就算最快的计算机,每秒钟运算次数达到几十千万亿,算到世界末日可能也算不出来。
但量子计算就不同了,因为量子比特位的特性,就可以用一个量子比特位组合同时表达很多数,比如二进制里00对应十进制的0,01对应十进制的1,10对应十进制的2,11对应十进制的3,当这两个比特位换成量子比特位时,一个数就可以同时是0,1,2,3了。这只是两个量子比特位,如果有足够的量子比特位组合,理论上就可以有一个数同时是很多数了,可以远远超过26854063,咱们把这个数去和大数做一次除法,就可以得到所有结果了。
是不是有点匪夷所思?不用急,我们从大规模核酸检测中找找量子计算的影子。
04 核酸检测中的量子计算算法
我们已经知道了,量子计算就是利用量子比特位组合的特性进行计算,那么核酸检测中的量子比特位体现在哪里呢,很多人已经猜到了,每一个检测样本不就类似一个量子比特位吗,他们在检测前同时处于阴性和阳性两种状态,只有对其进行检测后,才会坍缩成阴性或阳性这种独立的状态。
10:1的混检方法,可以比作10个核酸检测比特位的组合,我们用下表看看他能同时表示多少种情况:
就是简单的排列组合,把次数累加后得出,这10个核酸检测比特位可以同时表示1024种样本实际情况。也就是说,我们拿的这支装有十个待检测样本的试管,同时可以表示1024种样本实际情况,我们拿这一支试管只去检测一次,就同时把这1024种排列方式全都计算完成了,并且准确得出上表的检测结果。
有人发现了,那你得出的结果只有阴性和阳性啊,并没有得到样本的实际情况啊?是的,虽然是这样,但从某种意义上说,这次检测确实是进行了一次类量子计算。再回到上节说到的用量子计算来计算大数的因式的例子,我们也用同样的方式只用一次运算,计算了所有情况的结果,这里就可以想象我们得到了很多很多的结果,在此例中一共有26854063个结果,接下来的工作就是从这些结果中找到我们想要的那个答案了。
是的,你没听错,我们还是要去找答案,并且这个找答案需要计算的次数依然是26854063次,用笔者的计算机依然要消耗5秒,对于超大数,依然是到世界末日仍找不到结果,那么,量子计算还有何用?
05 量子计算的冰山一角,未来仍需发掘
当然有用。
对于大数因式分解,数学家彼得秀尔在1994年发现了针对整数分解的量子算法,被命名为秀尔算法,他成功解决了上节说到的从众多结果中拿到我们真正想要的结果的方法。
2001年IBM的一个小组使用实验量子计算机,用7个量子比特位基于秀尔算法成功的将15分解为3乘5,这也验证了量子计算的可行性。
对于大规模核酸检测中的10:1混检,或许我们以后也可以利用量子计算得出样本的实际状态,那就需有要更多、更优秀的算法的发现。
时至今日,量子计算的算法数量仍屈指可数,我们只是从大规模核酸检测窥见到量子计算的冰山一角,量子计算的未来仍需你我的努力共同发掘。