摸鱼读书——人人可懂的量子计算(一)
admin
2023-10-26 02:04:55
0

专栏序言

最近在工作之余开始重拾以前瞎看书的习惯。以前看书都是一目十行看个大概,等过个几个月再重温就成了熟悉的陌生人,效率太低了。所以这次就想实践一下著名的费曼学习法:以教会别人为目的的学习,顺带还可以在这里说说话,还算是为知乎的股价做一点微小的工作。于是就有了《摸鱼读书》这个专栏。希望读者们能在这里有所收获,但主要还是希望我本人能借这个机会让自己学知识的速度快点,遗忘的速度慢一点。嗯,暂定不定期更新吧

大家有想法可以在评论区交流,目标人均费曼学习法

序言

《人人可懂的量子计算(Quantum Computing for Everyone)》的作者是一个数学系的教授。从他的个人主页上可以发现,他主要的工作方向是计算理论(theory of computing),也就是从数学的角度研究计算的可能性、时间空间复杂度等等。

这里就要顺带提一嘴。单纯从信息处理的角度来说,所有程序都不依赖于具体的计算机实现。除了当前主流的硅基芯片可以实现全面的计算功能,用三体里的人列计算机可以、用本书里提到的台球计算器可以、元胞自动机(百度搜索“生命游戏”)也可以。通常使用“图灵完备”这个词来表示一套数据操作规则是“全能”的。从物理实现上看,当前硅基芯片+电的速度最快、成本最小,所以是主流。 算法或者程序的研究本质上是纯数学的,只是可以借助计算机来验证结论。

本书的主要内容也是纯数学(理论)上的计算机。它并不教你怎么在家手搓量子计算机,而是告诉你量子计算机的底层逻辑是什么,在信息处理层面能做哪些事。大家在新闻、媒体中经常听说的高大上名词,什么“量子传输”,“量子计算机破解RSA加密”,“量子加密”,“量子纠缠”,“叠加态”等等,这本书都会给出它们在数学上的含义,让你完全掌握它们究竟指什么。

如果你有高中水平的数学知识,那么阅读本书已经够。虽然线性代数是主要使用的数学工具,但书中有专门的章节介绍线性代数的知识。如果你已经对线性代数有基本的认识,那么就可以跳过这些章节,或者快速了解一下书中的符号体系。

本书的Introduction部分给出了一个目前看起来非常深刻的结论:量子计算并不是一种新的计算类型,而是对计算的本质的揭示。这点其实本人还挺好奇的,凭什么它就更本质了?希望在后续能得到与作者相同的理解吧。

计算(Computation)、比特(bit)、量子比特(qubit)

计算就是给定输入数据,然后按照一定的规则操纵数据,然后给出最终的答案(以与输入数据相同的形式,也就是“数据”的格式)。数据的格式就是由“基本单元”构成的串。

在传统计算中,“数据”的基本单元是bit。它是一个可以取值为0或者1的基本单元,用来表示任何拥有两种状态的量,例如真/假,上/下,左/右等。将多个bit串在一起可以表示更丰富的数据。

在量子计算中,一个qubit也包含了两种状态。但是它可以是两种状态的任意组合。例如,只要一个qubit就可以表示当前状态是50%真以及50%假。但是qubit并不单纯只是“为真的概率”,也就是不能单纯用一个位于[0, 1]的实数来代替qubit(反例:表示50%真和50%假的qubit可以有两个,它们的一些可观测特性不一样)。这些会在后续介绍qubit的向量表示时得到体现。

此外,量子计算无法用传统计算替代的一点,是其内涵的“真随机”。它在所谓的“量子态坍缩”过程中得以体现。因为描述量子计算使用的语言主要是概率论和线性代数,因此我们完全可以在传统计算中构造一个向量来表示qubit,只是面临需要执行“坍缩”操作的时候就会遇上找不到“真随机”的困难(当然,可能也会面临数值精度上的挑战)。

如果能找到一个可信的“真随机”源,那么搭配使用传统计算可以理论上100%还原出一个量子计算系统,只是现实中可能要花更多的时间计算(通常是与数据量规模呈指数增长、甚至离谱的时间倍数)来获得结果。

如果没有真随机源,用现行的伪随机方式强行模拟,也可以达到类似的效果。这也是当前绝大部分所谓量子计算机模拟器的原理。注意,量子计算领域有一个大话题是“量子模拟”,需要和量子计算机模拟器区分开。“量子模拟”其含义是用设计好的量子系统来模拟实际的系统,而非本书中讲述的qubit + gate的量子计算机的路子。

“量子模拟”和“量子计算机”的区别有点像是模拟电路和数字电路的区别。我国的“九章二号”在高斯玻色取样问题上实现“量子霸权”(现在提法改成“量子计算优越性”了),走的就是量子模拟的路子。

当前已经有了一批用于量子计算机的编程语言(可以直接百度搜索:量子计算语言),通常会自带模拟器。大家可以当一回天使投资人,找几门语言学习一波,万一以后成为主流了呢。

电子自旋(spin)

一个qubit的典型例子是电子的自旋。下面介绍一下关于电子自旋的经典实验来帮助大家理解自旋作为qubit的特性。

量子化的电子自旋

根据玻尔的电子轨道理论,带有47个电子的银原子在最外层有一个未配对的电子,其余电子都有对应的配对电子。而电子自旋会产生磁矩(书中用电子在轨道上旋转来解释自旋,虽然是错误的,但是简化了理解),可以将其看作一个小磁铁。配对的电子自旋方向相反,因此产生的磁矩相互抵消。于是整个银原子的磁矩就是最外层电子的磁矩。通过测量银原子的磁矩方向,我们就能得知该电子的磁矩方向,或者说电子的自旋方向。自旋方向与对应磁矩的示意图如下:




自旋与磁矩

测量的方法就是让银原子穿过下图V型的磁场(原子的速度方向垂直于屏幕)。这种V型设计会让S极的强度比N大,从而根据磁矩的方向不同,银原子会因磁矩与磁场的作用而产生方向偏转。偏转的方向和角度与自旋相对磁场的角度、磁场强度有关。




V型磁场

按照朴素的想法,由于自旋方向是随机的,所以最后产生的偏折应该也是在一个扇形区间内的大范围分布。然而实验结果表明,银原子要么朝上偏折固定角度,要么朝下偏折固定角度,打在靶子上就是两个点,并不会走其他路径。也就是,仿佛其自旋要么完全顺着磁场方向,要么完全逆着磁场方向,并不存在稍微偏一个角度的情况。

这就是量子计算中“量子”概念的由来。测量得到的对象的属性并不是连续的,而是离散化的。

“测量”的概念

可能有读者会想,是不是磁场本身把自旋给扭过来了,而并不是说银原子的本来的自旋只能向上或者向下。这个想法当然是有道理的。但是量子力学并不关心这个电子自旋“本来”怎么样,而只关心“如果我测它,会怎么样”。这里就要强调下量子力学和传统力学最大的区别之一,就是把“测量”也纳入理论的一部分。

传统力学是一套状态随时间变化的规则。例如在重力作用下,物体的速度随时间线性变化,进而推导出抛物线公式等。理论只告诉你:如果一开始它长这样,那么过一阵子它就会变成那样。但理论并不负责告诉你要怎么知道一开始它长啥样。理论认为了解状态是理论使用者的责任。在这套体系下,人被要求开着上帝视角看世界。

而一个物体的位置、速度需要通过测量才能获得。比如用一个激光测距仪/测速仪,也就是将一束光子打到物体身上,然后再等待其返回,通过测量时间差得到位置信息。总而言之,需要对被测对象进行一定作用才可以获得状态信息。这个作用的过程就是测量。在高中物理学习电场的时候,也会拿试探电荷来确定电场强度,这也是测量。

在宏观世界,测量对目标对象产生的影响通常可以忽略不计。但是在微观世界,这种影响就不容忽略了。

举个已经相对比较宏观的例子,如果一个金属大球带电量为0,现在要用一个带电金属小球用扭矩法测量场强。因为感应起电,测得的场强一定不为0。但我们都知道,不带电的金属球产生的电场显然不是0。

微观一点,拿光子撞粒子来测位置,很可能粒子直接被光子推着走起来了。

如果根本就不存在“无副作用”的测量,那把“测量”行为本身纳入量子力学也显得非常合理了。并且从可验证的角度来说,我们需要关心的仅仅是对测量后结果的预测、分析,而不是追求“假如有无影响的测量结果会如何”。

按照一般的想法,如果要把测量考虑进来,那我们可以逐步减少测量的力度,然后观察不同力度下的结果,然后给出一个渐进的拟合曲线,进而得到对粒子状态的描述。然而,量子力学中,并不是这么做的。它只关心测量的方式,并不关心测量的力度。

以电子自旋实验为例。使用磁场对银原子进行一次作用就是一次“测量”。减小磁场强度或许会让银原子偏转的角度变小,但不改变银原子只有两个可选方向、角度的结果。量子力学只关心测量的结果是“上”还是“下”,而并不关心上下的幅度受磁场强度影响这件事。

多次测量

假如我们在测量一次之后,再次测量会如何呢?

在电子自旋实验中,我们可以在银原子偏折后的路径上再加一个同方向的磁场,观察银原子会如何再次偏折。实验结果显示,如果第二次偏折的方向总是与第一次相同。也就是,假如第一次我们测出来电子自旋向上,那么对其再次测量,结果将还是向上。这很听起来合理,多次测量结果相同嘛。

如果我们改变第二个磁场的方向为水平方向(顺时针旋转90度)。实验结果表明,不管第一次偏折方向如何,第二次的偏折方向总是左或者右(平行于磁场),各50%的几率。




水平方向的磁场

如果我们改变第二个磁场的方向为顺时针旋转60度的方向。实验结果则是:若第一次偏折方向向上,则第二次有3/4的概率偏折右上方(平行磁场方向),有1/4的概率的概率偏折左下方;若第一次偏折方向向下,则有3/4的概率偏折左下方,1/4的概率偏折右上方。

总结一下,整个实验的规律大致有3个:

  1. 在哪个方向设置磁场,测量得到的自旋方向就一定与磁场方向平行,正或者负
  2. 如果在同一个方向测量多次,得到的自旋方向是稳定不变的
  3. 在已经知道自旋方向后,换一个角度测量自旋方向,得到的结果的正负概率与角度偏差有关

“观测导致量子态坍缩”到底在说什么

量子力学对上述实验规律的建模会在下一期详细展开,涉及到概率论与线性空间的应用。这里我们利用这个例子讲一下什么叫做“量子态坍缩”。

规律1说明电子自旋的测量结果只有两种,并且方向与磁场平行。因此我们将磁场方向的正负两个方向分别定义为电子自旋的两个“量子态”(正与负)。在测量之前,量子态处于“叠加态”,也就是有可能正,有可能负,二者比例根据情况而定(我们已经见到了50%对50%,以及75%对25%的两种情况了)。

进行测量后,电子的自旋态会从“叠加态”坍缩到两个“量子态”之一,坍缩到两个态的概率有规律,但是到底坍缩到哪个是完全随机的(“真随机”)。坍缩后量子态便确定到了100%对0%或者0%对100%上,不具有随机性,再次测量只会得到相同的结果。

切换测量方向时,由于测量结果一定平行于测量方向,因此“量子态”的定义需要改变。于是原本100%对0%的比例因为底层状态定义改变,会换一个分解方式,形成新的“叠加态”。随机性又出现了。

坍缩的原因或许是磁场与电子自旋的相互作用,但是物理现实已经不允许我们将具体的细节再继续拆解(已经没有更小的探针了),只能以黑盒加概率的形式构建理论。又或许其实概率本身就是微观世界的规律之一。历史上关于这个问题有诸多争论。巧妙的是,最终有物理学家设计实验证明了大部分人期望中的,能搞清楚所有细节并精确预测观测结果,而非给出概率分布的理论,根本不可能存在,概率似乎是微观世界的根本规律。也正是这个实验把量子力学从“好像只是拟合了一堆数据”的理论变成了微观世界的根本理论。

实验的设计涉及“量子纠缠”的概念,会在后面几期细讲。

从电子自旋到qubit

如果要用自旋表示qubit,我们首先要确定什么状态是1,什么状态是0。我们可以规定第一次测量的时候,向上是1,向下是0。

初始状态的电子其实我们所知甚少,其qubit状态不可知,只能拍脑袋说大概是1/0对半分的状态吧。但是一但经过测量,其状态就变成了确定的1或者0。此时,我们就获取了一个非叠加态的qubit(由电子自旋表示)。

接着我们可以对其进行第二次测量,此时磁场方向变为水平。也就意味着需要对1/0的状态重新定义。这里我们仍旧保持相对磁场向上是1,向下是0的定义。换到人的视角,可能就是向右是1,向左是0。

由于底层的量子态变了,那么我们原先向上/下的电子自旋就需要变换自己的基础量子态到左右。而这个变换可以通过理论精确计算。例如当前的例子,就是左右各50%。(如果是转60°,那就是75%对25%)

也就是,通过变换基础量子态,我们从一个非叠加态的qubit得到了一个叠加态的qubit。这暗示着,是否叠加态其实和基础量子态的选择(测量方向的选择)有关。

在量子计算中,我们希望一直保持对qubit的1/0的关注,而不是关注磁场的方向。因此比较习惯将基底变换看做是对qubit本身的一个“变换”:虽然电子自旋其实本身没有变化,只是我们测量的方向转了90度,但是方便起见,我们假装测量方向其实没有变,而是把电子自旋转了90度。反正这两者在结果上是等价的,后者对我们描述qubit还更方便,何乐而不为呢。

最终我们会说:通过这个旋转90度的变换,我们将一个qubit从非叠加态变换到了50%/50%的叠加态。

尾声

下一期会简单介绍一下线性空间的概念,然后开始用向量来表示量子态,从而将本期的描述性文字转为定量的计算。

欢迎大家在评论区多多交流讨论~

相关内容