声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7870|回复: 17

[编程技巧] 请教大家一个很简单的元胞自动机程序

[复制链接]
发表于 2008-8-13 09:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
元胞自动机程序状态演化规则 ①如果一个元胞的状态是0,则当它有状态为1的邻元时,该元胞的状态以概率a×b变为1,并且当它的临域中状态为1的邻元越多,其状态转变为1的概率越大;②如果一个元胞的状态是1,则该元胞的状态保持不变。初始传播者位于中心单元格25×25处
取50×50的网格,临域为Moore型,经过50个仿真时钟,知识传播结果的模拟图见附件
请教大家 此元胞自动机的程序怎么写。 多谢大家了  感激不尽

[ 本帖最后由 ChaChing 于 2009-11-16 20:34 编辑 ]
图像.JPG
回复
分享到:

使用道具 举报

发表于 2008-8-15 11:19 | 显示全部楼层
曾经用Fortran写过类似的程序

[ 本帖最后由 无水1324 于 2008-8-16 22:16 编辑 ]
 楼主| 发表于 2008-8-21 08:36 | 显示全部楼层

回复 沙发 express 的帖子

谢谢你  我想请教一下用matlab 怎么写  多谢了
发表于 2008-8-24 19:22 | 显示全部楼层
matlab的demo就有一个很经典的生命游戏life.m。你在命令框里输入life即可运行。都是元胞自动机,原理都差不了多少。只不过改改规则而已。

按照你的说法编了几行代码.。概率随意设的。

  1. %% 初始化
  2. m = 50; X = zeros(m,m); X(25,25) = 1;
  3.    n = [m 1:m-1];   e = [2:m 1];
  4.    s = [2:m 1];   w = [m 1:m-1];
  5. % 绘制初始图形
  6.    [i,j] = find(X); figure(gcf);
  7.    plothandle = plot(i,j,'.', 'Color','blue','MarkerSize',12);
  8.    axis([0 m+1 0 m+1]);
  9. %% 演化
  10.    for k = 1:50
  11.     N = X(n,:) + X(s,:) + X(:,e) + X(:,w) + X(n,e) + X(n,w) + X(s,e) + X(s,w);    %邻居数
  12.     RAND = rand(m);    %概率阵
  13.     X = X | (N.*RAND>0.99);    %换代
  14.     [i,j] = find(X); set(plothandle,'xdata',i,'ydata',j);    %绘图
  15.     drawnow; pause(0.2); k  
  16.    end
复制代码

[ 本帖最后由 ChaChing 于 2010-6-25 23:55 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-8-28 00:23 | 显示全部楼层

回复 地板 kettyx 的帖子

太太感谢你了,好厉害啊你

再请问一下 你提到的   “ matlab的demo就有一个很经典的生命游戏life.m” ,我怎么找不到,我是6.5版本,我的matlab文件里只有一个"demos" 文件夹,里面是些网页,没有程序。但在命令框里输入life可运行,请问在哪里呢

[ 本帖最后由 ChaChing 于 2009-12-26 23:39 编辑 ]
发表于 2008-8-28 08:59 | 显示全部楼层

回复 feirfei 的帖子

看原代码,输入edit life

[ 本帖最后由 ChaChing 于 2009-12-26 23:41 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-8-28 11:41 | 显示全部楼层
多谢sigma665! 已经帮了我好几次了,非常感谢你

对 地板 kettyx 的帮助,深表感谢,但我还是不知道怎么修改才能达到附件里的四个图的效果,如a 、b 取不同的值效果不一样;还有怎么出现图中的那些元胞的方格,我用 grid on 试过,但好像跟图中不一样  

请大家帮帮我,感谢大家了

[ 本帖最后由 ChaChing 于 2009-12-26 23:42 编辑 ]
发表于 2008-8-28 17:07 | 显示全部楼层
演化概率不一样得到的图不一样。演化概率的设计也算是元胞自动机应用的重要部分了,取决于具体的情况。
就像密码一样。猜不到。:@)

[ 本帖最后由 ChaChing 于 2009-12-26 23:43 编辑 ]
 楼主| 发表于 2008-8-28 19:35 | 显示全部楼层

回复 10楼 kettyx 的帖子

非常感谢你的回复! 再请教一下 怎么出现图中的那些元胞的方格,我用 grid on 试过,但好像跟图中不一样 ! 还有 概率也是可以设的吧, 如你这个是随机的, (N.*RAND>0.99);  但附件中好像是每次取固定的值,如 a=0.2,b=0.3 ; 怎么换成固定的呢,好像表达的也不是很清楚
发表于 2008-8-29 16:14 | 显示全部楼层
我这个 变化概率 是 rand()>0.99 ,这个概率应该不是变化的吧。

【以概率a×b变为1】,怎么用rand描述,楼主去研究研究吧。
哈,不好意思,我刚才试了一下pcolor不成功。

[ 本帖最后由 kettyx 于 2008-8-29 16:21 编辑 ]
 楼主| 发表于 2008-8-29 23:53 | 显示全部楼层

回复 12楼 kettyx 的帖子

多谢你 ! 非常感谢
发表于 2008-11-6 23:11 | 显示全部楼层
请问楼主,附件中的四个图是从哪篇文章得来的,我非常感兴趣,多谢!
发表于 2009-2-22 15:04 | 显示全部楼层
四个图是不是火灾的演化?
发表于 2009-3-17 23:15 | 显示全部楼层

matlab网格

我也想知道附件中的matlab网格是怎么实现的?我试了很多办法都不行,请大家回复
发表于 2009-5-30 09:49 | 显示全部楼层
imshow 函数
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 19:03 , Processed in 0.113556 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表