实验二 自然及科学问题的细胞自动机模拟

上传人:壹****1 文档编号:563807126 上传时间:2023-04-23 格式:DOCX 页数:10 大小:478.93KB
返回 下载 相关 举报
实验二 自然及科学问题的细胞自动机模拟_第1页
第1页 / 共10页
实验二 自然及科学问题的细胞自动机模拟_第2页
第2页 / 共10页
实验二 自然及科学问题的细胞自动机模拟_第3页
第3页 / 共10页
实验二 自然及科学问题的细胞自动机模拟_第4页
第4页 / 共10页
实验二 自然及科学问题的细胞自动机模拟_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《实验二 自然及科学问题的细胞自动机模拟》由会员分享,可在线阅读,更多相关《实验二 自然及科学问题的细胞自动机模拟(10页珍藏版)》请在金锄头文库上搜索。

1、人工智能导论实验报告自然及科学问题的细胞自动机模拟班级:计 1103 学号:201107010330 姓名:贾梦洁 成绩评定评阅老师日期实验报告正文一、实验目的该游戏通过模拟生命,建立一个二维举行矩阵来模拟细胞的生命状态,在游戏的中,无 序的细胞会逐渐演化出各种精致、有形的结构;有些形状每一代的细胞结构都在变化。一些 形状已经锁定,不会逐代变化。从而清楚的了解细胞自动机的过程二、实验内容 游戏要求:1. 建立一个二维矩阵,这个矩阵中的每个方格代表居住着一个活着的或死了的细胞。一 个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。2. 如果相邻方格活着的细胞数量过多,这个细胞会

2、因为资源匮乏而在下一个时刻死去; 如果这个数目设定过高,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整 个世界都没有生命。3. 如果周围活细胞过少,这个细胞会因太孤单而死去。如果这个数目设定过低,世界中 又会被生命充满而没有什么变化。(实际中,这个数目一般选取2 或者3;这样整个生命世界才不至于太过荒凉或拥挤,而是 一种动态的平衡。这样的话,游戏的规则就是:当一个方格周围有2 或 3 个活细胞时,方格 中的活细胞在下一个时刻继续存活;即使这个时刻方格中没有活细胞,在下一个时刻也会“诞 生”活细胞。)三、实验所用智能算法基本原理与流程细胞自动机(cellular automata)为

3、模拟包括自组织结构在内的复杂现象提供了一个强 有力的方法。细胞自动机模型的基本思想是:自然界里许多复杂结构和过程,归根到底只是 由大量基本组成单元的简单相互作用所引起。因此,利用各种细胞自动机有可能模拟任何复 杂事物的演化过程。为了理解细胞自动机,可看一个简单例子:找一张画有许多格子的图纸,用铅笔涂黑其 中一些格子就可得到一个图案(样式)。第一排也许有一个或几个格子被涂黑了,而一个简 单的细胞自动机是确定某种简单的规则,从第二排开始往下画出新图案来。具体到每一行中的每一个格子,要观察其上一行的对应格子及该对应格子两边的情况, 然后根据这三个格子是否被涂黑,以及黑白格子如何相邻的已定规则(比如,

4、当这三个格子 从左至右分别为黑、黑、白时,其正下面的格子为白,否则为黑),确定当前的格子是涂黑 还是留白。如此反复进行下去。一条或一组这样的简单规则及简单的初始条件就构成了一个 细胞自动机。细胞自动机论主要研究由小的计算机或部件,按邻域连接方式连接成较大的、并行工作 的计算机或部件的理论模型。诺伊曼细胞空间的所有细胞都在整数网格的结点上,细胞个数为无限。它满足下列条件: 各个细胞都是确定的摩尔型有限自动机;采取五邻域一致连接模式(所有细胞有同样形状的 邻域);不带外部输入,不向外部输出;并且是静态的(邻域不随时间改变。一般的细胞空 间不必要这些条件限制,故此外还有非确定型细胞空间、米雷型细胞空

5、间、连接模式非一致 的细胞空间、带外部输入的细胞空间以及动态的细胞空间等。棋盘格空间是细胞空间的一个直接推广。它有分配到各个细胞的统一的外部输入。或者 说,棋盘格空间是一个程序控制的细胞空间。棋盘格空间里的每一个细胞能够被想象为有一 个局部转移函数的有限集合。因此,棋盘格空间有一个全局转移函数的有限集合。程序中的 各个“指令”选择在该时刻的转移中所使用的全局转移函数。绝大多数细胞自动机产生的都不过是乏味的单调图案,但有一些却大出人们的意料之 外。细胞自动机演示程序:细胞自动机(又称元胞自动机),我们可以把计算机中的宇宙想象成是一堆方格子构成 的封闭空间,尺寸为N的空间就有N*N个格子。而每一个

6、格子都可以看成是一个生命体, 每个生命都有生和死两种状态,如果该格子生就显示蓝色,死则显示白色。每一个格子旁边 都有邻居格子存在,如果我们把3*3的9个格子构成的正方形看成一个基本单位的话,那么 这个正方形中心的格子的邻居就是它旁边的8个格子。 每个格子的生死遵循下面的原则:1如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生 (即该细胞若原先为死,则转为生,若原先为生,则保持不变)。2如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变; 3在其它 情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)四、系统构成与程序设计程序设计流程图如下:

7、五、核心代码void rule(int arraySIZESIZE);/function prototypevoid SetColor(unsigned short ForeColor=5,unsigned short BackGroundColor=2)/change colorHANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);int main()int dataSIZESIZE=0;/0-virus 1-cell 2-boundaryi

8、nt i,j,instruct;srand(time(NULL);/use the current time to seed the random number generator for(i=0;i=SIZE-1;i+)for(j=0;j=SIZE-1;j+)if(i*j=0|i=SIZE-1|j=SIZE-1)dataij=22;/end ifelsedataij=11*(rand()%2);/end for/end forsystem(mode con cols=100 & color 0f);/to set the size and the color of the window/in

9、put a random number except 0 to continue the game while(scanf(%d,&instruct)!=0)system(cls);/clear the screenfor(i=0;i=SIZE-1;i+) for(j=0;j=SIZE-1;j+)if(dataij%10=1)SetColor(10);/function callprintf(%c ,6);/display the characterelse if(dataij%10=0)SetColor(6);/function callprintf(%c ,4);/display the

10、characterElseSetColor(3);/function callprintf(%c ,3);/display the characterif(i*j=0|i=SIZE-1|j=SIZE-1)else dataij=(dataij%10)*10;printf(n);rule(data);/function callprints请输入1继续0结束n);/end while return 0;六、结论分析初始状态下:* * * * * * * *+ * * * * * * t * * * * - * * * * * * * * * * * * * * * * * * * * * * * * * #* * * * * * * * * * * * * + * * * * * * * * + 金*空整* #* *最终结果:(其中蓝色代表活着)七、主要参考文献与网页参考的网页有:1. 百度百科_细胞自动机2. John Conways Game of Life3. Conways Game of Life simulator for Microsoft Windows4. Game of Life Applet

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号