Max OrHai 用NetLogo编写了一个简单的基本元胞自动机模拟器 叫做:基本元胞自动机的 NetLogo 学习 你可从课程材料网页上下载该模拟器程序 现在让我来演示下它是如何工作的 你可以选择格子(lattice)的规模,即元胞的数目 你已经选择了 70 个元胞,并设置为循环方式 这意味着(正如我们说过的):最左侧元胞的左邻居是最右侧的元胞 呃,让我看看,嗯,(鼠标所在滑动条)你还可以选择规则代码 这里,选择的是规则110 —— 这里的数字对应的是Wolfram代码(Wolfram code) 你可以通过鼠标所在开关来选择初始配置是只有一个黑色的元胞(“关”)还是随机配置(“开”) 这里初始选择的是随机配置 现在,你可以点击“setup”按钮了 好了,模拟器将从一个随机配置开始启动 然后,你可以点击“Go 1”按钮:每次执行一步 或者,点击“Go”按钮……要停止运行,再次点击“Go”即可 此外,模拟器还允许你查看和编辑规则(点击“Edit Rule”按钮) 这里对规则进行了显示:包括每个元胞的邻居以及中心元胞的更新情况 还显示了Worfram 编码。可以通过点击元胞来改变规则 ……再次点击,恢复到规则110 如果再次点击“Edit Rule”按钮可离开规则编辑界面,回到规则模拟状态 好了,现在让我们来看看其它一些规则 让我们先来看看规则 0 嗯,可以点击”Edit Rule“按钮查看和编辑规则 好了,每个元胞的更新状态都是白色 嗯,你可以猜猜,接下来会发生什么呢? 如果我们点击”Setup“,然后点”Go 1“ 嗯,它确实始于一个随机的初始配置,但随后所有元胞都更新……成了……白色 嗯,这是一个非常简单的不动点(fixed point) 即:元胞自动机的迭代更新,使得所有元胞都保持为白色(这一不动点) 如果试试规则 1,会是什么情况呢? 点击”Edit Rule“按钮 除了左右邻居都是白色的白色中心元胞会被更新为黑色外,其余情况下中心元胞都被更新为白色 嗯,如果我……点击”Setup"按钮 再点击“Go 1”…… 我们可以发现…… 典型地,始于随机配置的规则 1,会在全白区域、全黑区域之间形成来回摆动 (在某一步时)全白区域会更新成全黑区域,全黑区域更新成全白区域 然后,在下一步时,又反过来了 所以(随着不停的点击“Go 1”按钮)可以一直看到两种不同状态间的来回摆动 还可以再试试规则 2——我们将演示的最后一个规则 规则 2的内容是:除了“白白黑”配置的中心元胞会被更新为黑色外,其余都会被更新为白色 如果点击“Setup”……然后点“Go”…… 你将能看到一些由黑色元胞所组成的对角线 而且,整个模式也会不停地重复…… 好了,本节课后不再布置测试题,但希望你们能下载这个 Netlogo 模拟程序并完成如下工作: 找到 3 种基本元胞自动机规则(不能是本节课所演示的规则),分别产生如下行为: (1)不动点:整个元胞自动机的配置进入一个不再改变的状态 (2)以 2 为周期的摆动(振荡):元胞自动机的配置在两种状态间来回摆动 (3)复杂的行为:由你自己决定什么才是“复杂”的 这些问题都有许多种可能的答案,在下次视频课程上,我将给出一些例子 但首先,请你自己先试着找找