W当你遇到那个特别的人时,这是一次偶然的相遇,还是有更深层次的原因?昨晚那个奇怪的梦是你大脑突触的随机漫步还是它揭示了你潜意识深处的某些东西?也许梦是想告诉你一些关于你未来的事情。也许不是。一位近亲患上了一种致命的癌症,这一事实有着深远的意义,还是仅仅是他的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)各自制定了一种衡量字符串复杂性的方法。他们的想法被称为柯尔莫戈罗夫复杂性理论或算法信息理论。他们假设一个字符串的复杂程度相当于能产生该字符串的最短计算机程序的长度。也就是说,取一个字符串并查找产生该字符串的短计算机程序。程序是字符串的描述类型。如果这类最短的程序非常短,那么字符串就有一个简单的模式,不是很复杂。我们说字符串“几乎没有算法内容”。相反,如果需要一个很长的程序来生成字符串,那么字符串就会很复杂,并且“有更多的算法内容”。对于任何字符串,必须查找生成该字符串的最短程序。这个程序的长度被称为字符串的Kolmogorov复杂度。
让我们看看以上三条线。前两个字符串可以用相对较短的计算机程序来描述:
1.打印“100”30次。
2.打印前25个素数。
第一个字符串的Kolmogorov复杂度小于第二个字符串的Kolmogorov复杂度,因为第一个程序比第二个程序短。第三根弦呢?这个字符串没有明显的模式。然而,有一个愚蠢的程序输出这个序列:
3.打印“38386274868783254735796801834682918987459817087106701409581980418”
虽然这个程序可以完成这项工作,但它不是很令人满意。也许有一个较短的程序显示字符串具有模式。当生成字符串的最短程序只是“打印字符串”时,我们说字符串非常复杂,并且没有已知的模式。缺少任何模式的字符串称为random。虽然我们没有看到任何模式,但仍然可能有一种。在数学中,就像在生活中一样,我们面临着许多看似随机的模式。
我们可以尝试使用现代计算机的惊人能力来找到一个模式和一个最短的程序。如果有一台计算机可以简单地计算任何字符串的柯尔莫戈罗夫复杂度,那不是很好吗?这台计算机将接受一个字符串作为输入,并输出能产生该字符串的最短程序的长度。当然,有了人工智能、深度学习、大数据、量子计算等最新的计算机工具,创造这样的计算机是很容易的。
唉,这样的电脑是不可能存在的!尽管现代计算机功能强大,但这项任务无法完成。这是数学逻辑中最深奥的定理之一的内容。基本上,这个定理说的是弦的Kolmogorov复杂度是无法计算的。没有机械装置来确定产生给定字符串的最小程序的大小。这并不是说我们目前的计算机技术水平不足以完成手头的任务,也不是说我们不够聪明来编写算法。相反,它证明了描述和计算的概念表明,没有这样的计算机可能执行每一个字符串的任务。虽然计算机可以在字符串中找到一些模式,但它无法找到最好的图案我们可能会找到一些输出特定模式的短程序,但可能存在一个更短的程序。我们永远不会知道。
证明序列的Kolmogorov复杂性是不可计算的,这有点技术性。但这是一个矛盾的证明,我们可以通过观察两个可爱的小悖论来了解它是如何起作用的。
有趣的数字悖论围绕着所有自然数都是有趣的这一主张展开。1是第一个数字,这很有趣。2是第一个偶数。3是第一个奇数素数。4很有趣,因为4=2×2和4=2+2。我们可以继续这种方式,并找到许多数字有趣的性质。在某个时刻,我们可能会得出一些似乎没有什么有趣性质的数字。我们可以把那个号码叫做第一个没意思的号码。但这本身就是一个有趣的特性。总之,这个无趣的数字其实很有趣!
我们永远不会知道我们找到的模式是不是最好的。
Kolmogorov证明中的思想也类似于Berry悖论中关于描述大数的思想。注意,你使用的单词越多,你能描述的数字就越大。例如,用三个词你可以描述“一万亿”,而用五个词你可以描述“一万亿”,它要大得多。现在考虑以下短语所描述的数字:
"不能用少于15个单词来描述的最小数字"
这个数字需要15、16甚至更多的单词来描述。它不能用12个词,13个词,或14个词来描述。然而,有一个主要问题:上面的短语只用了12个单词描述了这个数字。我们对号码的描述与号码的描述不符。这是一个矛盾。
在有趣的数字悖论和贝里悖论中,我们通过假设有一种确切的方式来描述某事物,从而得出了矛盾。类似地,Kolmogorov复杂性不可计算的证明源于这样一个事实:如果它是可计算的,我们会发现一个矛盾。
柯尔莫戈罗夫复杂度是不可计算的,这是纯数学的结果,我们不应该将这个原始领域与更复杂、更混乱的现实世界混为一谈。然而,当我们思考现实世界时,柯尔莫戈罗夫复杂性理论有一些共同的主题。
很多时候,我们面对的是一些看起来完全混乱的东西。这种随机性令人不安,因此我们寻找一种模式,以消除一些混乱。即使我们找到了一个模式,也不清楚这是不是解释我们所看到的最好的模式。我们可能会问自己,是否存在一种更深层次的模式,可以提供更好的解释。柯尔莫戈罗夫复杂性理论告诉我们,在最深处,并没有确定的方法来确定最佳模式。我们永远不会知道我们找到的模式是不是最好的。
但这使得搜索永远有趣。根据定义,如果某件事需要更多的思考,那么它就是有趣的。一个显而易见且完全理解的事实不需要进一步思考。6乘7等于42这一事实完全是可以理解的,也没有意思。当我们对想法不确定时,我们需要确认并思考它们。寻找更好的模式总是很有趣的。
我们想知道我们周围的世界是有意义的、有目的的、有意义的。
在现实世界中有一个额外的复杂性。然而在字符串和计算机程序的世界里是没有错误的,在现实世界里,我们可以,也确实会犯错。我们可以很容易地看到某个程序是否输出了一个字符串。虽然我们可能无法确定打印某个字符串的最佳程序,但我们可以确定程序是否打印所需的字符串。相比之下,现实世界要复杂得多。我们可以认为自己认识到了某种模式,但事实上,我们错了。
现在,我们对意义探索的理解开始走到一起。我们厌恶随机性和爱模式。我们的生物学程序是找到一些模式来解释他们所看到的。但我们永远无法确定我们确定的模式是否正确。即使我们能以某种方式确信我们没有犯错误,并且我们展示了一种计算机般的完美,但仍然可能有更深层次的真相需要发掘。这种紧张有助于推动我们对文学、戏剧和电影的热爱。当我们读小说或看戏剧时,作者或导演向我们展示了一系列具有共同主题、模式或道德的事件。文学、戏剧和电影为我们提供了一种愉快的方式,使我们摆脱我们周围现实世界中通常无法理解、毫无意义的混乱。真正优秀的文学作品走得更远,给我们留下了许多解释的可能性。我们面对的是科尔莫戈罗夫复杂性的不可计算性。
这种紧张感也决定了我们如何与自己的生活打交道。当我们穿越生活中看似随机的事件时,我们在寻找模式和结构。生活充满了“起起落落”。有坠入爱河的快乐,有和孩子一起咯咯笑的快乐,有完成一项艰难工作时的成就感。还有关系破裂的痛苦,努力完成任务失败的痛苦,亲人去世的悲剧。我们试着弄明白这一切。我们厌恶那种完全随机的感觉,厌恶那种认为我们只是在遵循混乱的、习惯性的物理定律的想法。我们想知道我们周围的世界是有意义的、有目的的、有意义的。我们想要一个神奇的生活故事,所以我们给自己讲故事。
有时这些故事完全是假的。有时我们对自己和周围的人撒谎。有时我们识别的模式是正确的。但即使故事是正确的,也不一定是最好的。我们永远无法知道是否有更深刻更准确的故事。随着年龄的增长和厌倦感的折磨,我们对宇宙有了一些以前从未见过的见解。我们找到更好的模式。也许我们能看得更清楚。也许不是。我们永远不会知道。但我们知道,搜索是永远不会结束的。
Noson S.Yanofsky拥有博士学位。来自纽约城市大学研究生中心的数学。他是纽约城市大学布鲁克林学院计算机科学教授。除了撰写研究论文外,他还与他人合著计算机科学家的量子计算和作者理性的外部界限:科学、数学和逻辑不能告诉我们的东西。诺森与妻子和四个孩子住在布鲁克林。








