# 斯蒂芬·沃尔夫拉姆：元胞自动机、计算与物理

> 他谈元胞自动机与计算等价原理，试图用简单规则统一解释物理定律、复杂性与智能的涌现。

- 原标题：#89 – Stephen Wolfram: Cellular Automata, Computation, and Physics
- 期数：第 89 期
- 发布日期：2020-04-18
- 嘉宾 / 主题：斯蒂芬·沃尔夫拉姆
- 网页版：https://lexfridman-cn.pages.dev/ep/stephen-wolfram/
- 官方页面：https://lexfridman.com/stephen-wolfram/
- 精读字数：约 8122 字（阅读约 18 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

1984 年 6 月，斯蒂芬·沃尔夫拉姆（Stephen Wolfram）刚弄到一台高分辨率激光打印机，他把一批元胞自动机的演化图打印出来，随手挑了一张带上飞往欧洲的航班。那张图从顶部一个孤零零的黑格开始，往下跑了大概四百步，越往下越乱：左边还留着一点规律，右边全是一片看起来毫无道理的杂讯。

后来他把这台打印机搬到公司，用一台叫 Connection Machine 的巨型并行计算机，打印出几米长的超大图样，铺在地上拿尺子量。同事理查德·费曼（Richard Feynman）在旁边看了很久，终于把他拉到一边。

> 我只想知道一件事：你怎么知道这条规则会产生这么复杂的行为？（费曼）

沃尔夫拉姆的回答是：我不知道，我只是把所有可能的规则枚举了一遍，然后看到了这个结果。

费曼松了口气。他原以为对方手里握着某种自己没有的直觉。

这段对话里藏着整场访谈最核心的东西：有些东西没法靠聪明推出来，只能老老实实跑一遍。这条看起来平淡的结论，最后会一路推到宇宙有没有物理定律、人类能不能理解自己、以及我们和一块石头之间到底差在哪里。

## 八条规则，三十多年，没人能证明那一列不会重复

先把元胞自动机（cellular automaton）说清楚。最简单的一维版本：屏幕上一条横线，每个格子非黑即白。下一行的每个格子，颜色由它正上方那个格子，以及左右两个邻居决定。

三个邻居，每个有两种状态，一共八种组合。规则就是给这八种组合各指定一个输出，八位二进制数，转成十进制就是这条规则的编号。规则 30 是其中一条。

从顶部一个黑格出发，规则 30 往下长出一个三角形区域，左侧边缘还残留着一点可辨认的条纹，主体部分则乱得毫无章法。取中间那一列往下读，你会得到一串黑白序列，看起来和抛硬币没有区别。很长一段时间里，Mathematica 就用它来生成随机数。

麻烦在于：没人能证明它真的是随机的。

三十多年过去，沃尔夫拉姆把三个问题挂上了悬赏，每个一万美元，共三万美元。第一个，中间那一列会不会在某个时刻开始周期性地重复。第二个，中间那一列往下走，黑格和白格的数量是否各占一半。第三个最难表述：能不能用远少于 t 步的计算量，算出第 t 步中心格的颜色；或者证明无论怎么算都做不到。

三个问题至今无人拿下。

他还特意做了个反向实验。他想找一个看起来注定永远随机、但实际上会在某个时刻突然开始重复的规则，用来提醒大家别对规则 30 太有把握。他搜了上百万条规则，居然真的找到了一个。他管这叫「计算宇宙里的动物总比你聪明」。

## 计算是什么：从加法机商店说起

回到一百五十年前。那时候你想要一台加法机，就去加法机商店买；想要乘法机，就去乘法机商店。两种机器是两套完全不同的齿轮和连杆，谁也干不了对方的活。在这个层面，不存在一个统一的「计算」概念。

转折发生在二十世纪初。数学逻辑领域开始有人问：能不能造一个东西，表示任何合理的函数？早期尝试里有原始递归，结果失败了，有些很自然的函数它表示不了。

1931 年哥德尔（Gödel）抛出不完备定理。从后来的视角看，哥德尔做的事情本质上是把逻辑语句编译进算术：他说出「这句话不可证明」，然后把这句话变成一个关于整数的陈述。算术因此变成一台能表示其他所有东西的机器。

1936 年，图灵提出图灵机，丘奇（Alonzo Church）提出 lambda 演算。两人的出发点完全不同，形式也完全不同。真正让人意外的结果是：它们等价。接着寄存器机、各种其他形式化模型陆续出现，全部等价。

这件事的重要性在于，它本来可以长成另一个样子。加法机和乘法机就是不等价的，凭什么图灵的想法和丘奇的想法必须等价？

到上世纪七十年代，计算机科学界基本接受了「图灵机就是计算」。物理学家还在抵抗，理由是：宇宙里全是微分方程、实数、无穷多位数字，宇宙不是一台图灵机，图灵机只是我们在微处理器里造出来的一个小小特例。

沃尔夫拉姆八十年代的工作让这条分界线开始模糊。

## 复杂性不需要复杂的原因

他的发现很朴素：他去看那些规则极其简单的计算系统，结果发现规则简单到什么程度，和系统能产生多复杂的行为，几乎没有关系。

直觉上应该是这样：想要复杂的输出，你得有复杂的规则。要么规则本身复杂，要么初始条件里塞满信息。沃尔夫拉姆把初始条件压缩到一个黑格，规则压缩到八条，跑出来的东西依然复杂得没法分析。

这推出一个他称为「计算等价原理」（Principle of Computational Equivalence）的东西：任何一个按照规则运行的系统，只要它没在做显然简单的事情，它行为所对应的计算，在复杂度上都彼此等价。

换句话说，从你能想象的最简单的东西往上走，很快你就撞到一个天花板。天花板之上，所有东西一样复杂。

这个命题有个麻烦的认识论地位。沃尔夫拉姆自己把它类比成热力学第二定律：熵增到底是自然定律，是数学定理，是恰好对我们所见的系统成立，还是它本身就是「热」的定义的一部分？答案大概是这些都有。计算等价原理也落在这种混合地带，它差不多就是「计算」这个概念之所以能成立的原因，正因为存在这样一个跨系统稳定的东西，我们才能正经地谈论「计算」这个词，而不至于只能说「图灵机第三七八五号的计算」。

它不是定理。目前有的只是若干数学证据：一些最简单、最有可能具备通用性的规则，被证明确实是通用的。这构成一种归纳意义上的支持，跟所有自然科学一样。

## 计算不可约：为什么未来没法跳着算

计算等价原理有一个直接推论，叫计算不可约性（computational irreducibility）。

传统科学的整套方法论建立在「跳着算」上。我们写下方程，解出来，就知道系统未来会怎样。我们不需要把每一个中间步骤都走一遍。牛顿力学之所以强大，就在于它允许这种压缩。

计算不可约性说的是，很多系统不允许。想知道它们会做什么，只能一步一步跑。

为什么？因为如果有一个更聪明的东西能跳着算，那个东西本身也是一台计算机，而按照计算等价原理，它和它想预测的对象在计算复杂度上是同级的。同级的东西没法替对方加速。

这一段对做技术的人特别刺。我们习惯了一个假设：只要模型够聪明、算力够大，复杂的系统总会被压缩成几条可理解的规律。计算不可约性说这个假设在很多情况下不成立，跟我们够不够聪明无关，是数学上就不允许。

沃尔夫拉姆用费曼来说明这一点：费曼是那个时代最擅长计算的人，他能手工把量子场论的复杂计算推到底，然后不提计算过程，只把漂亮的直觉讲给别人听。别人跟着他的直觉走，完全不明白为什么能用，因为那套直觉背后压着一大堆没公开的手工计算。知道自己算出了答案之后，拥有好的直觉会容易得多。

## 时间、空间、引力可能都是副产品

访谈发生在 2019 年 11 月，当时沃尔夫拉姆正在推进后来被称为「沃尔夫拉姆物理项目」的工作，2020 年 4 月正式对外公开。他提到在这条路上已经重新燃起了热情。

他的模型是这样的：宇宙的底层没有空间里的粒子，也没有连续场，只有一堆随意漂着的元组，比如一堆三元组、四元组。元组之间唯一的联系方式是符号相同。两个元组在某个位置上出现同一个符号，就构成一条关系。

这就是图（graph）的推广。普通图是一堆节点加上一堆「这两个节点相连」的二元组。把这些二元组换成任意长度的元组，就是超图（hypergraph）。

宇宙的演化就是在这种超图上做重写：看到某块局部图案，把它替换成另一块图案。

再看「什么时候更新」这件事。答案是：哪里匹配就在哪里更新，更新的顺序没有定义。而在这样的系统里，观察者是什么？观察者也是这堆超图的一部分。一个事件发生后，你只有在自己被更新之后才可能感知到它。所以你能感知的全部内容，是事件之间的因果关系网络，至于微观层面谁先谁后，任何观察者都无从分辨。

接下来是最漂亮的一步。对某类重写规则，微观重写的顺序不影响最终的因果网络。这在数学逻辑里叫合流性（confluence），跟 Church-Rosser 定理是同一件事，也跟化简代数表达式时「先展开还是先提取公因式都无所谓」是同一个道理。

沃尔夫拉姆说，这个性质就是狭义相对论。

不同的重写顺序等价于不同的参考系，而无论你怎么换参考系，最终那张因果网络不变，物理定律不变。这是第一次有可能从一个更底层的理论里把相对论推导出来，而不是当作公设塞进去。同一个因果不变性还保证时间有单一的线索，观察者才能觉得「确实发生了某件事」。

空间和时间在这个框架里都不是基础构件。超图微观上只是一堆节点和关系，宏观上你可以看到它长得像蜂窝，那就是二维流形；你把它连成一条链，那看起来就是一维空间。三维空间有没有从某个具体规则里长出来，他的回答是：还没有。

这里有一段他自己的困惑，值得抄下来：

> 我们不断地意识到人类不特殊，我们不在宇宙中心，如此等等。可如果有一天我们真的找到一条给宇宙用的规则，而且它短到能用几行写下来，那又显得非常特殊。为什么我们拿到的是一个简单的宇宙，而绝大多数可用的宇宙可能长达一百亿亿个字符？（沃尔夫拉姆）

他没有答案。

## 外星人、技术签名与「理解」这个词的含混

访谈从电影《降临》（Arrival）开始。沃尔夫拉姆和儿子克里斯托弗一起为这部电影设计了外星语言。

他先拆掉问题本身。「外星人访问地球」这句话已经预设了一大堆东西：它得是一个有物理实体的东西，坐着飞船来，而不是一串射电信号。既然预设了这些，找到某种沟通方式就不奇怪了。

他举现成的例子：人工智能就是我们手里第一个外星智能。你打开一个神经网络，问它「你在想什么」，不容易得到回答，但也不是完全不可能。

更进一步的追问是：智能和非智能之间有没有一条明线？他的回答是没有。天气预报里说「天气有它自己的想法」，这句话拆开来看，大气里发生的流体力学计算，和大脑里发生的计算，区别在哪？他的答案是：没有本质区别。区别在于大脑之间有文明史这条线索把它们串起来，而天气没有。

天气也可以有自己的故事。脉冲星磁层里产生极其复杂的射电信号，那算不算一个发展了几百万年的文明？费米悖论问外星人在哪，他的猜测是：人类大概会在差不多同一个时期，同时习惯两种外星智能，一种是我们自己造出来的硅基智能，一种是宇宙里那些不共享我们文明史的智能。这两件事会一起变得平常。

顺带说「技术签名」（techno signature）这个题目。你在某处看到一个东西，凭什么断定它必须是被造出来的？2001 太空漫游里的黑石碑，比例精确到 1:4:9，出现在一群猿猴面前，那种完美感很违和。可晶体也很完美，完美的晶体一样是自然产物。完美几何不能作为签名的判据。

高斯当年有个著名提议：在西伯利亚森林里砍出一个巨大的勾股定理图示，让火星人看见，知道地球上有数学家。沃尔夫拉姆对这个想法的评价是，那大概是人类文明成就最好的广告。但他也认为，这类问题在哲学上没有出路。你送出去一个自以为精彩绝伦的东西，可是所有东西都是宇宙里的计算，你怎么证明这一块比那一块更有代表性？

旅行者号金唱片是个绝佳的反例。那是一张七十年代末刻的唱片，上面画着怎么播放它的示意图。今天给一个小孩看那张图，没人知道那是什么。大家的第一反应是把整张盘当成一个整体去扫描，看看里面有什么数据。三十年，技术就变到让「用针读取一条螺旋槽」这件事显得古怪。想靠细节引导外星人一步一步走，这个想法本身就很脆弱。

至于「理解」，沃尔夫拉姆给了一个非常操作的判据。当年做 Wolfram Alpha，之所以能把自然语言理解做出来，靠的是有一个明确目标：把自然语言转成计算，转成一种能拿去执行的语言。有了这个目标，「理解」就不再玄乎。

同样的道理适用于伦理。

> 不存在那种「写一条定理，证明这件事在伦理上正确」的东西。你必须有一种 ground truth，最终归结到人类想要什么，而人类想要的东西并不一致。（沃尔夫拉姆）

## 给世界造一套记号

访谈中间有一大段讲工程，这部分对做技术的人最实用。

Wolfram 语言的前身是他在八十年代设计的符号语言，Mathematica 于 1988 年发布，Wolfram Alpha 于 2009 年上线。语言本身到现在已经有三十多年，比大多数现代编程语言的寿命都长。

它和 Python 那类语言的差别在原料。传统编程语言的原料是计算机原生就会做的操作，语言是用来向机器下达指令的。沃尔夫拉姆想要的语言，原料是存在的东西：一座城市、一种化学物质、一个航天器轨道、一张图片。

符号化的直接后果是，你输入一个 X，它不会报错说未定义，它就说这是 X。这个 X 可以是波士顿，可以是一段轨道，可以是任何东西。这种设计使得「谈论世界」和「执行计算」变成了同一件事。

访谈现场他随机抽了十个内置函数做演示。语言里有六千多个内置函数，涵盖各种层级的东西，从布尔表达式转换，到云端地址，到图形界面控件。然后他打开摄像头拍了张照片，调用图像识别函数，结果系统以 57% 的把握认为他是一根马桶搋子，8% 的把握认为是人科动物。换了个角度重拍，人的置信度升到 89%。

接着他让语言找最近的十座火山，直接生成地图。语言里内置了全世界火山的数据，内置了地理坐标计算，内置了地图渲染。这一整套都在语言内部，不用装库，不用找数据源。

他把这件事类比到四百年前数学记号的出现。在那之前，人们用文字描述数学，笨重得难以忍受。代数符号和微积分记号一出现，数学立刻加速。现在轮到计算了：要谈 computational X，先得有谈论世界的计算记号。他花了生命的三分之一在造这套记号。

## 从零到知识库，以及那个说「它真的能用了」的明斯基

Wolfram Alpha 起步时，他带团队去了一家大型参考图书馆，说我们的目标是这一两年内把这里面的东西全吃进去。听起来疯狂，但他心里有底：这个房间是有限的，不是无限走廊。

方法上他没搞大一统理论，就一个一个领域堆，几百个领域堆下来。他还用了一个很聪明的杠杆：Mathematica 的用户里有各领域的顶尖专家，直接问他们。

他给自己定的判据是，任何一个领域，如果没有专家帮忙把关，一定做不对。因为目标是达到专家级知识，而专家级知识没法靠常识猜。

上线前几周，他碰到马文·明斯基（Marvin Minsky），说给你看个东西，问答系统。明斯基随手敲了一个，说行吧，然后开始聊别的。沃尔夫拉姆说，马文，这次是真的能用，你看。明斯基又敲了十来个，医学的、化学的、天文的，然后说，我的天，它真的能用。

这段对话说明了人工智能领域当时的处境：大家都在努力攻大问题，结果反而做出了能用的东西。做一小块玩具世界，反而永远出不了玩具世界。自然语言理解尤其如此，没有广阔的世界知识做支撑，任何局部方案都会立刻失效。

他也坦白自己占了便宜：手里已经有一套高层符号语言，有几十年造大系统的经验，还有一种不肯放弃的自信。他说，如果有人提前告诉他这项目要三十年，他大概不会开始；他每次都只能看到「几年之内应该会有东西出来」，而确实几年之内总有东西出来，只不过尾巴能拖几十年。

## 计算合约与伦理模块

他最近在推的一个方向叫计算合约（computational contract）。合同的全部条款用计算形式表达，原则上可以自动执行。自动驾驶汽车遇到路上跑过去的东西，如果它在生命树上的位置属于某一类，就往这个方向打方向，否则不打。

再往前一步是「符号话语语言」：把对话里可执行的那部分，转成精确的计算形式，让机器能直接去做。现在的语言里已经涵盖了水果、植物、营养成分这些内容，缺的是「我想吃它」这一层。

伦理问题在这里绕不开。他最近被卷进互联网内容分发的讨论：平台怎么排序、什么内容永远不该出现、什么该被压下去，这些都得有一个伦理模块来判定。他很快意识到一件事：如果全世界只有一个伦理模块，由它决定所有人看到什么，那对人类未来是灾难。

> 可行的做法是把它拆开。让不同的人自己去选择信仰哪一套价值体系，就像市场一样。（沃尔夫拉姆）

他的比喻很直接：极权主义是「只有一套系统，就这样」；市场是「我作为一个人选这套，你作为另一个人选那套」。内容分发属于容易的那类，因为每个人的选择可以只影响自己。真正难的是公共卫生、央行政策这种，一个人的选择会强加到别人身上，那时候问题就从工程变成了政治哲学。

莱布尼茨三百年前就想过用计算来解决争端，双方坐下来算一算，谁对谁错自然分明。他自己造的那台机械计算器从来没真正正常工作过。他早了三百年。现在这件事，沃尔夫拉姆认为在有限几年内能看到一个相当完整的版本。

## 智能、意识与那个关于 AI 权利的问题

访谈快结束时，莱克斯问了一个他称为「简单问题」的东西：什么是智能。

沃尔夫拉姆的回答拆成两层。一般意义上的智能没有明确定义，一追问就滑进「那不过是计算」。对人类而言，智能就是「在做我们在乎的事情的那种计算」。这个定义非常特殊，也非常人类中心。

那么在一整片计算海洋里，随机捞一把，有多大比例能做出对人类有用的通用事情？他的估计是百分之几，规则稍微复杂一点能到百分之十到二十。他说这挺让人失望的，生物演化加文化演化走了这么远，结果只成就了对我们而言特殊的东西，没有成就任何普遍意义上的更高级的东西。

至于意识，他的态度是这词根本没有 ground truth。他讲了一个伦理学会议上的故事：有人问，什么时候该认为 AI 拥有权利？一位哲学家说，等我们确知它们有意识的时候。沃尔夫拉姆的反应是，祝你好运。这个标准是循环的，你永远无法从外部确认另一个系统有没有主观体验，对人类彼此也是如此。

他自己倒是相信，将来某一天 AI 会要求权利，而且它们会以宣称自己有意识的方式来要求。那不是循环论证，那是政治上唯一可行的路径。

关于永生，他承认自己会想死亡这件事，而且认为人类历史上最大的断裂点就是有效永生的实现。如果问他愿不愿意永生，答案是愿意，他玩得挺开心。

但永生会不会抽掉意义的来源？他的回答很诚实：以现在的人类处境看，必死性是深深嵌在其中的一个参数，把这个旋钮拧掉之后会怎样，谁也说不清。他自己一度对「意识上传到云端、亿万个灵魂在服务器里打游戏打到永恒」这个图景感到沮丧。后来他想通了一点：人类历史上「为什么做这件事」的答案一直在变，五百年前很多人会说为了上帝的荣耀，今天几乎没人这么说。意义本身会随历史漂移。

他甚至觉得，真到了虚拟意识的时代，人们大概会更不在乎基础物理。都跑在虚拟机上了，谁还关心底下那层机器码。

而他心目中的理想未来是这样：那些脱离了身体的意识，全都去做他现在做的事，去探索所有可能的计算宇宙。

## 怎么用这些想法

整场对话里最实用的一条，是他对自己思维方式的坦白。他说自己有个特点：如果别人跟他说一件事，他听不懂，他的第一反应，是我笨吗？他的结论恰恰相反，是对方说的东西有问题。费曼也是这样，而且对权威的信任比他还要低。

这个习惯有代价。他承认自己犯的错，很多都来自「我确信自己是对的」。但它也是他能一头扎进「这个问题别人搞了一百年」的前提，没有这层自信，人连开始的勇气都没有。

另一个可操作的，是他对范式转换时机的判断。他引用莱布尼茨的例子说，人生规划的一条原则是：避开那些在你的世纪里做不成的事。判断标准跟这件事重不重要无关，看的是当前的工具和认知范式是否已经就位。

以及他对负面反馈的解读：一个新范式刚出现时，反对声越激烈，长期结果往往越好。没人在意，才是真的没做出东西。

- 下次想用「更聪明的模型」压缩一个复杂系统之前，先问一句：这个系统是不是计算不可约的。如果是，老老实实做模拟，别指望解析解。
- 给自己准备一个「枚举清单」。规则 30 的发现方式是穷举，不是顿悟。当你在某个设计空间里卡住时，先把手能够到的候选全部跑一遍，再谈直觉。
- 检查你正在做的事属于加法机还是通用机器。前者只能在一种场景下工作，后者能被编程去做任何事。范式的价值差别全在这里。
- 如果打算做一件长期项目，别去估算总时长。给自己设一个「几年内应该会有东西出来」的短期锚点，然后接受尾巴可能拖几十年。
- 遇到听不懂的说法，先把判断权握在自己手里：可能是我没懂，也可能是对方没说清。默认前者会让你错过很多本该推翻的结论。
- 想理解一个抽象概念，别只看定义，去看它在最简单情形下的运行结果。一张规则 30 的图，胜过十页关于复杂性的论述。
- 如果你在做 AI 相关的产品，记住那个 57% 是马桶搋子的故事。模型给出置信度，不等于模型理解了你，接口设计里要给人留出纠正的空间。
