智库时代
·195·
智库理论
元胞自动机的沙堆模型的 Matlab 模拟
周啸峰
(北京师范大学物理学系,北京100875)
摘要:元胞自动机是描述复杂性的比较有效的方法之一,也是复杂系统建模的一种重要方法。要了解元胞自动机首先要了解它最简单的几
个模型。沙堆模型就是其中一个例子,本文通过 Matlab 对这个模型进行模拟,来初步体会元胞自动机在物理系统和生命系统这样的交叉学
科中的应用价值。
关键词:元胞自动机;沙堆模型;Matlab 模拟
中图分类号:TU205 文献标识码:A 文章编号:2096-4609(2019)41-0195-002
一、元胞自动机
元胞自动机最初由 Stanislaw M. Ulam
等人提出用来模拟生命系统的所特有的自复
制现象,是空间和时间都离散、物理参量只
取有限数值集的物理系统的理想化模型。目
前主要用于快速计算、计算复杂性的替换形
式、公式化模拟、物理现象模拟等。目前用
于生态学、生物学、社会学、物理学、数学、
化学等很多方面。
二、沙堆模型
沙堆模型是具有自组织临界现象的一
个著名例子。美国物理学家 Per Bak 和 Kan
Chen 做了这样一个研究,他们让沙子一粒
一粒落下,形成逐渐增高的一堆,并借助慢
速录影和计算机模仿精确地计算在沙堆顶部
每落一粒沙会连带多少沙粒移动。在初始阶
段,落下的沙粒对沙堆整体影响很小。但当
沙堆增高到一定程度之后,即使落下一粒沙
也可能导致整个沙堆发生坍塌。Bak 和 Chen
由此提出一种“自组织临界”的理论。由自
组织临界理论得知,当系统状态远离临界点
时,系统中的一个点的状态改变仅仅是一个
局部的改变,对整体影响有限。然而,当系
统状态接近临界点时,系统中一个点的状态
改变可能将会波及整个系统。对沙堆来说,
未接近临界点时,向沙堆上倾倒沙子只会使
沙堆的高度增加,而当这种状态逐渐趋近于
一个临近点的时候,任何一粒新加入的沙子
都可能引起沙堆的规模不等的崩塌。
三、沙堆模型的 Matlab 模拟
由以上的介绍,我们这里使用元胞自
动机对沙堆模型进行模拟:假设沙粒大小
均等,分布在正方形的网格空间内,用每个
元胞个体代表每个沙粒,若使用 Moore 型邻
居:当元胞个体正下方有一个空位时,下一
时刻元胞将填到其下方空位中,若其左下或
右下方为空时,则选择一个空位进行填充,
只有当其下方三个空间均被填充时,元胞状
态保持不动(见图2)。但以上规则显然存
在一个问题:当前元胞在这一时刻所决定的
将要填充的空位可能在下一时刻被其邻居所
抢占,也就是他们的结果缺少相互之间的制
约关系,这样上面定义的规则就无法再执行
下去了。因此我们改而使用 Margolus 邻居
模型,它假设元胞个体的堆积和崩塌的最微
小的运动都发生在一个 2×2 的单元块内,
每次将一个 2×2 的元胞块做统一处理。这
个小单元的划分方式是:在每个周期,单元
图 1 Margolus 邻居模型 图 2 Moore 邻居模型
图3 塌缩规律示意图