1、目 录第一章 绪 论 .11.1元胞自动机的历史进程11.2元胞自动机的应用11.2.1格子气自动机21.2.2元胞自动机仿真与实现1人工生命研究2第二章 元胞自动机的简要介绍 .22.1元胞自动机的定义22.1.1物理学定义22.1.2数学定义22.2元胞自动元胞自动机仿真与实现2机的组成部分22.3元胞自动机的特征和分类22.4元胞自动机理论2第三章 初等元胞自动机的实现 .2第四章 仿真实现 .23.1仿真工具简介23.2元胞自动机仿真与实现3Matlab实验模拟2第五章 Game Of Life 的实现 .2结 论 .2参考文献 .2致 谢 .2元胞自动机仿真与实现4第一章 绪 论1.
2、1 元胞自动机的历史进程元胞自动机(Cellular Automata,简称 CA),亦被称为细胞自动机,它起源于Von.Neumann 和 A.Turing 的数值计算,乃至更早一些的时期。计算机鼻祖Von Neumann 等人给出了元胞自动机的基本概念和初等模型,在美国计算机科学家 S.Wolfram 写的A New Kind of Science 书中,把元胞自动机提升到了一个新的科学层面。这使得一种用于复杂系统的计算模拟的新理论依据和实现方法得以提出,所以,这个领域的科研又一次成为了人们研究的热门。到了上个世纪 70 年代,由于计算机的飞速发展,剑桥的数学家 J.H.Conway2编写
3、了 “生命游戏” (Game of life)这一十分典型的元胞自动机。Game of life 的基本原理是制定一个简单的规则,在这种规则下,通过元胞在空间网格中运行和演化,使得元胞的状态在生与死之间进行改变,最后的可以得出复杂的图形。这种自动机可以对一些复杂现象进行模拟,例如在生命进程中的生存、竞争、灭绝等一些复杂的过程。J.H.Conway 还论证出,这个自动机有着和通用图灵机类似的的计算力,且等价于图灵机,这就意味着,当在合适的初始条件下,我们可以用这种元胞自动机模拟任意的计算机。到了 80 年代,S.Wolfram3等人对元胞自动机的进一步研究使得 CA 理论产生的质变。他对 CA进
4、行的动力学角度处理,而且把计算理论用在研究之中。它的研究理论结果得出,看似很简单的系统亦会得到十分复杂的结构,这从而也证明了出了 CA 方法理论可作很多理论的基础这一观点,这使元胞自动机变成了一个可以在动态演化方向进行探究的非常实用的工具,从此对元胞自动机的理论探索渐渐的快速发展开来。80 年代末,伴随着一些诸如混沌、分形、计算机图形学和复杂性理论等一些有关学科的兴起,CA 理论逐渐快速的变成了非线性前沿科学的一个非常重要分支学科,而且它也慢慢的以一种非常实用的应用技术,逐渐的向其它学科之间进行交叉渗透。元胞自动机仿真与实现51.2 元胞自动机的应用元胞自动机从被研发出来的那一天起,它就被人们
5、广泛地应用在了与人活动息息相关的诸多领域,例如,经济方面、社会方面、科学方面以及军事研究方面。这其中用到的学科有社会科学、生态科学、生物科学、计算机科学、信息科学、数学、物理学、化学、环境科学、地理、军事科学等等。CA 亦能对诸多的一般现象进行研究,这其中包括信息传递、通信、构造、计算、复制、生长、竞争与进化等。同样,在系统整体行为与复杂现象的研究方向,例如,动力学系统理论中有关秩序、紊动、混沌、非对称、分形等,元胞自动机亦给出了一个十分有效的模型工具。此外,在对称加密方面和伪随机序列生成方面,元胞自动机也都有着很大的发展。元胞自动机最大的内在优势是它的并发运算,这个优势可以使它用来研究计算机
6、科学中的并行运算,可以取得很好的运算效果。把元胞自动机应用在物理学领域中,可以用它来模拟具体的一些物理学现象的动态过程。而应用在社会学领域中,一些经济危机的形成与爆发过程,元胞自动机可以进行很好的研究。在环境科学中的应用,森林生长的模型也被一些学者通过元胞自动机成功的应用出来了。1.2.1 格子气自动机格子气自动机(Latt1ce Gas Autmoata,简称 LGA),是由 CA 演变而来,它主要是元胞自动机具体应用在流体力学和统计物理中而演变的一种算法,其更是 CA 的科学研究方向应用成功的典型代表。它不同于“生命游戏” ,LGA 会在模型的实用性方面更加加以注重。LGA 可以很好的用来
7、模拟流体粒子的运动,在其利用了 CA 的动态特征的条件下 4。20 世纪 70 年代初,法国的三位科学家 J.Hardy、Y.Pomeau 和 0.Pazzis 提出了HPP 模型,这个具有划时代意义的模型就是第一个时空、速度等变量完全离散的格子气自动机,用这种格子气自动机运算模拟出来的结果和流体力学中的著名的 Nvaier-Strokes 方程算出来的结果非常接近,但是有一个最大的缺点,格元胞自动机仿真与实现6子气自动机模拟出的流体粒子它的运动方向只允许四个,这个严重的缺点直接导致了应力张量的各向异性,其结果就是不能完全的体现出流体本身的特点,所以,由于这个缺陷的存在,导致了格子气自动机这个
8、算法长期得不到足够的关注。直到 1980 年开始,在 S.Wolrfma 等人的研究下,使得元胞自动机理论长生了实质性的进步,这直接的带领了格子气自动机的飞速发展。到了 1986 年,法国科学家钱 U.Frish、Y.pomeau 和美国科学家 B.HaSSlaeher 在前人J.Hardy、Y.Pomeau 和 0.Pazzis 提出的 HPP 模型的基础上,共同开发出了一种具有很好的实际使用价值的并且基于六角形网络的 LGA 模型,他们把它称为FHP(Fritsch-HaS,lacher 一 Pomeau)模型,同时三个人论证出了基于这种模型的宏观行为与标准的 Nvaier-Stokes
9、方程得出的结论是相符合的。这种新的模型是第一个取得成功的 LGA 模型,同时,这种模型的成功提出,大大激发出了人们对 LGA 模型的研究热情。LGA 自动机可以看成是一个扩展的 LG 模型。我们拿早期的 LGA 模型作为例子,进行其特征的概述 5:(1) 由于格子气自动机自身的特点,因此 LGA 必须是一个可以逆向进行的 CA 模型,其中主要原因是流体粒子本身并不会轻易的消逝在模型空间内。(2) Margu1os 类的邻居模型通常是被用作在 LGA 中,它的意思是在一个 22 的网格空间内,它的规格才可以有效的运行。它的规则可以用图 1-1 来进行简要的说明 6:图1-1 格子气自动机的规则如
10、图所示,我们将图中的黑色小球定义为流体粒子,我们将图中的白色小球定义为元胞。这样定义以后,我们可以得出这样的结论,和其他的 CA 不同,LGA 本身的研究对象不仅仅是单一的一个元胞,更多的是研究包含四个元胞的一个四方块,将其看成一个整体研究它的状态。元胞自动机仿真与实现7(3)如果按照以上的规则和邻居模型进行一次完整的计算后,还需要再依照另一种规则重新计算一次,我们把这种规则定义为将这个 22 的模板沿对角方向滑动。1.2.2 人工生命研究1990 年开始,人工生命开始兴起,并且逐渐发展成为一种复杂的,支柱性的研究学科。作为以一种可以通过科学研究来显示大自然里面各种和生命相关的系统行为特征的人
11、工系统的复杂的科学研究,这种系统可以通过在计算机、机器人等一些人工的媒体上进行一系列的仿真、合成与生命有机体有关系的基本的现象,还可以通过来对“可能的生命现象”的相关的研究和观察,让人们对这些“已知的生命现象进行更好的理解 7。Christopher Langton 等科学家们通过对 CA 的系统的复杂的研究,得出而且延续了人工生命。反过来,人工生命的延续又给元胞自动机带来的新的意义和研究目标。这些使 CA 模型获得了大家的许可并且让人们重新认识到这项研究的意义。从而使人工生命的研究在上世纪 90 年代又一次成了科研的热门方向,也让研究的理论和研究的方法得到了更深层次的发展 8。元胞自动机仿真
12、与实现8第二章 元胞自动机的简要介绍2.1 元胞自动机的定义根据前人研究的经验,通常意义上我们把元胞自动机定义为两种方式:即物理学上的定义与数学上的定义。2.1.1 物理学定义元胞自动机(CA)在实质上看来是一个元胞空间,这个空间被一些很有规则的网格分割成一系列的元胞,每一个被分割出来的单个元胞的状态属性都是有限而离散的,而每一个被分割出来的元胞它的演化的规则也都是局部的,依照这些局部的规则,元胞都会在离散的时间维度上实时更新自身的状态属性,经过这一系列复杂的实时动态演化过程,元胞自动机形成一套完整的动力学系统循环。和一般意义上的动力模型不一样,CA 将物理方程替换成为了演化规则 9。2.1.
13、2 数学定义2.1.2.1 集合论角度的定义假设 CA 的空间维数是 d, 是 t 时刻时在整数集 Z 上元胞状态的所有有限集。当d= 1 时,即为一维元胞自动机时,CA 的动态演化过程即为从 t 时刻开始的元胞状态组合依照演化规则 F 在 t+1 时刻时更新成了新的元胞状态组合,如式 2.1所示。F: (2.1)CA 的动态演化从本质上来说决定于局部规则本身,这种局部规则函数其输入与输出集是有限的状态集合体。一维 CA 中,假设元胞的邻居半径是 r,它的局部规则为 f,在 t 时刻时元胞 i 状态为 ,则局部规则 F 如式 2.2 所示。元胞自动机仿真与实现9F( )=f(, ) (2.2)
14、2.1.2.2 拓扑学角度的定义假设 CA 的空间维数是 d,S z是一个整数集 Z 到有限集 S 的映射,这种映射是元胞所有状态的集合。如 a=(,a -1,a 0,a 1)是一维 CA 空间中的任意点,我们定义 Sz中任意两个点 x 和点 y 之间的距离,由计算结果在 Sz中可建立幵、闭、紧等一些拓扑方面的概念,用定义移位算子来进行构建 CA 的演化规则。2.2 元胞自动机的组成部分CA 的构成可以用图 2.1 来进行表示,从图中我们可以看出其四个主要组成部分。(1)元胞:它是 CA 里面最基本的元素组成,具有状态属性。它在元胞空间的格点上分布着,并且会根据元胞空间划分的差异导致其具有不一样的形状,而且由于研究问题的差异也会导致其状态的差异。(2)元胞空间:它是指元胞分布的所有空间里的网格点的集合整体。依照 CA 维数的差异,元胞空间的划分方式也存在这诸多的不一样,例如一维 CA 是一条直线,