发新话题
打印

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

请教大家一个很简单的元胞自动机程序

元胞自动机程序状态演化规则 ①如果一个元胞的状态是0,则当它有状态为1的邻元时,该元胞的状态以概率a×b变为1,并且当它的临域中状态为1的邻元越多,其状态转变为1的概率越大;②如果一个元胞的状态是1,则该元胞的状态保持不变。初始传播者位于中心单元格25×25处

取50×50的网格,临域为Moore型,经过50个仿真时钟,知识传播结果的模拟图见附件




请教大家 此元胞自动机的程序怎么写。 多谢大家了  感激不尽
附件: 您所在的用户组无法下载或查看附件

TOP

曾经用Fortran写过类似的程序

[ 本帖最后由 无水1324 于 2008-8-16 22:16 编辑 ]
EXPRESS

TOP

回复 沙发 express 的帖子

谢谢你  我想请教一下用matlab 怎么写  多谢了

TOP

matlab的demo就有一个很经典的生命游戏life.m。你在命令框里输入life即可运行。都是元胞自动机,原理都差不了多少。只不过改改规则而已。

按照你的说法编了几行代码.。概率随意设的。
复制内容到剪贴板
代码:
%% 初始化
m = 50;
X = zeros(m,m);
X(25,25) = 1;

   n = [m 1:m-1];
   e = [2:m 1];
   s = [2:m 1];
   w = [m 1:m-1];
   
  % 绘制初始图形
   [i,j] = find(X);
   figure(gcf);
   plothandle = plot(i,j,'.', ...
      'Color','blue', ...
      'MarkerSize',12);
   axis([0 m+1 0 m+1]);
%% 演化
   for k = 1:50
    %邻居数
    N = X(n,:) + X(s,:) + X(:,e) + X(:,w) + ...
     X(n,e) + X(n,w) + X(s,e) + X(s,w);
    %概率阵
    RAND = rand(m);
    %换代
    X = X | (N.*RAND>0.99);
    %绘图
    [i,j] = find(X);
    set(plothandle,'xdata',i,'ydata',j)
    drawnow
    pause(0.2)
    k  
   end
本帖最近评分记录
  • sogooda 振动币 +50 2008-8-26 09:24 理由:这是一个非常有见地的意见

TOP

回复 地板 kettyx 的帖子

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

TOP

回复 地板 kettyx 的帖子

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

TOP

回复 6楼 feirfei 的帖子

看原代码,输入edit life
本帖最近评分记录
  • sogooda 振动币 +30 2008-8-28 10:48 理由:谢谢你为论坛提出宝贵意见
http://www.chinavib.com/forum/?fromuser=sigma665

TOP

回复 7楼 sigma665 的帖子

多谢sigma665! 已经帮了我好几次了,非常感谢你

TOP

回复 地板 kettyx 的帖子

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

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

TOP

演化概率不一样得到的图不一样。演化概率的设计也算是元胞自动机应用的重要部分了,取决于具体的情况。
就像密码一样。猜不到。

[ 本帖最后由 kettyx 于 2008-8-28 17:09 编辑 ]

TOP

回复 10楼 kettyx 的帖子

非常感谢你的回复! 再请教一下 怎么出现图中的那些元胞的方格,我用 grid on 试过,但好像跟图中不一样 ! 还有 概率也是可以设的吧, 如你这个是随机的, (N.*RAND>0.99);  但附件中好像是每次取固定的值,如 a=0.2,b=0.3 ; 怎么换成固定的呢,好像表达的也不是很清楚

TOP

我这个 变化概率 是 rand()>0.99 ,这个概率应该不是变化的吧。

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

[ 本帖最后由 kettyx 于 2008-8-29 16:21 编辑 ]

TOP

回复 12楼 kettyx 的帖子

多谢你 ! 非常感谢

TOP

请问楼主,附件中的四个图是从哪篇文章得来的,我非常感兴趣,多谢!
More Information on http://jxinwu.blog.sohu.com

TOP

发新话题