随着我们的量子专列继续前进,我们将要见识一个更复杂的量子实验。
我们直接开门见山吧,这次介绍的实验叫做延迟选择实验,这个实验是以双缝实验为基础的,但是更为复杂,同时也是更为有趣和出名一个量子实验。这个实验的名气之大,已经有名到几乎要破圈而出的地步。它也号称是量子物理学中最难以让人理解,并且具备能摧毁正常人三观能力的超级恐怖实验。
这个实验的全称叫「惠勒延迟选择实验」。
惠勒实验的构想其实已经诞生了 40 多年了。在 1979 年,为纪念爱因斯坦诞辰 100 周年,科学界在普林斯顿召开了一场讨论会,在这次会议上,爱因斯坦的一个同事约翰·惠勒提出了「延迟选择实验」的构想。
惠勒通过一个戏剧化的思维实验提出,如果我们进一步改进对电子的双缝干涉实验,将检测电子的时机选择在通过双缝之后,也就是说,我们在发射了单电子后就计算时间,等电子穿过了木板上的缝隙之后,我们再去打开缝隙上的探测器,那么我们会观测到什么呢?电子究竟是以波的形式同时通过了双缝,还是以粒子的形式通过了单缝呢?
这个思维实验初听起来似乎没有什么特别的地方,如果你有读过我专栏的上一篇内容,已经理解了粒子的波粒二象性,那么应该会理所因当地认为:电子穿过缝隙之后再放入探测器,电子肯定已经以波的形式同时穿过了两道缝隙,已经一分为二了,而探测器必然会在两边都探测到电子啊。
可是,结果并不是这样的!
惠勒延迟选择实验既然能赢得传说中的世界观颠覆者、人生观毁灭者、因果律杀手、理科生躁郁症的重大致病首因等等各种响亮美名,自然不会是简单的浪得虚名。
实验的结果究竟是怎样的呢?
我们先不着急揭晓结果,先来详细看看下这个实验具体该怎么做。
惠勒实验虽然原型是用的双缝干涉实验来改进,但是为了达到更好的实现效果,一般都改成了用光子镜面干涉的方式来做,为了方便不太了解该实验的朋友,我花一点文字把实验的具体设置和过程描述一下,如果熟悉的高手们尽可略过。
加载中...
惠勒实验示意图
如图所示,该实验的具体布置非常简单,一共只用到七件主要的实验仪器,分别是单光子光源、半透镜 O、全反射镜 A 和 B、半透镜 C 和两只接收器(探测器)。
所谓半透镜,就是一种半镀银的透镜,有 50% 的概率会反射光线,50% 的概率会让光线直接通过。
加载中...
半透镜的样子
我们先看图,我们先不在 C 处放置任何透镜和接收器。如果这时从光源处发射一只光子,那么光子会怎样传播呢?
不太熟悉量子物理的朋友可能会说,那光子应该 50% 概率走上边,沿着 OAC 路径传播,50% 概率走下边,沿着 OBC 路径传播。
这样说也没错,如果现在光呈现出粒子特性的话,的确会如此。
但是,我们都知道光具备波粒二象性,它还可能像波一样传播。
如果像波一样,那么光就会同时走上下两条路径,同时到达 C 点。这时候,如果你在 C 点放置一个屏幕的话,同时沿着两条路径到达的光波还会与自身发生干涉现象,在屏幕上呈现出干涉图案来。
那么,光到底会呈现出粒子特性还是波动特性呢?
答案是,取决于实验者所采取的观测手段而定!
加载中...
回顾一下实验的示意图
如果实验者在 OAC 或者 OBC 的路径上放探测器,检查光子具体从哪条路径传播,那么光子就马上会呈现出粒子特性,只会从一条具体的路径传播,在 C 点屏幕的干涉图案就消失了。
而如果我们不去检测光子走的哪条路径,故意忽视光子的路径信息的话,光子就会呈现波动特性,干涉图案又出现了。
说到这里,大家应该会心一笑,说我们早就知道量子就是这个尿性,上一章不是讲过吗?
不检测就相当于虚拟世界里的粒子代码不执行,所以两条路径就会产生两个波函数,互相一叠加干涉图案自然就出现了,如果在路径上添加检测点的话,自然就是代码提前被执行输出了,那就只剩一条路径上有波函数了,自然产生不了干涉图案。
如果你能充分理解上面这段话的话,说明上一站你学的很认真,你的理解也很正确。
但其实,这并不是这个实验真正有趣的地方,这个实验真正有趣的地方是我们决定按照约翰·惠勒的想法来试试,将实验再推进一步。
我们让光子先出发,然后根据光速计算时间,等到光子已经经过了透镜 A 或者 B 之后,再决定如何观测。
加载中...
再回顾一下实验示意图
具体的做法就是在 C 点,我们再准备一个半镀银的透镜和两只探测器,然后我们就可以先等光子发射,然后精确的控制时间,计算光子的飞行时间,等到光子已经经过了 A 或者 B 点之后,再决定是否插入 C 半透镜,那么现在就可能有两种情况:
不插入 C 半透镜,那么检测器可以准确地了解光子从哪条路径而来,光子呈现出粒子特性,只有两个探测器检测到光子的概率均为 50%;
插入 C 半透镜,那么不同路径而来光子再一次经过了半透镜的概率反射,我们将无法判断光子具体的路径信息,光子就呈现出了波动特性,并在 C 点发生自我干涉,经过调整可使一边的探测器始终能检测到光子。
这样,我们就可以通过不同的探测器输出模式来判断光子究竟展现的何种特性,以及插入 C 半透镜有没有影响光子之前的行为。
我们如果计算好时间,等光子通过 O 点之后再决定是否插入 C 半透镜的话,那么就能验证约翰·惠勒的想法了。
大家肯定认为,光子都已经经过了半透镜 O 点了,甚至都已经经过了反射镜 AB 了,那要么是以波的形式已经同时走了两条路径了,要么就是以粒子形式只走了一条路径。
介于光子在到达 C 以前肯定是没有被观测过,理论上应该是以波的形式同时走了两条路径吧,等你决定是否在 C 点插入透镜应该并不能改变已经发生过的事情了,也就是说无论实验者在后来再怎样去操作 C 点的透镜,应该都不会改变光子已经同时以波的形式经过了两条路径这个已经发生的事实吧。
所以,我们应该只在一边的探测器上能探测到光子才对。
但是,这时令人大吃一惊的现象出现了!
我们在实验中居然发现光子经过了 A 或者 B 点之后再插入透镜 C,这个行为依然完全地决定了最后的观测结果。
也就是说,在光子飞到 C 点前的任何时刻,我们只要插入了透镜 C,干涉现象就出现了,我们只能在一边探测器观测到光子,只要不插入,干涉现象就不会出现,两边的探测器还是各有 50% 的概率观测到光子,而不管从时间上看光子是否已经越过了 O 点!
这说明了什么?
这说明先发生的光子行为居然非常诡异和后发生的观测行为完美匹配了起来,实验者在 C 点插入半透镜的行为虽然在光子经过 AB 点的时间点之后,但是却反过来影响了光子之前在整个传播过程中的特性表现。
天啊,原来这个实验令人震惊的地方在这里!
这个实验不简单是证明观测会影响粒子的特性,更夸张的是颠覆了事件的因果关系。
我们在光子经过透镜之后实施的行为,怎么可能反过来去改变光子之前就发生的传播行为呢?这就好像是两者之间的因果关系被倒置了一般,真实世界为什么会发生这种事?
我们再来梳理一下,从实验逻辑上来看,实验中事件发生的顺序似乎是这样的:
单光子发射 → 经过半透镜 O → 经过镜子 A 或 B → 半透镜 C 被插下 → 回溯修改传播路径 → 经过半透镜 C → 到达探测器
这已经完全不能理解了是吧,而且科学家们还在此基础上继续推进了一步,他们决定将实验中 OA 和 OB 的距离继续加大到星际空间的尺度,采用引力透镜来代替实验中的普通透镜。
加载中...
用星系的重力场形成引力透镜
结果大家猜怎样?
实验结果果然与距离大小无关,光子依然我行我素。
不过在这个实验里,将尺度放大到这么夸张的地步后,给人的感觉就非常毛骨悚然了。
假设 OA 和 OB 的距离有一百万光年,那会发生什么?
也就是说,我们可以等光子发射后,飞行了快一百万年之后,再决定是否插下半透镜 C,观测手段一旦改变,光子就得去修改之前一百万年的传播路径,这可以想象吗?
那么,这漫长的一百万年的岁月里,这颗光子究竟在哪里呢?是同时在 OA 和 OB 吗?还是哪里都不在呢?它怎么有能力去改变百万年前发生的事情呢?
一百万年啊,人类的全部历史都没有这么久。
而且,如果只是做思想实验的话,理论上我们可以通过观测行为去影响任意久以前的事情,那么整个宇宙的历史还真实吗?我们到底生活在一个什么世界里?
好了,我们先放下这个细思极恐的问题,来看看虚拟世界版本的延迟实验诠释吧,也许世界还有救。
我们假设要在虚拟世界里继续开发我们的「量子世界」游戏,游戏里面要制作一个新的场景,于是我们先定义下这个场景的开发需求:
场景里有一位会发射隐形火球的法师,他发射的隐形火球既能像粒子一样飞行,也可以像波一样传播,至于究竟什么时候会怎样我们先放一边。
加载中...
一个发射隐形火球的法师
接着我们又设计了一些道具,包括两块可以一半概率反射火球法术的魔晶 O 和 C,然后还有两个魔法反射镜,两个当做目标的挨打小精灵。
好了,按实验图摆好位置后,一个魔法版的延迟实验我们就可以布置出来了。
接着,我们抓了一位码农,让他来完成这个实验的整个过程。
码农愁眉苦脸地琢磨了一会后,考虑到计算资源的紧张,他发现他不能无止境地计算火球每时每刻的位置和状态,这样做既消耗资源,又没有意义,他应该在关键时刻计算火球的命中结果就好了。
那应该在什么时候进行计算呢,码农分析了一下火球飞行的全过程,他发现有几个时间点可以选择:
第一个时间点就是火球刚刚发射的时候,这时候发射路径方向已经确定,因此全路径情况系统基本都已经得知,但是缺点是在火球飞行的过程中路径上的情况随时随地都会变化,所以系统需要关注路径上任何变化,这样计算量比跟踪火球还大了,所以此时计算过早了;
第二个时间点是路程中遇到交互事件的时候计算,比如遇到魔晶,或者中途跳进来的小精灵等等,但是这种事件太多了,比如说火球碰到了空气中的灰尘算不算呢,如果可能事件这么多,连续进行跟踪计算岂不是和实时计算也没区别了,起不到节省资源的作用。
那么能不能找个时间统一结算呢?那什么时间统一结算最合适呢?码农思考了一下感觉应该在观测之前的最后一刻计算最好,因为这样计算不会漏掉任何路径。所以码农选择了第三个时间点,也就是观测前的最后一刻进行火球飞行的全路径结算。
码农决定这样来安排整个实验的事件过程:
先计算出火球的飞行路径,遍历所有会到达目标点(观测点)的可能路径,然后播放火球发射动画;
系统每隔一个普朗克时间就判断下所有路径上火球应该到达位置上有无观测事件发生,如果没有的话系统就继续 idle,进入空闲等待状态;
一旦当系统检测到有观测事件即将发生以后,立刻根据观测点位置回溯检查传播路径上的所有交互事件,并进行概率计算。因为系统并没有记录光子飞行时间中路径发生的任何过程变化,所以系统只能用当前的路径情况进行计算。又因为现在是用概率进行叠加计算,所以再小的路径概率也会叠加进来,而不会被丢弃。系统会回溯观测点到发射点的所有可能传播路径,并以当前的路径情况以波函数的形式把传播路径上的一切交互事件全部混合一起进行概率混合,以得到最后的总概率函数;
系统根据最后计算出的最终总概率波函数进行坍缩,进而输出观测结果;
最后系统再重置火球的函数,并准备下一段的传播计算(如果有的话)。
码农测试了一下,按这个最终点结算的算法非常节省系统开销,而且结果误差也很小,完美实现了客户需求。
唯一有点不完美的问题就是,在最后计算的时候,因为系统已经没有火球飞行过程中路径的变化信息了,所以只能忽略路径在光子飞行过程中发生过的变化,而以最后一刻的路径情况来进行概率结算。
现在大家是否明白了,码农的这个省事的算法中不完美的地方,其实就是造成实验中的诡异现象的直接原因。
因为码农的算法并没有关注火球在传播过程中遇到的任何实时事件,他默认到检测点的时候当前的路径情况就是火球在飞跃过程中所经历的实际情况,这样的结果在玩家看来当然会出现因果倒置的错觉。
因为这会导致玩家在路径上那些趁火球飞行中所做的各种事情都变得毫无意义,玩家会发现,无论自己如何掐着时间操作那些魔晶或者镜子,最后火球的观测结果只会与观测时候路径上最后的状态相吻合,这样看上去似乎是火球改变了自己过去的行为一样,但其实并不是这么回事。
之前玩家在插入魔晶 C 的时候,以为火球已经越过了 AB 魔法反射镜,正在前往魔晶 C 的飞行路径上,但我们现在知道了,这个所谓飞行中的火球只不过是玩家的想象而已,它并不存在,而这个过程中系统后台其实什么都没干,只是在发呆和等待而已,玩家那些把魔晶插进取出的行为其实都只不过是瞎忙活。就像魔术揭秘一样,只要玩家把那个飞行中的火球的幻觉一拿走,这一切就马上变得一点都不神奇了。
在虚拟世界里,这其实很正常。
对于虚拟世界的物体来说,有交互(观测)才有输出,和外部无交互的时候,系统 idle(待机)就好了,用不着时时刻刻地去移动火球位置,也不用时时刻刻更新火球函数的状态。所以在每个火球的交互行为(被观察)之间,火球没有任何行为发生,它只待在代码里,等待观测事件的发生而已。
这种看起来很偷鸡的做法,其实也很好地反应出了一个称职码农的技术修养。
一个优秀的程序员肯定是只关注用户所需要的输出结果,而不会设计无需表现的逻辑。所以系统在没有观测事件的时候,当然没有必要将一个物体在三维坐标系里移来移去浪费系统开销,一切看不见的粒子运动过程在码农眼里都毫无意义。
加载中...
FPS 游戏里其实并没有飞行的子弹
比如,在设计 FPS 射击游戏的时候,玩家开枪的时候给他画个开火的动画,然后根据距离算算子弹飞行时间,等到了时间,再根据实际情况算下命中概率和位置,如果命中再画个击中动画就好了。
子弹飞行过程?
不存在的。
所以,在我们的现实世界中也许并没有什么光子或者其他什么子在飞行。每一个光子被发射后就不存在实体了,有的只是宇宙母机的系统在后台默默计时并等待观测事件出现而已。
来自遥远星空的光子也不用千幸万苦耗费百万年的飞行路程来到我们眼里,或者来到天文台的望远镜的底片上,这些事件在我们抬头仰望星空的一瞬间,就已经被瞬间合理处理了。
加载中...
遥远的星光
晴空深夜,我们仰望星空的每一眼,可能系统都要立刻将可能到达我们视网膜的每个光子路径上的一切当前事件立即代入它们的波函数进行实时计算,系统需要瞬间计算完当前几十上百光年路径上的各种交互事件对每个光子波函数的影响,包括诸如引力透镜、光线干涉衍射、多普勒效应等等,并立刻将计算结果输出到你的视网膜的细胞上,以便让你视网膜上的视神经细胞进一步向你的大脑或者你的意识输出信号。
所以,大家没事请多看看星空,你看到的每一点星光,都展示了我们这个虚拟宇宙的庞大无比的惊人算力。
不过,这也已经是非常优化的算法了。
你看我们的宇宙是如此的宏大,组成它的粒子数量自然也是浩如烟海,无数的粒子又无时无刻不在做复繁无比的运动,如果系统要关注每个粒子每一时刻的具体信息,再强大的计算系统也难以支撑。
所以,我们的宇宙不会关心这些粒子平时的任何运动行为,或者说宇宙并不关心物质的任何中间状态,宇宙只关心一件事情:观测行为。
只有有意识的观测行为才会需要宇宙向观测对象输出具体结果,而只有这一刻,宇宙才会动用它的庞大算力来计算应该输出些什么。
好了,到了这里,我们可以说我们已经从虚拟世界的视角破解了那个细思极恐的延迟选择实验了。
我们现在知道在延迟选择实验里,光子发射后不管科学家们怎么把路径上的透镜倒来插去,系统最终只会以观测前最后时刻的路径情况来呈现结果,所以哪怕科学家们刚刚在前一个普朗克时间才插下半透镜,光子依然会按两条路径瞬间完成计算来呈现出干涉结果。
这个虚拟世界版本的解释维护了神圣的因果律,维护了我们一贯依赖的思维逻辑的直觉,因果律在我们的虚拟世界里依然有效,之前的错觉只是我们对系统背后的运行机制的错误理解造成的。
不过,如果这个宇宙系统是为了假装光子的确在飞跃遥远的距离的话,那它假装得并不成功,至少在因果律上就露出了破绽。
不过这个破绽,反而吓到了我们的大科学家们,因为他们一直以为我们的世界是客观实在的,他们既不愿意否认实在性,又不愿意否认因果律,于是只好挖空心思地去想出了很多匪夷所思的解释,诸如平行世界理论、意志决定论、时光倒流等等,而那些复杂无比的解释也都非常晦涩难懂,远远超出普通人的理解范畴,这些高深的涵盖物理和哲学的玄妙理论自然也成为了普通人理解量子理论的鸿沟壁垒。
幸好我们发现,当换成用虚拟世界的视角来审视这些现象的时候,理解门槛顿时降低了,甚至连一个普通的中学生都能轻松弄懂这些逻辑。
现在的年轻人们本来都是用着网络,玩着游戏长大的,从小也都多少学习过一些编程知识,所以这些虚拟世界的算法逻辑让他们理解起来几乎毫无障碍,这远比什么多宇宙理论之类的更平易近人不是吗?
其实谈到这里,大家会发现一个问题。既然我们可以用虚拟世界的假设来看待现实,那么创造这个世界的人为什么要留下这些破绽呢?为什么不能做到天衣无缝,让微观和宏观规律得到统一呢?
其实这种问题你找个码农问一问就知道了,他们会觉得这些做法非常自然。
为什么?
因为设计任何软件都要尽量合理地节省计算资源啊!
对啊,各种诡异的量子行为的背后的原因似乎都是为了节省计算资源。
如果我们的世界是某个游戏公司制作的,你去问问这个游戏团队的技术总监:
为什么不事先在地图上把怪刷好啊,非要有玩家进去再刷?
因为要节省资源……
为什么要制造一些不可区分的道具啊,不能所有道具都有唯一的 ID 吗?
因为要节省资源……
为什么粒子的自旋值每次都要复位啊,不能记录下来吗?
因为要节省资源啊……
为什么粒子非要等观测的时候才确定状态啊,不能事先就生成好吗?
还是因为要节省资源啊同学,这个宇宙场景很大的,我们哪能做到把全宇宙里所有粒子在每一个普朗克时长的状态都计算出来啊,这些海量的粒子的代码每执行一次都要消耗大量的计算资源,既浪费也没有必要,你要看哪个我就算哪个不就完了,只要你不认真琢磨,看起来和全算状态其实没啥区别。
而且,支撑宇宙运转的主机很强大的,绝对不会在你飞快跑动的时候让你看到正在渲染的色块。当然前提是你别跑太快了,所以我们要把这个世界的最大运动速度限制在光速以内。
这是不是很符合一个码农,一个程序员的想法?
天啊,我们是不是无意中发现了世界的什么真相!
好吧,等我们震惊一会吧,不过震惊完,我们还要继续前进,去探索量子世界更为有趣的现象。大家也最好应该习惯这种震惊感,因为未来我们还将不断地展现这个世界所蕴含的可能性,让大家慢慢见识到量子世界背后所隐藏的各种更加令人震惊真相。
那么,还是让我们随我们的量子观光列车继续前进吧,前面可能有更加奇幻的风景。
之前我们已经快速的见识了两个有趣的量子实验,了解了不少量子的习性特点。但如果我们想更深刻的理解量子世界的奥妙,需要学习一些更基础的概念,所以后面章节我们将真正去接触量子的最底层的核心理念,一起参透量子世界的深层规则。
下一站,我们要像拆解沙盒游戏一样,看看世界究竟是怎么构成的。
备案号:YXX1b0MyD0CdeBlMoCZ2l5