灭霸打了响指以后,宇宙的生物多长时间会恢复到之前的状态?
如果你不理解混沌,你一定觉得这个问题很简单,但混沌理论告诉我们,也许全球最聪明的科学家也难以给出精确答案。
为了让你理解这个复杂的问题,我们可以从一个最简单的小学数学题开始说起。
假设一个岛上有两只兔子,它们在一年之内会生出四只兔子,然后死掉。这四只小兔子在一年之内会长大,第二年生出八只兔子,然后死掉。问经过三年以后会有多少只兔子?你回去问自己上小学一年级的孩子,相信他很快就可以给你算出来。第一年有四只兔子,第二年有八只兔子,第三年有16只兔子。这是一个线性系统。
虽然兔子总数是倍增的,但是如果我们只考虑这一代兔子和下一代兔子之间的关系,无疑是一条直线。因为兔子数量每年增加2倍,所以我们得出这样的一个公式,下一年兔子的数量等于2乘以今年兔子的数量。
很显然这个二就是增长率。我们人类的大脑很容易理解,线性系统结果也很容易计算。你可以随便更改初始兔子的数量,或者修改增长率的数字,并不会给计算带来困难。所以问题似乎很简单,兔子很快就会填满宇宙,但现实世界并不是这样的,岛上的资源有限,所以兔子的数目不会永远增长下去。为了稍稍接近一点现实,我们把这道题稍微修改一下,增加一个环境的种群承载数量。当兔子的数量接近这只生活空间变小,资源供应紧张,兔子的数量增长就没有那么快了。所以我们可以用现有的兔子数量除以种群承载数量,得出资源被占用的情况,然后再用一减去这个数值就得出剩余的资源供应量。我们把这个数加到原来的公式中,作为外部环境对兔子数量的影响,于是原来的公式就变成了这样。
现在我们问兔子的数量变化会是什么样子的呢?就这一点点修改,相信你家小朋友已经搞不定了,所以我们来帮他一下。为了快速得到结果并形象的向你展示结果,我们可以使用来帮忙,让他帮我们计算并且编写代码。
展示效果很快,AI就写好了一大段代码,我们来运行一下看看。
你可以看到A帮我们生成了一个网页,展示了图表,并贴心的提供了修改数值的功能。
这个图表展示了兔子数量随时间的变化,你可以看到一开始几年兔子的数量急剧上升,但是当数量接近承载能力一半的时候,就开始缓慢增长了。那我们来修改承载能力看一看,你看到了吗?不管怎么修改,数值变化趋势都是一样的,兔子数量会在几年或者十几年内迅速接近承载能力的一半,然后就逐渐停下来了,变化非常有规律,所以灭霸你可能不用太担心,宇宙中的兔子永远不会变得太拥挤,但是作为兔子你可能并不满意,你想占领整个宇宙怎么办呢?
是不是因为增长率太慢,我们大干快上好不好?所以我们决定帮一下兔子,我们来修改一下增长率,看看会发生什么。我勒个乖乖,你看到了一开始变化不大,但随着增长率一点一点变大,曲线后面还是出现波动了。兔子总数的确增加了,但是随着增长率达到3.1,曲线固然在两个值之间周期性变化。也就是说兔子总数开始一会儿变高,一会儿变低,达到一个高点以后一定会大量死亡,造成总数下跌。
跌到一个值以后就会重新恢复增长,恢复到之前的数量,然后重新开始大量死亡,总数始终在这两个值之间变化。我们再来增加一下,到3.5时,兔子数量开始在四个值之间周期性变化,在接近4的时候,数值忽然开始上蹿下跳,毫无规律可言了。
兔子数量可能会在一瞬间冲上环境承载的极限,然后在下一刻就会死掉,绝大多数直接跌入谷底。所以灭霸先生如果你真的要效率更高的毁掉宇宙中的生命,其实不用费心找什么宝石让生灵们都大干快上就行了。
虽然随机毁掉一半生命的目的达不到,但让整个宇宙生灵涂炭肯定是没问题的那画面美的你都不敢看好吧?
你可能觉得这也没什么,无非就是变化没有规律。但这个式子这么简单,只要给一个初始的兔子数量,我们还是可以准确的计算出某一年兔子的数量的。这怎么可能难得住科学家,你说的没错,现在让我们忘掉兔子,仅仅把它看成一个单纯的数学公式,这样我们就可以把数值做非常小的一点点修改,让你看看会发生什么。我们在二的后面加上0.0000000001,你看到了什么?没错,这100亿分之一的微小变化,后面的曲线就开始剧烈震荡了。
初始值的微不足道的一点点波动,后面的数值就完全大相径庭。这意味着什么?初始值的微小变化会极大的影响后面的结果。
如果这是一个科学实验,你测量的初始值存在100亿分之一的误差,后面的预测值就完全不是一回事了。而这种100亿分之一的误差在实际的测量中是难以避免的。
就算你观测的非常精确,从数学角度来说你也做不到精确。因为这世界存在大量的无限循环小数和无限不循环小数,你不可能一直写下去,总要截断到小数点后多少位,这导致我们根本无法去到精确值。
所以当你每次截断小数点就会创造出完全不同的结果,真是相当amazing啊。
恭喜你发现了混沌。
刚才我们给你演示的这个公式就是复杂系统中大名鼎鼎的罗辑思蒂印射。
只不过在数学中它被归一化成了更抽象的形式。因为罗辑斯蒂印射陷入混沌以后毫无规律可言,所以在计算机科学中它也被用来生成尾随机数。但逻辑斯蒂印射并不是特例,它之所以如此诡谲变幻,是因为它存在递归的过程。下一年的数据不断的调用上一年,然后又被下一年调用。而这个过程中存在正反馈和负反馈,导致数据一开始上升,接下来就会下降。
科学家已经证明,凡是存在类似抛物线的这种单峰曲线,只要不断递归调用,就会呈现出混沌变化。
在眼界中,这种东西太常见了,此刻的所有东西都是上一瞬间的结果,而这些结果又会成为下一个瞬间的所有初始条件。所以这意味着什么?几个世纪以来,科学家所笃信的还原论的观点是完全不靠谱的。在一个混沌系统中,整体并不等于部分之和。一个事件我们知道了所有的初始条件,也无法去预测结局。
那个简单的、线性的、理想化的世界只存在于科学家的大脑中,这样的世界在现实中并不存在。曾经科学家认为我们无法预测未来,是因为我们无法精确知道现实世界的每一个变量。但逻辑思蒂映射太简单了,它只有一个初始时,一个变量,一切再清楚不过了。就是这样简单的系统却也会在某种条件下进入混沌。这告诉我们,混沌的产生并不是因为我们对系统了解不足。所以也不要幻想着有一个全知全能的麦克斯维妖就能够精确预言未来的一切。
当然,混沌系统并不是毫无规律可言,某些一谈混沌系统就陷入不可知论,大谈未来不可预测。
所以今天的努力毫无价值。不如躺平的人,不是借题发挥带节奏,就是望文生义,胡乱解释。
今天还是让我们来带你看看真正的混沌系统是什么吧。
回到AI生成的图,你可能已经发现了,随着我们修改增长率的值,种群数量开始出现周期性变化。[
7:23.340-7:27.050]一开始是单周期数值是在两个不同的值之间变化,然后是四个值、八个值,而且这种变化的间隔越来越短,这里面有什么规律吗?
为了探究这一点,我们让腾讯元宝再帮我们生成一张新图看看随着这增长率变化,种群数量是在哪些值之间震荡的。
这个图可能是有难度的。A需要回溯之前的描述,精确理解种群数量、震荡过程等专业术语,然后迭代计算几千次,并理解我们想要的数据是离散的,很快它就理解了我们的意思,并生成了可以运行的代码。
你可以看到,一开始当增长率比较低时,种群数量会收敛到环境承载数量的一半,然后逐渐向上。也就是说随着增长率提升,种群的最大数量是上升的。
但是当增长率达到30,数值忽然分叉了,种群数量开始在两个值之间周期性变化,在3.45左右再次分叉,开始在四个值之间周期变化,然后到3.54左右变成了八个值。接下来是16个值,32个值,这些周期性出现的值被称为吸引子。你可能已经发现了,随着值不断的分叉,吸引子会以2的倍数不断倍增。这种吸引子不断倍增的规律叫做倍周期规律。
而从图上你也看到了,它们倍增的间隔也会越来越短。20世纪70年代有一个叫米切尔杰伊费根鲍姆的物理学家试图计算这个变短的规律。他用上一个间隔除以下一个间隔,发现除出来的数约等于4.6692016。所有出现被周期规律的方程,这个值都是4.6692016。这居然像真空中的光速一样是一个常数。后来这个数就被称为费根鲍姆常数。
在费根鲍姆常数下,每个倍增的间隔只有之前的四点6692016分之1,所以这种增长显然存在极限。我们让元宝帮我们计算一下,元宝很快给出了答案,在3.569946附近,吸引子的数量就趋向于无限大了。这说明当增长率达到3.569946时,系统就不再出现周期性变化了。学过极限概念的小伙伴都知道,此时吸引子的数量是无穷无尽的,在这种情况下我们就无法预知它的变化了,种群数量进入混沌状态。
不过你也看到了,虽然系统已经进入混沌状态,但数值并没有分布在整个区域。很明显这些空白的地方是不会出现数值的。这种吸引子被称为奇异吸引子。新因子虽然无限多,却不会铺满数轴。
为什么有限的空间中存在无限的东西?为了给你解释这个问题,我们放大一下图表给你看。你会发现更有意思的东西,右侧小的分叉和大的分叉形态上居然是一样的,只不过更小一些。这是什么?对复杂系统有一定了解的小伙伴可能已经脱口而出了,没错,就是分型。
分型是本诺维特根斯塔1975年提出的概念,简单来说就是一种几何上的自相似型。
比如这个图,你把它不断放大,会发现它的局部和整体是一模一样的。整个图形就是由更小的字己组成的图形,永远都在更小的局部重复自己。这个图形叫做曼德勃罗吉,它看起来如此复杂,但却是基于一个非常简单的数学公式。
我们只需要把它放到负平面中不断迭代运行,最后你就会得到这样的图形。在自然界中,分型是无处不在的,植物的叶脉、鸟类的羽毛,你的血管和肺泡都是分型结构。
显然对生物体来说,分型是它们构造自己身体的重要方式。分型有一个特点,因为它可以无限的在更小的局部中重复自己,所以它可以在有限的范围中创造无限。
现在我们在罗辑斯蒂映射中也看到了这种分型结构,正是靠分型奇异吸引子可以在有限的空间中创造出无数个吸引子,它们的分布依然是分型的,你放大任何一段数据会看到更多的分型结构,它们在更微观的尺度上,在数轴上的分布和更大尺寸上的一模一样。
举个更容易理解的例子,就像0.9后面可以有0.99,0.999、0.9999,0.999991样无穷无尽。
你可以看到在系统出现混沌之后,在小的分型结构中又会出现单周期。然后是两个吸因子、四个吸因子、八个吸因子,最后再次进入无穷大,进入混沌。接下来再次循环,直到接近4的时候,数值覆盖了整个区域,进入完全的混沌状态。现在你已经从一个最简单的模型中了解了混沌的产生过程。首先系统会稳定在一个状态下,随着参数值的变化,系统会像钟摆一样在两个吸因子之间摇摆,进入周期循环。接下来吸因子数量会开始倍增,系统会遵循倍周期规律,以贝根鲍姆常数的速度迅速向前发展,最后在吸因子数量达到无限大时进入混沌。
目前为止,我们已经知道进入混沌的过程是有规律的了,但混沌本身有规律可循吗?
1961年,美国气象学家爱德华洛伦兹在研究天气预报时发现一个很严重的问题。当他把天气的初始值做一个小小的四舍五入,比如把0.5061274舍5入为0.506,预测结果就会出现非常大的差别。
他把这种现象做了非常深入的研究,为了让大家形象的理解,这种扰度会给天气预报带来多么不可预估的结果,他给这种现象起了一个很形象的名字,蝴蝶效应。一直在巴西的蝴蝶舞动翅膀就可能引起德克萨斯的一场龙卷风。现在当你已经了解了罗辑斯迪映射,你就会觉得这种现象并没有什么稀奇的,毕竟罗辑斯迪映射只是一个非常简单的方程,当它陷入混沌时,一个初始值的修改都可能让它的结果大相径庭。更何况大气这种复杂的系统,它每时每刻都在以上一个瞬间作为初始值向前演化,描述这种变化的方程更是复杂的多。这样复杂的系统要是不陷入混沌才是奇了怪的。但问题在于,混沌系统真的毫无规律可言吗?三体系统真的会陷入崩溃吗?一只巴西的蝴蝶扇动翅膀,真的能够在德克萨斯引起一场龙卷风吗?
1972年洛伦兹老爷子在美国科学发展学会上发表了一个演讲,演讲的题目就叫可预测性。一直在巴西翩翩起舞的蝴蝶能在德克萨斯州引起龙卷风吗?在演讲一开始,老爷子就开门见山的说,我主张多年来微小的扰动既不会增加也不会减少诸如龙卷风之类的各种天气事件发生的频率,他们最多只能改变这些事情发生的前后顺序。为了证实这一点,爱德华洛伦兹设计了一个非常简单的模型,他只研究一种最简单的大气现象热对流,并把其中的方程和变量简化、简化、再简化,最后只剩下三个微分方程和XYZ3个变量。我们可以认为X代表温度,Y代表风速,Z代表湿度,就可以把某一个时刻的空气状况放到一个相空间中,比如现在的温度是25度,风速是每秒3米,湿度是50,就可以放到这个位置。然后下一刻温度变成了24度,风速变成了每秒2米,湿度变成了49。它就会来到这个位置,把这些点形成这些连线,我们就可以直观的看到天气随时间演化的过程了。现在让我们再次用腾讯原宝帮我们计算一下。把这三个公式的截图发给它,让它迭代计算,并把计算结果做成可视化的代码展示出来,你看看会发生什么。随着不断迭代计算方程,在象空间中画出了美丽的线条。线条的运动并不是完全杂乱无章,它逐渐围绕着两个圆点,在三弟空间中形成了一个类似蝴蝶的形状。这些轨迹画出了无数个吸引子,它们会在这个蝴蝶形的空间中无限运动下去,但是永远不会重复。它们是奇异吸引子,就像我们前面说的,它们是分型结构,数量无限,却只有在有限的区域出现。
所以你也可以想象,你放大任何一个区域的线条,都会看到更多的线条,线条在更小的尺度上重复着一样的形态,就像逻辑思蒂映射呈现的分形一样。洛伦兹说,这种象空间的运动轨迹都是相似的,他们只会在奇异吸引子下运动,因此整个系统形成的图形是可预测的。但是随着初始值的变化,这些轨迹画出的先后顺序却会完全不同。有可能这次先在左侧画圈,然后跳到右侧,下一次修改一点点初始值,它就先进入右侧画半天圈以后才进入左侧。这就是他所说的微小的扰度,既不会增加也不会减少诸如龙卷风之类的各种天启事件发生的频率。他们最多只能改变这些事情发生的前后顺序,更重要的是因为吸引子的限制,天气数值不管运行多长时间,都只会在这个蝴蝶形的区域中运动,不会忽然间跳到其他区域去。这说明什么?一个混沌系统也是稳定的,并不会出现完全不可预测的结果。
所以请放心,虽然存在蝴蝶效应,但它并不会引起巨大的风暴。同样我们太阳系虽然是一个多体系统,混沌不可预测,但它依然会稳定的运行几十亿年,不会因为混沌而忽然崩溃掉。这似乎应了我们小时候被烂的一句话,偶然是必然的。那啥必然是偶然的,我背不过的,你们自己背去吧。既然如此,我们为什么还要研究混沌?那是因为单周期背周期混沌这一系列变化左右着我们周围的一切,水流、大气、电流甚至生命,混沌可能是我们这个世界如此复杂的原因,作为我们的粉丝,我想你可能看过我们关于熵增的那一系列视频,不知道你有没有想过,在一个不断熵增的宇宙中,简单是如何孕育出复杂的?
既然世界的混乱程度在不断增加,你在大自然中目力所及之处,这瑰丽凡腐的花纹,这精妙绝伦的结构,这生生不息的万物,以及你那颗粗密绝顶的大脑,这些令人叹为观止的有序系统,是如何自发的?从一片混乱中产生出来的混沌,正是解开这悖论的钥匙。
现在让我们开始。1951年苏联有一个叫别洛索夫的化学家,在研究生物能量代谢的过程中,发现了一种奇怪的化学现象。他发现当他把几种不同的化学物质按照特定的顺序混合在一起时,溶液的颜色出现了奇怪的变化。一开始溶液是黄色的,然后会变成透明的颜色,接下来会重新变回黄色,再重新变回透明,颜色会一直在这两种颜色之间震荡,就像钟表一样准确。
他发现了第一种分子中,在此之前人类从来没有发现过这种现象。因为熵增定律告诉我们,任何反应最后都会停留在一种平衡态,在没有任何外界能量输入的情况下,反应是不可能逆向进行的。已经变黄的溶液不可能重新变成透明,变成了透明的溶液也不可能重新变黄。别洛索夫知道自己搞出了大发现,赶紧写了一篇论文投出去了。结果可想而知,他的论文不但没有发表,还得到了大家的嘲笑。哥们儿,你这玩意儿是不可能的。你难道没有学过热力学第二定律吗?
现在我知道分子中并不违反热力学第二定律,它只是热力学第二定律的另一种表现形式。后人把这种反应进行抽象,形成了一个模型,被称为俄勒冈振子。它总共大概涉及ADX6种物质。为了不把你绕晕,我们就不练反应过程了。之所以会出现这种化学震荡,原因在于反应过程中有交叉催化的现象,也就是说X会产生Y而Y反过来又会产生X所以它本质上是一种自我加强和自我抑制。
如果你还记得前面的逻辑思蒂映射,你一定还记得我们说过逻辑思蒂映射之所以出现被周期,是因为它在迭代中自我加强和抑制自己。
所以这个俄勒冈镇子中是不是也会有类似罗辑斯蒂映射的形式呢?没错,我们保持A物质不变,缓慢增加B物质的量。一开始就像普通的化学反应一样,X Y两种反应物的浓度会稳定在一个定态。但是当B的浓度达到某一个临界值,变化出现了。[
19:18.550-19:22.350]这是我们在腾讯元宝里输出好的代码来看看这个变化过程。你可以看到数值迅速离开了定值,在相谱中画出了一个长长的一条线,然后绕回来最后变成了一个圈。这是什么?这是一个单周期循环。
没错,当B物质的量达到一个阈值以后,就像逻辑思D映射一样,系统会进入周期循环。如果我们精心设计参数和方程,系统接下来还会进入被周期,最后陷入混沌,是不是很奇妙?同学们即使在没有外界能量输入的情况下,只是反应物浓度的不同,不同的化学物质就有可能形成各种的周期震荡,这是相当的。
当然在无机化学中要创造这种震荡是很困难的,需要精心设计反应物和反应过程。
但是在生物体中创造这种震荡简直不要太简单,这主要是因为生物体中存在着大量催化和抑制的过程,d na可以制造出蛋白质,蛋白质又可以制造出d na甚至在早期的生物中,R na可以自催化或者相互催化。
所以当地球的海洋深处突变出数以万亿级可以自我催化或者相互催化的rna时,机缘巧合之下,某一种化学震荡就可能被创造出来。
而如果你看过我们这一期视频就会知道,产生相互催化的rna并不困难,而在现代的生物体中,这种周期震荡也不罕见。看我们前几期的小伙伴一定记得,睡眠就是起源于过氧化还原酶产生的化学震荡。
所以大胆一点说,复杂的生命过程本身就是各种化学周期震荡的组合。
了解腹裂叶变换的小伙伴可能知道,任何一个波都可以分解为无数正弦波的组合。
所以如果我们把生命过程看成一个无比复杂的化学震荡过程,这是不是意味着它本身就是由无数个不同周期的化学震荡叠加而成?这还没完,因为周期震荡只代表时间上的有序性。如果我们考虑到溶液扩散速度,化学震荡会在空间中创造出同样有序的造物,这就是别鲁索夫反应的空间板,当我们不进行充分搅拌,而是让物质自然扩散时,震荡过程就会在溶液中形成如此美妙的花纹。
看过上一期的小伙伴请发一个弹幕吧。它看起来像什么?正是这样的机制在胚胎发育中制造了我们的手指、我们的体积、我们的指纹和我们的毛囊。
所以再次重复上期说过的话,最简单的规则会创造出最惊人的造物。在被周期之下,单个震荡,多个震荡、无穷的震荡叠加在一起。也许生命本身就是一种混沌,但就像蝴蝶效应那迷人的图形一样,这种混沌却呈现出如此精妙的有序与和谐。
在视频中我们做了一个大胆的尝试,利用腾讯元宝带大家一起重新发现混沌理论中的几个重要原理。
上个世纪,当科学家通过几个方程推导出它们时,可能需要自己辛苦的计算,在大型机上做复杂的编码,最后在纸上画出模拟结果。
而现在有了AI我们很想挑战一下这个发现过程。而且最近腾讯元宝还升级了AI编程模式,会以双栏的形式显示,这样就可以在左侧跟元宝对话,在右侧实时显示元宝写的代码。
并且在本地程序中还贴心的打包了各类编程语言的运行环境,这样你就不仅可以做L编码,还可以轻松的运行Python、c加加C Java、vscpt go等各类编程语言,不需要专门部署。
点击预览就能看到代码效果,然后再根据运行效果指示元宝修改代码并重新运行,这样就可以不断优化代码了。
应该承认整个视频的制作过程中,我们还是提心吊胆的。因为万一我们设想的过程A并没有办法理解我们的意思,无法很好的完成计算编码和模拟实现,这个研究的过程就难以进行下去了。
没想到的是元宝的能力远超预期,你可以看到我们使用它完成了逻辑。
第四印射分型蝴蝶效应和俄勒冈镇子的计算推导和演示,真的给了我们很大的惊喜。甚至为了更好的带大家一起从零探索,我们在整个过程中并没有直接使用以及形成结论的专业术语,而是以一个小白的视角去要求。
比如逻辑思D映射的分叉图,我们本可以说请给我升一张逻辑4D映射分叉图,这样更便于完成任务,但我们偏不,我们说的是接下来我们需要看到兔子种群数量的周期变化规律。
所以在这种不断增长的信息下,我们甚至做了很多计划之外的事情。比如我们让AI做了右键框,选择放大分叉图的功能,以及自动放大异步加载数据等功能,这样大家就可以更直观的看到分叉图的分型结构了。
甚至在视频中我们没有展示生成过程的一些动画,其实也是直接在元宝里生成代码,直接运行渲染出来的。比如三体运动的动画、复裂叶变换的动画、兔子填满宇宙的动画,这些东西在之前可能需要三弟软件专业的可视化软件或者编写复杂的代码才能弄出来,没想到现在只需要就完全可以搞定了。
当然必须承认,有时候AI并不能第一次就输出你想要的代码。但学习一下甲方爸爸,反复提需求,虐他一下,最后总是能得到完美结果的。
我们知道看我们视频的小伙伴有很多是理工科的,学习中难免会有写代码、做模型可视化等需要,如果你有类似的场景,推荐你尝试一下。
我们的话题并没有完,毕竟到现在为止,我们只是看到了一些震荡,就算再复杂的波离有组织的生命看起来都还很远。从周期震荡到复杂的多细胞协作,这中间还需要跨越什么?本系列的下一期我们会继续复杂科学的内容,你会看到复杂的结构和功能是如何在简单的规则下构建出来的。
如果你喜欢这个话题,点个关注,下次不要错过哦。
这里是新石器公园,我们关注一切可能影响人类未来的科学和技术,并试图带大家一窥底层的原理。
如果你喜欢本期视频,欢迎点赞、投币加收藏。如果你对航天、人工智能、信息数据、生命科学、人机交互以及未来感兴趣,欢迎关注我们。
本期就到这里,很快回来,下次再见。