元胞自动机java代码 c语言元胞自动机代码

元胞自动机要自己写代码吗

要。元胞自动机要自己写代码。元胞自动机(cellularautomata,CA)是一种时间、空间、状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型。

创新互联是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,小程序设计,十多年建站对铜雕雕塑等多个方面,拥有多年的网站推广经验。

元胞自动机的matlab代码

你的sum和cells都是矩阵,但是维度不同。

如果是这样,你在这段程序的前面给sum预分配个空间sum=zeros(size(cells,1),size(cells,2))。

然后注意遍历x,y的时候,不要到边界上,否则x+1,y+1之类的就越界了。

求毕业设计《基于ARM的元胞自动机的设计》

百度啊

一个VB做的演示元胞自动机的小程序,可以自己编辑图案,用配置文件设置参数(都已经设置好了),另外带有作者自己编辑的几个小图案,包括著名的“滑翔机”

以ARM为核心 应用不广泛

生命游戏的java源代码。基于元胞自动机的生命游戏,是学习和深入CA方法的很好例子。-life game of java source code. Based on Cellular Automata game of life, and in-depth study of CA good example.

《分形算法与程序设计——Visual C++实现》的第七章和第十章源码 包括一维元胞自动机生成的Sierpinski三角形、随机分布的Sierpinski三角形、二维元胞自动机小程序源代码、DLA模型源代码、用DLA模型模拟植物的生长源代码、原点演化圆形边界的DLA程序源垂直演化折线干预的DLA程

[CATest.rar] - 在flashmx下编写的程序,解释并演示元胞自动机规则,并进行动画演示

[Sand2D_CA.rar] - 模拟砂堆的元胞自动机源代码。对于认识和学习元胞自动机(CA)很有帮助

[apply.rar] - 有关元胞自动机的应用方面的文章,很有参考价值

[yuanbao.rar] - 有关元胞自动机的基本知识,好好看看,可加深对元胞自动机的理解

细胞自动机(Cellular Automata)最初由数学家 Stanislaw M. Ulam(1909-1984)与 John von Neumann(1903-1957)於 1950 年代所提出 ,在型态表现上,细胞自动机是一个离散型的动力系统( Discrete Dynamical Systems)。在 1940 年代 ,von Neumann 与共事的科学家们合作设计了可储存程式的数位电脑之后,他就对自我复制发生兴趣:能储存程式的机器能不能自我复制

? von Neumann 认为,至少在原则上与形式上是可行的,於是他开始作这方面的理论研究,过程中他提出了「细胞自动机」的概念, 这个实际构想是由罗沙拉摩斯的数学家 Ulam 所建议的

。当细胞自动机在电脑上模拟的时候,几乎可以复制出类似於自然界当中实际发生的动力系统运作,这使得细胞自动机成为了研究复杂系统行为的最初理论框架,罗沙拉摩斯的博士后研究员 Christopher Langton 因而提出了「人工生命」( Artificial Life )这个名词 , 细胞自动机便是人工生命的第一个雏形,并且变成复杂性科学,或者说是复杂适应性系统的其中一支。

细胞自动机是由一些特定规则的格子所组成,每个格子看做是一个细胞;每一个细胞可以具有一些状态,但是在某一时刻只能处一种状态之中。随著时间的变化(我们称作「叠代」过程),格子上的每一个细胞根据周围细胞的情形,按照相同的法则而改变状态,换句话说,一个细胞的状态是由上一个时刻所围绕的细胞的状态所决定。以人工生命的角度来看,细胞自动机可以视为一个让许多单细胞生物生活的世界,在我们设定好这个世界的初始状态之后,它们便按照同一个规则做演化。

设计一个细胞自动机需要包含几个部份:

◆ 决定细胞活动空间的维度

◆ 定义细胞可能具有的状态

◆ 定义细胞改变状态的规则

◆ 设定细胞自动机中各个细胞的初始状态

细胞自动机,在细胞活动的空间上,可以是一维的,二维的,三维的,或更高维度,在这个网页,笔者要分别介绍二维的细胞自动机(也称作「生命游戏」),与一维的细胞自动机。透过不同的设计,细胞自动机可以展现无限的多样性,其中最让人惊异的是有些细胞自动机可以产生存在於大自然的景象,例如贝壳上的图案、雪花的结构、蜿蜒的河流等等,另外,我们也可以发现,这些小方格的变化似乎展现了许多真实生命的特质,例如,细胞自动机中的细胞们会像有机生物一般,有移动、成长、灭亡与自我复制等类似的行为。

就形式而言,细胞自动机有三个特徵:

◆ 平行计算(parallel computation):每一个细胞个体都同时同步的改变

◆ 局部的(local):细胞的状态变化只受周遭细胞的影响。

◆ 一致性的(homogeneous):所有细胞均受同样的规则所支配

事实上,有些研究学者更进一步猜测,我们存在的这个宇宙是否就是一种极其复杂的细胞自动机,我们的宇宙的确与理论上的细胞自动机有很多相似的地方,像是上述的细胞自动机之三个特徵,宇宙也都符合:宇宙是平行处理的,宇宙中的每一点受邻近状态的影响最大,宇宙各处遵循著同样的自然律。虽然与整个宇宙相比,细胞自动机的规则是过於简单,但是它里面所蕴含的道理可能与宇宙的机制是相通的。 理论物理学家 Stephen Wolfram(1959-)就指出 ,细胞自动机的数学架构,与一些造成真实世界的复杂物理系统之数学架构是完全一样的,也许这正是掌管遗传重任的 DNA 所赖以工作的原理 。当你看到自然界那些贝壳或指纹曲折的图案时,不免要问 :「这麼复杂的图案要如何编码到 DNA 里头呢?」Wolfram 说 :「如果我猜的不错,那些图形是由类似於细胞自动机的简单法则所产生的,而这样的编码显然是易如反掌。」

细胞自动机以简单的规则,却能够产生复杂的动态交互现象,显然我们不该只是以一个数学游戏,来看待它。这些年来,细胞自动机已经被运用於不同领域的研究,包括通讯、计算、建设、生长、再生、竞争及演化。细胞自动机已为物理中平常的微分方程式提供极为简单的模型,例如热和波的波动方程,同时也为湍流、混沌、碎形等提供了离散型的模型,最后,利用细胞自动机所做的生物模型也被提出。接下来,笔者将尽可能地介绍细胞自动机的规则、范例与相关资讯,以下的介绍分为两种不同类型的细胞自动机:

2 细胞自动机 Cellular Automata (元胞自动机)

生命游戏,与其规则

生命游戏(Game of Life)是二维的细胞自动机,由剑桥大学的数学家 John Horton Conway 於 1970 年所提出的。他构想 :一群细胞於平面中以一定的条件成长时,会受到什麼制约 ?他认为细胞不会无限制的成长,於是他定义细胞在过度孤单与拥挤时会死亡,这样的构想使他提出比 John von Neumann 的设计更为简单的细胞自动机。在这个细胞自动机中,把平面分割成很多方格子(类似棋盘),每一格子代表一个细胞,每一个细胞有八个邻居,这些细胞有两种状态:「生」或「死」,存活的细胞我们在方格内涂上特定单一的颜色,而死亡的细胞我们则不涂色。Conway 生命游戏的规则(我们称为 Life Rule)叙述如下:

◆ 对於存活的细胞(涂色的方格):

当八个邻近细胞中,只有零个或一个是活细胞时, 则该细胞会因孤独而死亡

当八个邻近细胞中,恰有二或三个是活细胞时,则该细胞继续存活

当八个邻近细胞中,有四个或超过四个是活细胞时,则该细胞会因拥挤而死亡

◆ 对於死亡的细胞(未涂色的空方格):

当八个邻近细胞中,恰有三个是活细胞时,则该处诞生一个活细胞

或者,我们也可以这样表示规则:

◆ 对於存活的细胞:

当有二或三个存活的邻近细胞时,才能继续存活(表示为 Survivals=23)

◆ 对於死亡的细胞:

当恰有三个存活的邻近细胞时,则诞生活细胞(表示为 Births=3)

我们可以将规则合起来表示成 Life Rule=S/B=23/3,这样的表示法,我们称为「规则通用表示法」,这种表示法以后会常常用到

生命游戏的规则就是这麼简单 。当 Conway 提出生命游戏后,马上造成轰动,不只是一些普通人在玩,而一些有名的数学家及电脑学家也乐此不疲。造成轰动的原因是,没有人想到仅仅几条简单的规则,竟然就能产生类似於生命演化过程中无比复杂的现象。当你把这几个简单的规则变成电脑程式以后,它们似乎真的会让电脑萤幕活起来。

用心注视,萤幕上活跃著各种动作,就好像你用显微镜观察一滴池塘水所见到的微生物一样。开始的时候,你可以让萤幕上随意散布著活细胞,然后就会看到它们自我组织成各式各样连贯性的结构。有的会滚动,有的好像野兽呼吸一般来回震汤,你还可以发现「滑翔机」--一群活细胞以固定的速度滑过萤幕,还有「滑翔机—机关枪」稳定的发射出新的滑翔机,以及其他结构不动声色的把滑翔机一一吃掉。你或许还可看到一只优闲的金鱼,摇头晃脑地上下摆动,然后消失在池塘边。每一次出现的画面都不一样,没有人看过所有可能的画面。你将在下个单元看见这些范例 ,不过在看见那些景象之前,笔者必须先介绍 Conway 生命游戏中简单的稳定结构的几个例子,我们可以将这些稳定的结构分成三类:

◆ 第一类:在叠代过程中,细胞群不会改变其状态(形状)。


名称栏目:元胞自动机java代码 c语言元胞自动机代码
URL分享:http://ybzwz.com/article/dosocpc.html