你遇到那个特别的人是偶然的相遇,还是有更深层的原因?昨晚那个奇怪的梦——是你的大脑神经元的随机漫谈,还是揭示了你潜意识中深刻的东西?也许那个梦试图告诉你关于你未来的事情。也许没有。你一个亲近的亲戚患上了恶性癌症,这有深刻的意义,还是仅仅是他 DNA 随机突变的结果?
我们生活在思考发生在周围的事件模式中。我们问自己它们是否只是随机的,还是存在某种对它们来说是独特而深刻的原因。作为一个数学家,我经常转向数字和定理来深入了解这些问题。碰巧的是,我从数学逻辑中最深刻的定理之一中学到了关于生活中模式意义的探寻。那个定理,简单来说,表明即使在原则上,也没有办法知道一个模式的解释是否是最深刻或最有趣的解释。就像生活一样,在数学中寻找意义没有止境。
首先,一些准备工作。考虑以下三个字符串:
1. 100100100100100100100100100100100100100100100100100100100100100100100
2. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
3. 38386274868783254735796801834682918987459817087106701409581980418.
我们如何描述这些字符串?我们可以像刚才那样简单地写下来来描述它们。但是,很明显,前两个字符串有更短的描述。第一个只是“100”一遍又一遍地重复。第二个模式只是列出了前几个质数。那么第三个字符串呢?我们可以通过直接打印字符串来描述它。但有没有更好、更短的描述?
随机性令人不安,所以我们寻找一种消除部分混乱的模式。
在 20 世纪 60 年代初,一位名叫格雷戈里·蔡廷(Gregory Chaitin)的美国青少年,世界著名的俄罗斯数学家安德烈·柯尔莫哥洛夫(Andrey Kolmogorov),以及计算机科学先驱雷·所罗门诺夫(Ray Solomonoff)独立地提出了一种衡量字符串复杂性的方法。他们的想法后来被称为柯尔莫哥洛夫复杂度理论或算法信息论。他们提出,一个字符串的复杂程度与其产生该字符串的最短计算机程序的长度成正比。也就是说,取一个字符串,寻找一个能产生该字符串的短计算机程序。该程序是字符串的一种描述。如果最短程序非常短,那么字符串就有一个简单的模式,不是很复杂。我们说这个字符串“算法内容很少”。相反,如果需要一个很长的程序来生成字符串,那么字符串就很复杂,“算法内容更多”。对于任何字符串,都必须寻找产生该字符串的最短程序。该程序的长度称为字符串的柯尔莫哥洛夫复杂度。
让我们看看上面的三个字符串。前两个字符串可以用相对简短的计算机程序来描述:
1. 打印“100” 30 次。
2. 打印前 25 个质数。
第一个字符串的柯尔莫哥洛夫复杂度小于第二个字符串的柯尔莫哥洛夫复杂度,因为第一个程序比第二个程序短。那么第三个字符串呢?这个字符串没有明显的模式。然而,存在一个愚蠢的程序可以生成这个序列:
3. 打印“38386274868783254735796801834682918987459817087106701409581980418”
虽然这个程序可以完成任务,但并不令人满意。也许有一个更短的程序可以表明这个字符串有一个模式。当生成字符串的最短程序仅仅是“打印字符串”时,我们就说这个字符串非常复杂,而且没有已知的模式。缺乏任何模式的字符串称为随机字符串。虽然我们看不到任何模式,但仍然可能存在一个。在数学中,就像在生活中一样,我们面临着许多看似随机的模式。

(图片来源:Pixabay)
Pixabay
(图片来源:Pixabay)
我们可能会尝试利用现代计算机的惊人能力来寻找模式和最短程序。如果有一台计算机可以简单地计算任何字符串的柯尔莫哥洛夫复杂度,那不是很棒吗?这台计算机将接收一个字符串作为输入,并输出可以生成该字符串的最短程序的长度。当然,有了像人工智能、深度学习、大数据、量子计算等所有新奇的计算机工具,创建这样一台计算机应该很容易。
唉,这样的计算机是不可能存在的!无论现代计算机多么强大,这项任务都无法完成。这就是数学逻辑中最深刻的定理之一的内容。基本上,该定理说字符串的柯尔莫哥洛夫复杂度是不可计算的。没有机械装置可以确定生成给定字符串的最小程序的长度。这并不是说我们目前的计算机技术不足以完成手头的任务,也不是说我们不够聪明写算法。而是已经证明,描述和计算的观念本身就表明,这样的计算机永远不可能对所有字符串完成这项任务。虽然计算机可能在字符串中找到一些模式,但它找不到最佳模式。我们可能会找到一个简短的程序来输出某种模式,但可能存在一个更短的程序。我们永远不知道。
证明序列的柯尔莫哥洛夫复杂度是不可计算的有点技术性。但这是一个反证法,我们可以通过看看两个有趣的小悖论来感受它是如何工作的。
有趣的数字悖论围绕着“所有自然数都很有趣”的说法。1 是第一个数字,所以很有趣。2 是第一个偶数。3 是第一个奇数质数。4 很有趣,因为 4=2×2 且 4=2+2。我们可以继续这样下去,并为许多数字找到有趣的性质。 at some point 我们可能会遇到一个似乎没有有趣性质的数字。我们可以称之为第一个无趣的数字。但这本身就是一个有趣的性质。总之,无趣的数字实际上很有趣!
柯尔莫哥洛夫证明中的想法也与贝里悖论(Berry paradox)中的想法相似,贝里悖论是关于描述大数字的。请注意,使用的词越多,可以描述的数字就越大。例如,用三个词你可以描述“一万亿万亿”,而用五个词你可以描述“一万亿万亿万亿万亿”,这要大得多。现在考虑由以下短语描述的数字:
“用不到 15 个词无法描述的最小数字。”
这个数字需要 15 个、16 个甚至更多个词来描述。它无法用 12 个、13 个或 14 个词来描述。然而有一个主要问题:上面的短语只用了 12 个词就描述了这个数字。我们对数字的描述违反了数字本身的描述。这是一个矛盾。
在有趣的数字悖论和贝里悖论中,我们通过假设存在一种精确描述事物的方法而得出矛盾。同样,证明柯尔莫哥洛夫复杂度不可计算源于这样一个事实:如果它是可计算的,我们就会找到矛盾。
柯尔莫哥洛夫复杂度不可计算这一事实是纯粹数学中的一个结果,我们绝不应将这个纯净的领域与更复杂、更混乱的现实世界混淆。然而,柯尔莫哥洛夫复杂度理论有一些共同的主题,我们在思考现实世界时可以借鉴。
很多时候,我们面对的是看似完全混乱的事物。这种随机性令人不安,所以我们寻找一种消除部分混乱的模式。如果我们确实找到了一个模式,并不清楚它是否是解释我们所见事物的最佳模式。我们可能会问自己是否存在一个更深层次的模式,能提供更好的解释。柯尔莫哥洛夫复杂度理论告诉我们,在最深层次上,没有确定的方法可以确定最佳模式。我们永远不知道我们找到的模式是否是最好的。
但这使得探索永恒有趣。根据定义,有趣的事物是需要更多思考的事物。一个明显且完全理解的事实不需要进一步思考。6 乘以 7 等于 42 这一事实是完全可以理解且无趣的。正是当我们对某个想法不确定时,我们才需要确认并思考它们。寻找更好的模式将永远是有趣的。
现实世界有额外的复杂性。虽然在字符串和计算机程序的领域没有错误,但在现实世界中,我们可以犯错误,也确实会犯错误。我们可以轻松地看到某个程序是否打印出某个字符串。虽然我们可能无法确定打印某个字符串的最佳程序,但我们可以确定该程序是否打印了所需的字符串。相比之下,现实世界要复杂得多。我们可能认为自己识别出了一个模式,而实际上我们错了。
现在我们对寻求意义的理解开始汇集起来了。我们厌恶随机性,热爱模式。我们天生就倾向于寻找解释我们所见事物的模式。但我们永远无法确定我们识别出的模式是正确的。即使我们某种程度上可以确保我们没有犯错误,并且我们表现出计算机般的完美,但可能仍然存在一个更深层次的真理等待发掘。这种张力有助于推动我们对文学、戏剧和电影的热爱。当我们阅读小说或观看戏剧时,作者或导演向我们呈现了一系列具有共同主题、模式或寓言的事件。文学、戏剧和电影为我们提供了一种愉快的逃避,让我们摆脱现实世界中通常难以理解、毫无意义的混乱。真正好的文学走得更远,并留下多种解读的可能性。我们面临着柯尔莫哥洛夫复杂度的不可计算性。
这种张力也定义了我们如何处理自己的生活。当我们穿越生活中看似随机的事件时,我们正在寻找模式和结构。生活充满了“起起落落”。有坠入爱河的喜悦,与孩子嬉戏的快乐,以及完成一项艰巨任务时的巨大成就感。也有关系破裂的痛苦,或在付出了巨大努力后任务失败的痛苦,或亲人去世的悲剧。我们试图理解这一切。我们厌恶完全随机的感觉,以及我们只是遵循混乱、习惯性物理定律的想法。我们想知道我们周围的世界有意义、有目的、有意义。我们想要一个神奇的生活故事,所以我们给自己讲故事。
有时故事只是假的。有时我们欺骗自己和身边的人。有时我们识别出的模式是正确的。但即使故事是正确的,也不一定是最好的。我们永远不知道是否存在一个更确切的更深层次的故事。随着年龄增长和遭受厌倦,我们对宇宙获得了一些以前未曾看到的见解。我们找到更好的模式。也许我们能看得更清楚。也许不是。我们永远不知道。但我们确实知道,这种探索保证永无止境。














