想象你住在一个方格子铺成的小区里,每户门口挂一盏灯,要么亮、要么灭。每天晚上十二点,全小区的人不约而同做同一件事:看一眼四周邻居的灯,照墙上的规则表决定明天自家灯的状态。没有物业指挥,没人看全盘,每个人都只关心身边最近几户。可当直升机升空,从上往下看——整片灯海会自己变幻出波浪、雪花、甚至缓缓移动的“小飞船”。那些复杂图案,居然没有任何一个中央大脑在编排。这就是元胞自动机(Cellular Automata):把空间切成网格,每个格子是一个“元胞”,按一条简单规则、根据邻居状态同步更新自己。规则简单到三岁小孩能学会,可当几百万个元胞同时翻牌,惊人的复杂度就“涌现”出来。康威的生命游戏、沃尔夫勒姆的规则 30、流体模拟中的格子玻尔兹曼方法,全是这门思想的落地。这篇文章就从小区灯光讲起,带你理解元胞自动机的基本概念、经典规则,以及它在生物计算与复杂系统模拟中的潜力。
对 AI 从业者而言,元胞自动机是理解“简单规则如何涌现复杂行为”的最佳思维模型,也是设计并行系统、生成式模型与复杂系统模拟时不可替代的底层视角。
目录
可视化演示
展示元胞自动机核心原理:康威生命游戏演化、一维CA规则110复杂涌现、Wolfram四类复杂性分类。切换模式探索简单规则如何产生复杂行为。
本节配有交互动效(进入视口后自动加载,约 3KB)。
康威生命游戏:简单规则的涌现 每个细胞根据8个邻居存活数决定生死:恰3个邻居出生,2-3个存活,否则死亡 滑翔机、振荡子等模式从简单规则中自发涌现,展示复杂性如何从简单性中产生 next = f(neighbors): B3/S23 生命游戏证明简单局部规则可产生全局复杂行为
基本概念:网格、状态与同步
晚上十二点的钟声一响,小区几百盏灯齐刷刷翻牌。蹲在阳台上看,你会发现三件朴素到近乎无聊的事:灯是一盏一盏的;每盏只有亮和灭两种状态;所有人都在同一时刻完成更新。这三件事,恰好就是元胞自动机骨架上的三根骨头——离散空间、离散状态、同步演化。
换成数学语言:把小区抽象成一张规整的网格(grid),每个格子就是一个“元胞”(cell),元胞携带一个“状态”(state),比如亮=1、灭=0。系统只在离散的时间步 $t = 0, 1, 2, \dots$ 上演化,每一步所有元胞同时看一眼邻居,再根据规则更新自己。注意“离散”这个关键词:灯不会渐亮渐暗,而是“啪”一声切换;时间也不是连续的,而像电影胶片一帧一帧跳。
现在把第 $i$ 个元胞在第 $t$ 步的状态记为 $S_i^{(t)}$,它下一时刻的状态由两样东西决定:它当前的邻居状态集合 $N_i^{(t)}$,以及一张事先写好的规则表 $f$。整个元胞自动机的核心,就是下面这一个等式:
1. 门牌号 $i$:$i$ 是元胞的编号。一维世界中直接写 $i=1,2,\dots,N$,二维平面则常用坐标 $(x,y)$ 代替单一下标。
2. 状态上标:$S_i^{(t)}$ 表示第 $t$ 步时第 $i$ 个元胞的状态,取 $0$(灭)或 $1$(亮)。
3. 邻居集合:$N_i^{(t)}$ 是第 $t$ 步时第 $i$ 个元胞“看到”的所有邻居状态的集合——到底看几户,下一节再定。
4. 规则查表:$S_i^{(t+1)} = f(N_i^{(t)})$ 表示明天的状态等于对邻居集合执行规则表 $f$ 的查表结果,同一张表对所有元胞一视同仁。
回到小区上看这场灯光秀:直升机拍下的每一帧画面,就是全局状态 $\mathbf{S}^{(t)}$ 的完整快照;每过一个午夜,整幅画面同步刷新一次。所谓元胞自动机,不过是给“灯、邻居、查表、同步翻牌”这套夜复一夜的循环,起了一个学名。
邻居与规则:邻域与边界
半夜回头看邻居,第一个问题就来了:“邻居”到底算哪几户?住在一维独栋街的人,左右两户就是全部世界;住在方格小区的人,抬眼一看四面八方都是人。元胞自动机把“邻居”的定义也写成规则的一部分——这个看似琐碎的设定,实际上决定了整个世界的样貌与命运。
一维元胞自动机常用“邻域半径 $r$”来描述:每个元胞只看左右各 $r$ 户,共 $2r+1$ 户;$r=1$ 是最经典的配置。二维平面上最常用的邻域有两种:冯诺依曼邻域(von Neumann)只看上下左右,共 $4+1=5$ 户;摩尔邻域(Moore)看周围一整圈,共 $8+1=9$ 户。第三个微妙问题是边界:小区围墙外没有住户,最边上的人怎么办?最常见的解法是周期性边界(wrap)——把网格首尾相接,卷成甜甜圈一样的环面;另一种是固定边界,墙外一律视为灭灯。
以摩尔邻域为例,把中心格记为 $(x,y)$,它要“审阅”的全部位置可以用一个集合写出来:
1. 中心坐标:$(x,y)$ 是被更新的那个元胞在平面上的位置。
2. 偏移量:$u, v \in \{-1,0,1\}$ 表示往左或往右、往上或往下各看一步的距离。
3. 集合构造:$\{(x+u,\ y+v)\}$ 把所有九个位置“收集”成一个邻居集合。
4. 数量验证:$u,v$ 各三种取值,组合数 $3 \times 3 = 9$,即中心加周围八户。
所以“邻居”不是天经地义的,而是你主动选择的一种世界观。冯诺依曼与摩尔邻域跑出来的图案截然不同——同一套小区,你关心谁,世界就长成什么样。制定规则之前,先决定你在意哪些人。
一维元胞机:沃尔夫勒姆的规则编号
把小区压缩成一条街。一排住户,每户只看左右两户邻居——这就是一维元胞自动机。别嫌它寒酸:史蒂芬·沃尔夫勒姆(Stephen Wolfram)正是泡在一维世界里,发现了“简单规则能产生惊人复杂度”这一事实。
设每个元胞只有 $0/1$ 两种状态,邻域半径 $r=1$,那么一个元胞要面对的邻居模式共有 $2^3 = 8$ 种:111、110、101、100、011、010、001、000。一条规则,就是在这 8 种模式下面各填一个 $0$ 或 $1$,表示“看到这种邻居,明天我怎样”。
沃尔夫勒姆的聪明之处在于给规则“编号”。把 8 种模式按二进制从 111 到 000 排好序,每种模式对应的结果位从高位到低位排成一排,正好得到一个 8 位二进制数;把它转成十进制,就是规则号:
1. 邻居模式编号:$k = 4a + 2b + c$ 把“左中右”三个比特编码成 $0 \sim 7$ 的整数,例如 $101 \to 4 \times 1 + 2 \times 0 + 1 = 5$。
2. 结果位:$b_k \in \{0,1\}$ 是第 $k$ 种邻居模式下,规则表填写的下一时刻状态。
3. 二进制求和:$R = \sum_{k=0}^{7} b_k 2^k$ 把 8 个结果位按 $k=7$ 到 $k=0$ 拼成二进制数并转成十进制。
4. 规则 30 实例:结果位为 $00011110$,即 $16+8+4+2=30$;八种邻居模式对应 111/110/101/100 → 0, 0, 0, 1,011/010/001/000 → 1, 1, 1, 0。
沃尔夫勒姆当年在电脑上把 256 条规则从同一个“一个亮格”的初始状态全部跑了一遍,规则 30 的图案最像随机噪声——一条街、一张八行规则表,就从确定性里长出了“混沌”的模样。后来它被用于 Mathematica 的随机数生成器,成为“简单规则”走上工业界的最早案例之一。
生命游戏:会跑的小生物
1970 年,数学家约翰·康威(John Conway)在方格纸上发明了史上最著名的元胞自动机——生命游戏(Game of Life)。它的规则几乎等于小区公约:热闹过头会死,孤单也会死;人气恰到好处就活;荒地上恰好聚集三户,就会搬来新住户。
用行话说是 B3/S23:出生(Birth)需要恰好 3 个邻居;存活(Survival)需要 2 或 3 个邻居;其余情况一律熄灭。规则只有这一句,但康威立刻发现纸上的点阵“活”了起来。逐格套用摩尔邻域查表,每次更新可以写成下面的分段函数:
其中 $n$ 是邻居中亮灯的个数。
1. 存活条件:$S^{(t)}=1$ 且 $n \in \{2,3\}$ — 当前亮着的灯,邻居数为 2 或 3 时继续亮。
2. 诞生条件:$S^{(t)}=0$ 且 $n = 3$ — 当前熄灭的灯,邻居恰好 3 个时“出生”点亮。
3. 死亡兜底:其他情况一律归零 — 过密($\ge 4$)或过疏($\le 1$)都熄灭,对应“拥挤”与“孤独”。
4. 同步查表:全部元胞同时套用这三行,不分先后,这就是“同步演化”。
只靠“看八个邻居、查三行规则”,小区里居然跑出了会动的“小生物”:静物(方块、蜂巢)永恒不变;振荡器(闪光灯)在两格间来回摆;最出名的滑翔机(Glider)五个格子一组,每 4 步整体向右下平移一格,像一只小虫在小区里蠕动。生命游戏后来被《自然》杂志称为“有史以来最有名的计算机程序之一”——生命的味道,不在规则里,而在反复迭代中。
涌现分类:四种命运
不是每个小区都热闹。有的小区从第二天起就永远死寂;有的整个小区像呼吸灯一样整齐地闪;还有的如同暴风雪,狂乱到眼花。沃尔夫勒姆把 256 条一维规则全部演了一遍,按“命运”把它们分成四类——这是元胞自动机研究中最著名的分类学。
I 类:所有元胞快速收敛到同一个状态,一片死寂(规则 0:永远灭灯)。II 类:系统陷入周期性振荡,像呼吸灯来回闪(规则 4)。III 类:图案高度随机、永不重复(规则 30)。IV 类:稳定与混沌共存,一会冒出滑翔机这类“局域活物”,碰撞之后又生成新结构——生命游戏与规则 110 都落在这类。这四个类不是拍脑袋分的,背后是“系统将来能不能被预测”的深刻问题。
为什么简单规则能造出这么大的差异?看看状态空间的规模:每格有 $k$ 种状态,一共 $N$ 个元胞,全局构型就有 $k^N$ 种:
1. 单格状态数:$k$ 表示每个元胞可能的状态个数,亮/灭二元时为 $2$。
2. 元胞总数:$N$ 是网格中元胞的个数,如 $100 \times 100$ 网格有 $N = 10^4$。
3. 状态空间:$|\mathcal{S}| = k^N$ 是所有可能全局配置的总数,随 $N$ 指数爆炸。
4. 复杂性土壤:$k^N$ 说明涌现的多样性不需要拼规则复杂,只需要元胞数量够多。
同一个小区,换一张规则表就换一个世界。四分类真正在问的问题是:什么样的局部规则,能让“有趣”的复杂度长期存在?答案是 IV 类——后来复杂系统科学家称之为“混沌边缘”。
计算能力:会算数的灯光
一个疯狂的问题冒了出来:如果小区灯光能跑出“小飞船”,那它能不能帮我们算一道数学题?1982 年沃尔夫勒姆提出了这个猜想;2000 年,数学家马修·库克(Matthew Cook)给出证明:一维规则 110 是图灵完备的——它可以模拟任何计算机程序。
从数学上看,元胞自动机的全部行为浓缩成一个全局演化映射 $F$:给定今天的全局状态 $\mathbf{S}^{(t)}$,$F$ 算出明天的全局状态 $\mathbf{S}^{(t+1)}$。这个映射是“分量的”——每个元胞各自独立查表,谁也不等谁。由此得到两个震撼推论:第一,任何可计算问题都可以翻译成某个元胞自动机的初始状态,让演化过程替你“算”;第二,更新天然并行,一块 GPU 可以同时驱动上百万个元胞翻牌。
1. 全局状态向量:$\mathbf{S}^{(t)}$ 是全体元胞状态拼成的向量,即小区的全景照片。
2. 全局映射:$F$ 把“今天的全景”变成“明天的全景”,是元胞自动机唯一的动力学定律。
3. 分量形式:$F(\mathbf{S}^{(t)})_i = f(N_i^{(t)})$ 表明全局更新可以拆成 $N$ 个互不依赖的局部更新。
4. 确定性:给定初始状态,所有未来状态都被唯一确定,这使它成为“离散动力系统”。
小区没有物业,但灯光自己会“算数”。计算不是某个大脑的特权,而是简单规则大规模重复的副产品。生命游戏同样被证明图灵完备——理论上,你可以用一整个屏幕的灯光跑一台电脑,只是慢得感天动地。这个洞见深刻地塑造了并行计算与新型计算范式的设计思路。
应用前景:从灯光到工业工具
再往后,生物学家、交通工程师和密码学家都来参观小区灯光秀。他们惊喜地发现:只要给小区换一张合适的规则表,它就能模仿现实世界里许多奇观。
生物计算方向,最迷人的应用是“发育斑图”:斑马条纹、贝壳螺旋、孔雀羽毛,这些看似随机的花纹能被一小撮元胞自动机规则还原——生物体很可能真的在用类似机制生成体表纹理。更工程化的应用在复杂系统模拟:流体力学在 1980 年代诞生了格子气自动机,并演化为今天广泛使用的格子玻尔兹曼方法(LBM),用以模拟飞机机翼绕流与血液流动;城市交通流、森林火灾蔓延、地震破裂过程,也都可以用元胞自动机建模。
动手实现前,工程师必须先回答一个成本问题:规则表有多大?在一维空间,状态数 $k$、邻域半径 $r$ 时,需要查的模式数是 $k^{2r+1}$;在 $d$ 维空间则推广为:
1. 状态数 $k$:每个元胞有 $k$ 种取值,决定“灯的种类”。
2. 邻域半径 $r$:只看半径 $r$ 层以内的邻居,单方向覆盖 $2r+1$ 个位置。
3. 超立方体积:$d$ 维空间中,半径为 $r$ 的邻域共有 $(2r+1)^d$ 个位置。
4. 查表规模:每个位置有 $k$ 种状态,所以真值表有 $k^{(2r+1)^d}$ 行,行数直接决定实现成本。
加密领域同样有舞台:规则 30 的伪随机性曾让它被写进 Mathematica 的随机数生成器,也被讨论用于流密码。一个亮格、一条规则、无限变幻——小区灯光不只是一场表演,它还是计算生物学家、仿真工程师和密码学家的工具箱。简单的规则,正在持续重构我们对复杂世界的理解方式。
AI 应用场景
场景 1:生物斑图模拟
阶段:复杂系统建模与仿真
解决的问题:传统反应-扩散方程模拟斑马条纹、贝壳花纹需要求解非线性偏微分方程组,参数敏感且计算昂贵。元胞自动机把组织表面切成格子,每个细胞按“看邻居定命运”的局部规则迭代,几行代码就能复现条纹、斑点与螺旋斑图,计算量小,且便于在 GPU 上并行加速。
具体案例:计算生物学家用二维元胞自动机模拟热带鱼体表花纹发育,调整出生/存活规则参数,复现不同鱼种的条纹与斑点差异,帮助验证“图灵斑图”之外的纹样生成假说,为进化发育生物学提供可运行的数字实验场。
场景 2:城市交通流微观仿真
阶段:离散仿真与策略评估
解决的问题:宏观交通模型用微分方程描述车流密度,难以刻画红绿灯、加塞等微观互动;元胞自动机把车道变为格子,每辆车是一个“会前进的元胞”,规则只有“前方空位则加速、前方有车则减速到安全距离”,却能涌现出走走停停的拥堵波。
具体案例:交通工程师在整座城市路网上运行 Nagel-Schreckenberg 元胞自动机模型,模拟早高峰堵车模式,评估新红绿灯配时方案和潮汐车道策略,输出可视化车流热力图,辅助城市规划决策。
场景 3:并行伪随机数与加密潜力
阶段:算法设计与安全评估
解决的问题:传统线性同余伪随机数生成器统计弱点明显,序列可被预测;规则 30 由确定性规则驱动却通过随机性检验,且每个元胞的更新彼此独立,天然适合并行产出随机比特流。
具体案例:研究者把规则 30 内核部署在 FPGA 上,以极高吞吐率并行生成随机序列,用于蒙特卡洛模拟与流密码候选方案的评估,验证“确定性规则 + 大规模并行 = 高速安全随机源”的可行性。
Python 演示
"""元胞自动机:康威生命游戏的核心实现"""import numpy as np def step(grid): """按 B3/S23 规则计算下一代状态""" n, m = grid.shape padded = np.pad(grid, 1, mode="wrap") neighbor_count = np.zeros_like(grid) for dx in (-1, 0, 1): for dy in (-1, 0, 1): if dx == 0 and dy == 0: continue neighbor_count += padded[1 + dx:1 + dx + n, 1 + dy:1 + dy + m] survive = (grid == 1) & ((neighbor_count == 2) | (neighbor_count == 3)) born = (grid == 0) & (neighbor_count == 3) return (survive | born).astype(np.uint8) def main(): grid = np.zeros((18, 30), dtype=np.uint8) glider = [(0, 1), (1, 2), (2, 0), (2, 1), (2, 2)] for dr, dc in glider: grid[8 + dr, 13 + dc] = 1 for _ in range(16): grid = step(grid) alive = np.argwhere(grid == 1) print("演化 16 代后存活细胞数:", len(alive)) print("活细胞质心坐标:", tuple(alive.mean(axis=0, dtype=int))) if __name__ == "__main__": main()
padded = np.pad(grid, 1, mode="wrap")给矩阵包一圈“边界邻居”,采用首尾相接的周期边界,模拟没有围墙的小区。for dx in (-1, 0, 1):遍历以当前格为中心的 $3 \times 3$ 邻域偏移。neighbor_count += padded[1 + dx:1 + dx + n, 1 + dy:1 + dy + m]把 8 个方向的邻居块“搬”回原位置逐格累加,得到每格的邻居数。survive = (grid == 1) & ((neighbor_count == 2) | (neighbor_count == 3))S 规则:活细胞有 2 或 3 个邻居就活到下一轮。born = (grid == 0) & (neighbor_count == 3)B 规则:死细胞恰好 3 个邻居时“诞生”。return (survive | born).astype(np.uint8)存活与诞生取并集,其他情况一律归零,构成下一代。alive = np.argwhere(grid == 1)找出所有活细胞坐标,方便观察滑翔机整体位移。
常见误区
误区元胞自动机能生成这么复杂的图案,背后的规则一定非常复杂,肯定写着几十条判断逻辑,甚至用了神经网络训练。
正解恰恰相反。真正让人惊叹的元胞自动机,规则都简单到一句话能说完:生命游戏只有“B3/S23“两条,规则 30 只有一行真值表。复杂来自成千上万个元胞按照同一条规则反复同步更新——这是”涌现“,不是”精心设计”。如果你发现某个元胞自动机的规则表非常冗长,它往往只会产出死寂或杂乱的结果,反而缺少生命感。
为何常见:人类直觉是“复杂结果对应复杂原因”,很难接受“简单规则大量重复”也能生成惊人的复杂性。
误区规则 30 生成的图案看起来完全是随机的,说明它没有内在规律,本质上是噪声。
正解规则 30 由完全确定的查表规则驱动:同一个初始状态必然产生同一幅图案。它是“表观随机”——图案能通过随机性检验,但每个像素都能被规则精确复现。这种“确定性中的伪随机”正是它的价值所在,也是它被用于 Mathematica 随机数生成器的原因。
为何常见:人们习惯把“看起来随机”与“没有规则”画等号,混淆了表观随机与真正随机。
误区世界是连续变化的,把空间切成格子、时间一跳一跳的元胞自动机太假了,不适合描述真实系统。
正解离散化是科学建模的常规武器。元胞自动机思想已孵化出格子玻尔兹曼方法,被广泛用于飞机机翼绕流、血液流动等工程仿真;计算机本来就是离散设备。离散模型分辨率足够高时能逼近连续行为,而且天然适合并行计算——这是连续偏微分方程难以比拟的优势。
为何常见:我们感知到的物理世界光滑连续,直觉上认为连续模型才“真实”,忽略了可计算性与可扩展性的价值。
误区元胞自动机和神经网络一样,要先准备大量数据训练规则,才能生成想要的图案。
正解经典元胞自动机的规则是设计者显式写死的,元胞只是机械执行查表,全程不需要训练数据。生命游戏、规则 30 都是如此。“让 CA 学习规则”是机器学习里另一个研究方向(如神经元胞自动机 Neural CA),它属于“学习”范式,和经典 CA 的“编程”范式的区别,就像“背诵剧本”与“临场读规则”的区别。
为何常见:在 AI 时代待久了,容易把所有算法都套上“训练”模板,忽略了大量计算模型走的是“显式规则 + 大规模并行”路线。
面试题
Q1. 元胞自动机中的“元胞”指的是什么?
- A.一条条独立的计算规则
- B.网格里的最小空间单元← 正确答案
- C.邻居之间的局部映射关系
- D.整个系统的全局状态
答案:B。元胞是网格上承载状态的最小格子,如同小区里的一户人家。规则和邻居关系描述的是元胞之间的互动,而不是元胞本身;全局状态是所有元胞状态的合集,同样不是元胞本体。
Q2. 摩尔邻域总共包含多少个格子?
- A.总共包含五个格子
- B.总共包含七个格子
- C.总共包含八个格子
- D.总共包含九个格子← 正确答案
答案:D。摩尔邻域是二维平面上最常用的邻域,包含中心格及其周围 8 个格子,共 9 个。5 个对应冯诺依曼邻域(上下左右加中心),7 和 8 都不符合任何标准邻域定义。
Q3. 下列哪些属于生命游戏中的典型图案?
- A.滑翔机← 正确答案
- B.振荡器← 正确答案
- C.静物← 正确答案
- D.黑洞
答案:ABC。生命游戏经典图案分三类:静物(如方块)永恒静止,振荡器(如闪光灯)周期往复,滑翔机每 4 步整体平移一格。“黑洞”不是元胞自动机的标准术语,属于干扰项。
Q4. 一维元胞自动机的规则编号(如规则 30)是怎么来的?
- A.把八种邻居结果拼成二进制数← 正确答案
- B.按发明者出生年份直接编号
- C.按生成图案的颜色深浅编号
- D.按程序随机种子的取值编号
答案:A。沃尔夫勒姆把 8 种邻居模式按 111 到 000 排序,每个模式对应一个结果位,8 位拼成二进制数再转十进制,便得到规则号。例如规则 30 = 00011110。其他选项都与规则命名机制无关。
Q5. 规则 110 最著名的意义是什么?
- A.能生成最平滑的直线图案
- B.被证明具备图灵完备的能力← 正确答案
- C.拥有最快的并行计算速度
- D.是唯一能模拟流体的规则
答案:B。库克证明了规则 110 是图灵完备的,即它能模拟任何可计算过程,这是“简单规则蕴含全部计算能力”的里程碑。其余选项描述的都不是规则 110 的核心意义。
Q6. 关于规则 30,下列说法正确的是?
- A.生成的图案完全随机没有规律
- B.背后的规则表非常复杂冗长
- C.由确定性规则产生伪随机图案← 正确答案
- D.是最简单的一种死寂规则
答案:C。规则 30 的图案看似随机,却由逐位查表确定;伪随机性来自大规模迭代而非规则复杂度。A 错在“完全随机”,B 错在“规则复杂”,D 错在“死寂”——规则 30 恰好充满变化。
Q7. 生命游戏中,一个活细胞在下一代继续存活,需要邻居数满足什么条件?
- A.恰好为 0 个或 1 个
- B.恰好为 1 个或 2 个
- C.恰好为 2 个或 3 个← 正确答案
- D.恰好为 3 个或 4 个
答案:C。生命游戏的存活规则是 B3/S23:活细胞在邻居数为 2 或 3 时存活,其余情况死亡;死细胞在邻居数为 3 时诞生。选项 A/B/D 的邻居数组合都会导致活细胞死亡或不符合规则。
Q8. 关于元胞自动机的边界处理,常见的做法包括?
- A.周期性边界让网格首尾相接← 正确答案
- B.固定边界按无邻居处理← 正确答案
- C.删除边缘细胞避免越界
- D.每步随机重置所有边界状态
答案:AB。周期性边界把网格上下左右首尾相接(卷成环面),固定边界把边界外视为固定死亡状态,二者都是标准做法。C 删除边缘细胞会破坏网格结构;D 随机重置边界会引入无法预期的噪声,都不是常规做法。
Q9. 元胞自动机与传统神经网络最大的区别是?
- A.元胞自动机的规则不需要训练← 正确答案
- B.神经网络没有离散时间概念
- C.元胞自动机不能用于图像生成
- D.神经网络不能处理时空数据
答案:A。经典元胞自动机的规则是显式写死的,不需要训练数据;神经网络的核心是权重学习。B/C/D 都不成立:神经网络有离散迭代步,也能做图像生成和时空建模。
Q10. 关于一维元胞自动机的规则编号体系,下列说法正确的有?
- A.规则号由八位二进制结果位组成← 正确答案
- B.规则零表示所有邻居组合都产生死← 正确答案
- C.规则二五五表示所有组合产生随机状态
- D.规则编号只决定局部状态的映射← 正确答案
答案:ABD。规则号由 8 位结果位拼成;规则 0 全为 0(任何邻居组合都变死),规则 255 全为 1(任何组合都变活),因此 C 说“产生随机状态”与定义矛盾。规则编号只描述局部映射,不包含初始状态,所以 D 正确。