元胞自动机

高中计算机科学每个细胞只观察它的邻居:在生命游戏中,邻居数为3时细胞诞生,邻居数为2或3时细胞存活;一维规则编号列出了8种邻域组合各自对应的新状态。

使用通行证解锁此实验

通行证可解锁网站上的所有模拟,包括课堂演示模式。下方的教学笔记仍向所有人免费开放。

一次性付款,无需订阅。

关于此实验

元胞自动机是由处于开或关状态的细胞组成的网格。每个时刻,每个细胞都会查看它的邻居,并遵循同一条简单规则来决定自己的下一个状态。除此之外没有编写任何程序,但滑翔机却能在网格上移动,发射器会一个接一个地发射滑翔机,而一些一维规则会产生极其不规则的模式,甚至被用作随机数生成器。运行约翰·康威的生命游戏,绘制自己的初始模式,并探索全部 256 种初等规则。

学习目标

  • 手动应用生命游戏规则,推算下一代
  • 识别静物、振荡器和飞船
  • 解释规则编号如何编码初等一维自动机
  • 描述简单的局部规则如何产生复杂的行为
  • 比较能产生重复、嵌套、混沌和复杂图案的规则

使用方法

  1. 1加载滑翔机并按四次“步进”。经过四代后,它发生了什么变化?
  2. 2加载脉冲星。它需要经过多少代才会重复?
  3. 3运行滑翔机枪。多久会出现一个新的滑翔机?观察活细胞图表。
  4. 4清空网格并画一排三个细胞。在纸上预测下一代,然后按“步进”。
  5. 5加载 R 五连方并运行它。仅有 5 个细胞会生长成什么?关闭边缘环绕并进行比较。
  6. 6切换到一维规则。比较规则 30、90 和 110。哪一个看起来随机,哪一个看起来是嵌套的,哪一个包含会移动的结构?
  7. 7翻转规则 90 的规则表中的一个结果。你得到的规则编号是多少?图案发生了什么变化?

模型

生命游戏:n 是 8 个邻居中处于存活状态的细胞数量
初等规则 R:R 的第 k 位决定新状态
初等规则的数量:有 8 种邻域,每种有 2 种可能结果
规则90是模2加法,它会绘制出谢尔宾斯基三角形。

假设

  • 生命游戏网格为72列、44行。开启边缘环绕后,网格的边缘会相连,形成一个环面;关闭后,边缘以外的细胞始终视为死亡。
  • 所有细胞都根据上一代的状态同时更新。
  • 一维行宽为121个细胞,首尾相连。随机初始状态使用固定种子,因此每次都相同。

在课堂上试试这个实验

  1. Q1一个死亡细胞恰好有三个存活邻居。它在下一代会怎样?
  2. Q2为什么由存活细胞组成的2×2方块永远不会改变?
  3. Q3将规则30写成二进制,并据此求出邻域为100的细胞的新状态。
  4. Q4滑翔机每四代沿对角线移动一个细胞。它需要多久才能穿过72个细胞宽的网格?
  5. Q5规则110能够完成计算机可以执行的任何计算。这说明了简单规则与复杂行为之间可能存在什么关系?

常见问题

生命游戏是谁发明的?

由英国数学家约翰·霍顿·康威于 1970 年提出。它因马丁·加德纳在《科学美国人》上的专栏而闻名,此后人们不断发现新的模式。

生命游戏真的算是一种游戏吗?

这是一个零玩家游戏:画出初始图案后,一切都由规则决定。乐趣在于设计图案,并观察它们会产生什么结果。

元胞自动机有哪些应用?

它们用于模拟森林火灾、交通、晶体生长、疾病传播以及贝壳上的纹样。规则30曾被用作随机数生成器,而物理学和生物学中的网格模拟也常以相同的方式运行。