书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
第7章目录
7.1 什么是细胞自动机
一、CA
- 术语细胞自动机的英文“cellular automata”是复数形式,
- 示例程序模拟的细胞自动机其英文“cellular automaton”是单数形式。
- 为了简化,我们用“CA”表示细胞自动机。
前6章的对象(运动者、粒子、小车、Boid对象)只有一种“状态”,它们的运动方式可能很复杂,但在整个生存期中始终都保持一种形态。
我们曾想让运动对象随时间的推移发生状态变化(例如,转向力的权重可以变化),但还没有完全将其付诸实践。
在此背景下,细胞自动机跨出了巨大的一步:它能构建随时间推移发生状态转移的系统。
二、细胞自动机特性
细胞自动机是由“细胞”对象组成的系统,它具有以下特性:
- 细胞存在于网格中(在本章里,我们将以示例形式学习一维和二维细胞自动机,但细胞自动机可以存在于任意数量的维度中);
- 每个细胞都有一个状态,但可能出现的状态数量是有限的,最简单的情况就是1和0(可以称为“开”和“关”,或者“生”和“死”);
-
每个细胞都有邻居,定义“邻居”的方式有多种,通常指邻近的细胞。
三、起源
- 细胞自动机的发明归功于斯塔尼斯拉夫·乌拉姆和约翰·冯·诺伊曼,20世纪40年代,他们都是洛斯阿拉莫斯国家实验室的研究员。当时乌拉姆正在研究晶体的生长,而冯·诺伊曼正在设想一个能自我复制的机器人世界。
- CA的可视化程序看起来更像晶体生长的模拟,而不是机器人的自我复制。
- 对此,请你把机器人想象成网格中的图案(在一张方格纸中画一些方块),这些图案按照一定规则自我复制,这实质上就是CA的过程,它表现出了与生物繁殖和物种进化相似的行为。
- 在自我复制和CA方面,冯·诺依曼的工作在概念上类似于最著名的细胞自动机模型“生命游戏”,我们将在7.3节详细讨论这个模型。
- 在细胞自动机领域,最有意义(且篇幅最长)的科学研究是Stephen Wolfram于2002年发表的著作A New Kind of Science,共计1280页。你可以在网上免费获取这本书
(http://www.wolframscience.com/nksonline/toc.html)。
- 该书声明,CA并不是一种简单的游戏,它和生物学、化学、物理学以及各个科学分支都密切相关。
- 本章将带你简要了解Wolfram的理论(我们只关注代码实现),如果下面的示例程序激发了你的好奇心,你可以去读一读这本书。
网友评论