伊曼努尔·康德或许是现代最重要的哲学家,他痛恨决定论。面对宇宙发条式的运转,人类如何能抓住自己的命运呢?毕竟,人之所以是人,只是因为人类可以做出选择,选择正确的东西,让人类的行为合乎道德并意识到自己内心深处的人性。
如果有可能知道宇宙中每一个粒子的位置和速度,那么我们就可以非常精确地预测这些粒子的未来,进而预测宇宙的未来。——艾萨克·牛顿
从牛顿时代起,专业的思想家和非专业的思想家一样,一直在与决定论的想法斗争。对我们来说,被困在相对论的光锥里,这限制了我们对一切的了解。我们的大脑里充满了一台推理机,试图根据从外部实时流入的稀疏信息预测未来,决定论显然与我们的日常经验不一致。
我注意到即使是那些声称一切都是命中注定的人在过马路前也会看一眼。——斯蒂芬·霍金
决定论的含义通常被讽刺为从生活中吸取所有的自发性和选择。决定论是台球互相撞击。决定论已经过时了,就像时钟滴答滴答地走着。另一方面,自由意志是模糊的、令人兴奋的、戏剧性的。自由意志,就像黑色电影中的蛇蝎美人,因为它是如此的不可预测,所以是如此的吸引人。在我关于浪漫主义和分裂的大脑的文章中,我探索了浪漫主义时代的哲学家和艺术家是如何把生活描绘成一股不可靠的、无法控制的激流。继续抓住这个角度看世界,浪漫主义思想家认为迫切需要以某种方式摆脱决定论,而受制于知识:决定论暗示你可以什么都知道,并且知道一切都会非常无聊。
绝对决定论的假设是每一个科学探究的基本基础。——马克斯·普朗克
但与此同时,我们探究现实的科学模式表明,如果我们想要发现关于世界的任何客观事物,决定论的假设是绝对必要的。为了平衡这两种立场,现代人的头脑中存在着一种轻微的认知失调,这种认知失调源自于这两种看似不可调和的立场之间的摩擦。但我认为这并不是无心之失,科学实际上提供了一个视角,让我们可以把它们协调起来,接受决定论在技术上是正确的,但也看到在哪种意义上决定论并不重要。因为很多事情都太复杂了,无法事先知道。而生活,即使我们尽可能地模拟它,也总会找到办法逃避我们的掌控。
50年前库尔特·哥德尔证明了纯数学的世界是取之不尽,用之不竭的。——弗里曼-戴森
哥德尔定理是现代数学的肉中刺,它使希尔伯特雄心勃勃的希尔伯特方案(一个旨在解决数学基础危机的项目)戛然而息。
在图灵机的语言中,哥德尔定理被用一种更直观的方式描述为停机问题:这个问题是通过图灵机的描述和输入来确定程序是会停止还是会永远继续运行。图灵展示了一种通用的算法,可以判断所有程序在逻辑上何时停止,但这种算法是不存在的,而总有一些程序需要你一直运行到最后,才能知道它们何时或是否会停止。这个停止问题似乎是一个非常具体的问题,但重要的是要强调所有的计算都可以用通用图灵机的术语来表述,而且计算与我们想象的计算机在日常生活中的行为有关。沃尔夫勒姆阿尔法的创始人斯蒂芬·沃尔夫拉姆认为,所有的现实都是由简单的计算过程构成的,而停止的问题暗示了更多围绕他所说的“计算不可约性”的基本问题。
与图灵的中止问题类似,计算不可约性理论声称,并不是所有复杂的计算都允许一个更简单、简化的新公式。根据Wolfram MathWorld的说法,“虽然许多计算都有捷径,可以让它们更快地执行,但有些计算却无法提速。”不能通过任何捷径来加速的计算称为计算不可约。计算不可约性原理说,确定对计算不可约问题的答案的唯一方法是执行或模拟计算。
好消息是,我们永远无法预测一切。——Stephen Wolfram
科学是关于还原的。当我们建立世界模型时,我们试图在看似不相干的现象背后发现更简单的解释,并将它们简化为一个解释的模型。以达尔文的进化论为例:达尔文从简单的突变和选择中发现了难以置信的丰富的生命形式。但有时候,知道一种现象背后的解释只能让我们走这么远。
混沌理论经过很长的时间才得以形成,因为它往往以暴风雨天气箭头的形式出现,在我们的日常生活中一直陪伴着我们。但时至今日,在大学第一学期攻读自然科学的学生们仍然主要关注和谐的谐振子,或简洁的行星轨道微分方程,以便对数千年后的未来做出预测。只有在后来越来越深的研究,混沌理论才慢慢地被承认:从长远来看,即使我们对系统进行了描述,我们仍然可能不太真正地知道该系统将如何精确运行以及在何处结束。洛伦兹系统就是这样一个著名而简单的例子。它最初是由爱德华·洛伦兹在1963年发现的(他试图找到更好的天气模型),它很快成为混沌系统奇怪特性的一个受欢迎的例子。它是一个三维系统,这意味着你可以很好地绘制它,它在这个三维空间中描绘出一条曲线。系统的当前位置将决定它在下一步的位置,如果你不在每一个时间步长添加任何随机噪声,系统是完全确定的。但是,虽然它是确定性的,在某种意义上它仍然是不可能预测的。下面是一个简短的Python代码片段,它模拟了一个在4000步时间内初始状态为0的洛伦兹系统,绘制曲线并输出最终状态:
import numpy as npimport matplotlib.pyplot as pltfrom scipy.integrate import odeint
from mpl_toolkits.mplot3d import Axes3D#model parameters
rho = 28.0
sigma = 10.0
beta = 8.0 / 3.0
def f(state, t):
x, y, z = state # Unpack the state vector
return sigma * (y - x), x * (rho - z) - y, x * y - beta * z # Derivatives
state0 = [1.0, 1.0, 1.0] #initial state
t = np.arange(0.0, 40.0, 0.01) # number of time steps (here 4000)
states = odeint(f, state0, t)
fig = plt.figure()
ax = fig.gca(projection="3d")
ax.plot(states[:, 0], states[:, 1], states[:, 2])
plt.draw()
plt.show()
print(states[-1,:]) #print the final state
混沌系统的独特特性是,在某个时间点彼此非常接近的点将来会很快在非常不同的地方结束。用更专业的术语来说,系统的超对称性可以用系统的最高李亚普诺夫指数来描述,你可以把这个指数想象成一个点周围的微小环境在时间中扩散的速度。以两种非常接近的初始状态为例,在4000个时间点内跟随两种初始状态:Input state = [1.0, 1.0, 1.0]Final state = [-1.96, -3.67, 9.19]Input state = [1.0001, 1.0001, 1.0001]
Final state =[ 4.23, 0.64, 27.42]
在3D空间中,两种状态会在完全不同的位置结束。这与所谓的“蝴蝶效应”类似:蝴蝶的翅膀会给系统(比如世界)的初始状态带来微小的干扰。但事实是,世界是混乱的,这意味着这种微小的干扰可能会带来巨大的变化,而你等待足够长的时间后,最终的结局将是完全不同的(例如,蝴蝶造成的龙卷风袭击了你的城镇,带走了你的牛)。
事实证明,一种怪异的混乱可能潜伏在秩序的表象背后——然而,在混乱的深处,潜伏着一种更加怪异的秩序。——道格拉斯霍夫施塔特
然而,有趣的是,观察到这两个混沌轨迹看起来非常相似,但表现在不同的意义上,如此不可预测:
- 两个洛伦兹吸引子,由初始态[1.0,1.0,1.0](左)和[1.0001,1.0001,1.0001](右)生成。
混沌系统的伟大之处在于,你可以在它们内部拥有一种整洁的秩序,但知道这种秩序只会告诉你系统在一定程度上的行为。这又把我们带回了计算的不可约性,因为你可以看看洛伦茨方程和一组初始条件,但是你不能算出4000步之后系统的样子。找出答案的唯一方法就是一步一步地遵循这个系统,然后看看它会把你带到哪里。需要注意的是,计算时间不一定等于物理时间,而且计算是与底层无关的。但重点仍然是计算不能被简化成一种更简单的形式,如果我们认为现实是由计算构成的,如果你想知道未来会带来什么确定性,它确实必须从头到尾运行。
令人害怕的是,居然有这么多人相信科学。——Stephen Wolfram
科学就是把复杂的现象简化成更简单的结构。但是,对复杂性和混沌的研究表明,许多事情实际上是不可能减少的。许多系统都是如此,因此科学的问题应该是:我们能将哪些系统简化到足以进行可靠的长期预测。这不应该剥夺我们对科学力量的信任,而是要传达一幅更现实的图景,说明科学在原则上能实现什么,不能实现什么。有一种想法是,你需要拥有整个宇宙才能模拟宇宙,而现实中许多现象的混沌本质表明,从内部看,完全不可能弄清楚它将走的路线的细节。因此,从我们被卷入其中的认识论角度来看,生活仍然是一个正在展开的谜。我们试图了解它,却永远无法完全了解它。我认为,现实是如此地不可知,这是有一定意义的。也许这只是对现实的过度幻想的残留,但是在我看来,这使所有这些都变得更加令人兴奋:也许对所有那些同样具有浪漫主义倾向的,对确定论听起来很苛刻的人来说,这确实是一种安慰。不必从这一切的乐趣中解脱。