MATLAB元胞自动机报告,元胞自动机概述与MATLAB实现

什么是元胞自动机?

元胞自动机(cellular automata,CA) 是一种时间、空间、状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力。它能构建随时间推移发生状态转移的系统,细胞存在于一维或多维网格中,每个细胞都有一个或多个状态,每个细胞都有邻居(即邻近的细胞)。

元胞自动机分类

平稳型:自任何初始状态开始,经过一定时间运行后,元胞空间趋于一个空间平稳的构形,这里空间平稳即指每一个元胞处于固定状态。不随时间变化而变化。

周期型:经过一定时间运行后,元胞空间趋于一系列简单的固定结构(Stable Patterns)或周期结构(Perlodical Patterns)。由于这些结构可看作是一种滤波器(Filter),故可应用到图像处理的研究中。

混沌型:自任何初始状态开始,经过一定时间运行后,元胞自动机表现出混沌的非周期行为,所生成的结构的统计特征不再变止,通常表现为分形分维特征。

复杂型:出现复杂的局部结构,或者说是局部的混沌,其中有些会不断地传播。

77628828b8c522bbd33ca4a1af87b0b7.gif

奇偶规则

奇偶规则是定义在二维网格上的一种元胞自动机。每个网格的状态用0各1表示。

(1)     对应于每一个元胞位置(i,j)计算出其八个最近领居在t时刻的状态值St的总和M(i,j)。

(2)     根据M(i,j)取值的奇偶性来决定下一时刻t+1该点的状态St+1(i,j)。当M(i,j)为偶数时,St+1(i,j)等于0;当M(i,j)为奇数时,St+1(i,j)等于1。八个点和为偶数,则变为0,为奇数则变为 1

平稳型元胞自动机实现

MATLAB

% 规则,先把中间点置为1,每一时间步对每一点,如果周围

% 八个点和为偶数,则变为0,为奇数则变为 1

Map = [1 1 1; 0 0 0];

colormap(Map);

% 设置网格大小

S = 121;

L = zeros(S);

% 把中间一个数设置为 1 作为元胞种子

M = (S+1)/2;

L(M, M) = 1;

Temp = L;

imagesc(L);

% 计算层数

Layer = (S-1)/2 + 1;

for t=2:Layer

for x=M-t+1:M+t-1

if x==M-t+1 || x==M+t-1

for y=M-t+1:M+t-1

SUM = 0;

for m=-1:1

for n=-1:1

if x+m>0 && x+m<=S && y+n>0 && y+n<=S

SUM = SUM + L(x+m, y+n);

end

end

end

SUM = SUM - L(x, y);

Temp(x, y) = mod(SUM, 2);

end

else

y = M-t+1;

SUM = 0;

for m=-1:1

for n=-1:1

if x+m>0 && x+m<=S && y+n>0 && y+n<=S

SUM = SUM + L(x+m, y+n);

end

end

end

SUM = SUM - L(x, y);

Temp(x, y) = mod(SUM, 2);

y = M+t-1;

SUM = 0;

for m=-1:1

for n=-1:1

if x+m>0 && x+m<=S && y+n>0 && y+n<=S

SUM = SUM + L(x+m, y+n);

end

end

end

SUM = SUM - L(x, y);

Temp(x, y) = mod(SUM, 2);

end

end

L = Temp;

imagesc(L);

pause(0.1);

end

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

%规则,先把中间点置为1,每一时间步对每一点,如果周围

%八个点和为偶数,则变为0,为奇数则变为1

Map=[111;000];

colormap(Map);

%设置网格大小

S=121;

L=zeros(S);

%把中间一个数设置为1作为元胞种子

M=(S+1)/2;

L(M,M)=1;

Temp=L;

imagesc(L);

%计算层数

Layer=(S-1)/2+1;

fort=2:Layer

forx=M-t+1:M+t-1

ifx==M-t+1||x==M+t-1

fory=M-t+1:M+t-1

SUM=0;

form=-1:1

forn=-1:1

ifx+m>0&&x+m<=S&&y+n>0&&y+n<=S

SUM=SUM+L(x+m,y+n);

end

end

end

SUM=SUM-L(x,y);

Temp(x,y)=mod(SUM,2);

end

else

y=M-t+1;

SUM=0;

form=-1:1

forn=-1:1

ifx+m>0&&x+m<=S&&y+n>0&&y+n<=S

SUM=SUM+L(x+m,y+n);

end

end

end

SUM=SUM-L(x,y);

Temp(x,y)=mod(SUM,2);

y=M+t-1;

SUM=0;

form=-1:1

forn=-1:1

ifx+m>0&&x+m<=S&&y+n>0&&y+n<=S

SUM=SUM+L(x+m,y+n);

end

end

end

SUM=SUM-L(x,y);

Temp(x,y)=mod(SUM,2);

end

end

L=Temp;

imagesc(L);

pause(0.1);

end

效果图

1214366d1f7fc05f3cc4de8febdb0ec3.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python(33)多进程和多线程的区别

多线程可以共享全局变量&#xff0c;多进程不能。多线程中&#xff0c;所有子线程的进程号相同&#xff1b;多进程中&#xff0c;不同的子进程进程号不同。 #!/usr/bin/python # -*- coding:utf-8 -*- import os import threading import multiprocessing count_thread 0 coun…

Java FilterInputStream reset()方法与示例

FilterInputStream类的reset()方法 (FilterInputStream Class reset() method) reset() method is available in java.io package. reset()方法在java.io包中可用。 reset() method is used to reset this FilterInputStream to the position set by the most recent call of m…

不同php文件,php-不同文件夹的不同登录(会话)

我有一个Web服务,需要用户登录并创建标准$_SESSION [‘XXX’]个用户变量.我想为应用程序创建一个“演示”,因此为它创建了另一个文件夹.相同的代码在那里,除了数据库以外的所有东西.问题是,当用户登录这两个帐户之一时,它可以访问两个帐户.因此,如果他登录了演示应用程序,它将使…

Java Hashtable containsValue()方法与示例

哈希表类containsValue()方法 (Hashtable Class containsValue() method) containsValue() method is available in java.util package. containsValue()方法在java.util包中可用。 containsValue() method is used to check whether this table Hashtable associated one or m…

php session redis db,php session redis 配置

具体环境&#xff1a;一台apachephp的服务器(yum安装remi源及配置 httpd-2.2.15 php-5.4.45)一台redis服务器(yum安装remi源及配置 redis-3.2.6)保证apache服务器可以访问redis服务器的6379端口具体步骤&#xff1a;1、在apachephp服务器上安装redis扩展点击(此处)折叠或打开yu…

sigprocmask, sigpending, sigsuspend的用法

sigset_t set sigemptyset(&set) :清空阻塞信号集合变量 sigfillset(&set) &#xff1a;添加所有的信号到阻塞集合变量里 sigaddset(&set,SIGINT):添加单一信号到阻塞信号集合变量 sigdelset(&set,SIGINT):从阻塞信号集合变量中删除单一信号 void handler(int …

Java Calendar getDisplayName()方法与示例

日历类的getDisplayName()方法 (Calendar Class getDisplayName() method) getDisplayName() method is available in java.util package. getDisplayName()方法在java.util包中可用。 getDisplayName() method is used to return string denotation of the given calendar fie…

matlab dir数,DIR - matlab函数

DIR List directory.DIR directory_name lists the files in a directory. Pathnames andwildcards may be used. For example, DIR *.m lists all the M-filesin the current directory.D DIR(‘directory_name‘) returns the results in an M-by-1structure with the field…

(四)其他的说明

2019独角兽企业重金招聘Python工程师标准>>> 关于日志&#xff0c;主要是利用aop来实现的。cn.demoframe.test.frame.service.LogAspect&#xff0c;这里在方法前做了个切面setReqReachTime&#xff0c;设置了一个请求达到时间。接下来还有个切面&#xff0c;是在co…

Java LocalDate类| 带示例的compareTo()方法

LocalDate类compareTo()方法 (LocalDate Class compareTo() method) compareTo() method is available in java.time package. compareTo()方法在java.time包中可用。 compareTo() method is used to compare this LocalDate object to the given object. compareTo()方法用于将…

vm中linux物理内存不足解决方案

为什么80%的码农都做不了架构师&#xff1f;>>> 之前创建的一个center os,默认是8GB&#xff0c;经过一顿折磨&#xff0c;装jdk,tomcat,redis,mycat,nginx,mysql,hadoop...终于&#xff0c;内存不足了&#xff0c;在使用docker build某镜像的时候。迭代懵逼了&am…

matlab7.0 6.5,任何处理matlab6.5与7.0.1的兼容问题

mdl文件在6.5里面做的&#xff0c;但是到了7.0里面却打不开&#xff0c;下面就是相关信息&#xff1a;Warning: Unable to load model file d:\MATLAB7\work\*.mdl. Run "bdclose all; set_param(0, CharacterEncoding, Enc)" where Enc is one of windows-1252, I…

Java BigInteger类| 带有示例的减去()方法

BigInteger类减去()方法 (BigInteger Class subtract() method) subtract() method is available in java.math package. exclude()方法在java.math包中可用。 subtract() method is used to subtract the given value from the value of this BigInteger. exclude()方法用于从…

php删除第一个字母,php – 正在上传的文件将第一个字母切断

我正在将网站从具有WS2003,IIS6,PHP 5.2的服务器迁移到具有WS2008,IIS7和PHP 5.3的服务器我有一个html表单,上传文件到网站.if(isset($_POST["Upload"])){echo "";print_r($_POST);print_r($_FILES);echo "";}?>在旧服务器上工作得很好,但在…

.7z.001,.7z.002这样的文件如何解压

1 如图所示&#xff0c;压缩分卷没有显示关联的软件来打开&#xff0c;Winrar右击也无法解压 2 可以使用7-ZIP软件打开该文件&#xff0c;然后选择提取&#xff08;相当于Winrar的解压&#xff09;&#xff0c;然后选择提取路径&#xff0c;默认是同一个文件夹&#xff0c;点击…

二进制 |_元二进制搜索| 单边二元搜索

二进制 & |Meta Binary Search is a one-sided binary search where we work on the index using bit manipulation. We are to find the target index by using bit manipulation like the below example where the algorithm is explained. 元二进制搜索是一种单面二进制…

codeMirror配置

介绍 CodeMirror是一款在线的支持语法高亮的代码编辑器。官网&#xff1a;http://codemirror.net/ 下载后&#xff0c;解压开到的文件夹中&#xff0c;lib下是放的是核心库和核心css&#xff0c;模式下放的是各种支持语言的语法定义&#xff0c;主题目录下是支持的主题样式。一…

应梦框架9.0框架_.Net框架能力问题和解答

应梦框架9.0框架This section contains Aptitude Questions and Answers on .Net Framework. 本节包含有关.Net Framework的能力问题和解答。 1) There are the following options are given below, what are parts of the .NET Framework? FCL (Framework Class Library)Web…

php中文网视频放不了,【杂谈】看php中文网视频课程的正确姿势!

看在线课程如何集中精力学习&#xff1f;ki4网为你分享看ki4网视频课程的正确姿势&#xff01;不谈理论给些实用建议&#xff0c;可以根据你的情况多尝试&#xff0c;看看哪条对你有用&#xff01;1、选一门自己有兴趣而且教师讲得好的课程。(点击学习&#xff1a;ki4网视频教程…

算法笔记_065:分治法求逆序对(Java)

目录 1 问题描述 2 解决方案 2.1 蛮力法 2.2 分治法&#xff08;归并排序&#xff09; 1 问题描述 给定一个随机数数组&#xff0c;求取这个数组中的逆序对总个数。要求时间效率尽可能高。 那么&#xff0c;何为逆序对&#xff1f; 引用自百度百科&#xff1a; 设 A 为一个有 n…