更改

跳到导航 跳到搜索
删除423字节 、 2016年7月17日 (日) 06:57
第186行: 第186行:     
=== “方格宇宙”的编码 ===
 
=== “方格宇宙”的编码 ===
+
显然,对于最简单的一类细胞自动机,任何一组规则的输入都是上表所列的8种情况,而不同的仅仅是输出部分。我们把第一个规则集的输出部分写成:00110101,第二组规则集的输出部分写成:01110110,显然这两个输出不同,但它们都是一个长度为8的二进制字符串。我们可以断言任何一个长度为8的二进制串都应该对应一组规则。反过来讲,所有可能的规则集都能写为长度为8的二进制串,这一共有28=256种可能,也就是说规则集一共仅有256个。我们知道,任意一个二进制串都对应一个十进制的数字,比如00110101对应的十进制数是53。所以,采用这种用10进制数字编码的二进制串方法,我们就把规则集进行编码。这种编码的方法很有效,因为任何细胞自动机的规则都逃不出这套编码方案,但是下面我们将看到这种方法有些麻烦,所以我们还常常使用另外一套编码的方法。
然,
+
 
对于
+
如果细胞自动机的邻居半径不是1,那么上述编码方案的长度将会急剧增加。例如一个邻居半径为2的细胞自动机的所有可能输入就是25=32种,因而根据上面的原理,我们的编码也需要32位长,这显然不实际了,因此我们应该能简化该编码方案。考虑这样的规则集,其中每一条规则的输入都仅仅考虑邻居区域的状态数值之和。比如在最简细胞自动机中,某细胞的邻居区域的三个细胞状态是011,则0+1+1=2,这样输入就是2。如果是010呢,那么0+1+0=1,该输入就是1。这样所有的输入可能仅仅有4个包括0,1,2,3。我们把所有的输入列出,按照类似上面的方法就给每个输入指定输出的状态就得到了该编码。比如一条规则的输入输出对应如下:
+
 
简单的一类
+
[[File:屏幕快照 2015-12-12 00.39.50.png|标题1]]
细胞
+
 
自动机,
+
[[File:屏幕快照 2015-12-12 00.41.00.png|标题2]]
+
 
+
把1001也就是9作为该细胞自动集的编码。当邻居半径增大到2的时候,所有可能的输入是5个,所以编码长度是5,显然比刚才简化多了。因而这种编码方案为短编码方案。
一组
+
 
规则
  −
  −
输入
  −
都是上表
  −
  −
列的
  −
8
  −
  −
情况
  −
  −
而不同的
  −
仅仅
  −
  −
  −
  −
部分
  −
  −
我们把第一个
  −
规则
  −
集的
  −
  −
  −
部分
  −
  −
成:
  −
00
  −
1
  −
1
  −
01
  −
01
  −
,第
  −
  −
  −
规则
  −
  −
  −
  −
  −
部分
  −
  −
成:
  −
0
  −
111
  −
0
  −
1
  −
1
  −
0
  −
  −
  −
然这
  −
  −
  −
  −
出不同,
  −
  −
它们都是一个
  −
长度
  −
  −
8
  −
的二
  −
  −
制字
  −
  −
  −
  −
我们可以断
  −
  −
  −
  −
一个
  −
长度
  −
  −
8
  −
的二
  −
  −
  −
  −
都应该
  −
  −
应一组
  −
规则
  −
  −
反过来
  −
  −
  −
  −
有可
  −
  −
  −
规则
  −
集都
  −
  −
  −
  −
长度
  −
  −
8
  −
的二
  −
  −
  −
  −
,这一
  −
  −
  −
2
  −
8
  −
=256
  −
种可
  −
  −
,也就是
  −
说规则
  −
集一
  −
共仅
  −
  −
25
  −
6
  −
个。
  −
我们
  −
知道
  −
  −
  −
意一个二
  −
  −
  −
  −
  −
  −
应一个十
  −
  −
制的
  −
  −
字,比如
  −
0
  −
0
  −
1
  −
1
  −
01
  −
01
  −
  −
应的
  −
  −
  −
  −
  −
  −
53
  −
  −
  −
以,
  −
  −
用这种用
  −
10
  −
  −
  −
  −
字编
  −
  −
的二
  −
  −
  −
  −
方法,
  −
我们就把
  −
规则
  −
  −
  −
  −
  −
  −
  −
这种编
  −
  −
的方法很有
  −
  −
,因
  −
  −
  −
  −
细胞
  −
自动机的
  −
规则
  −
  −
  −
不出这
  −
  −
  −
  −
方案,
  −
  −
是下
  −
面我们
  −
  −
看到这种方法有些麻烦,
  −
  −
以我们还
  −
常常使
  −
  −
另外
  −
  −
  −
  −
  −
的方法。
  −
如果
  −
细胞
  −
自动机的
  −
  −
  −
半径
  −
不是
  −
1
  −
  −
那么上
  −
  −
  −
  −
方案的
  −
长度
  −
  −
  −
急剧增加
  −
  −
  −
如一个
  −
  −
  −
半径
  −
  −
2
  −
  −
细胞
  −
自动
  −
机的
  −
  −
有可
  −
  −
输入
  −
就是
  −
2
  −
5
  −
=32
  −
种,
  −
  −
  −
根据
  −
上面的
  −
原理
  −
  −
我们的编
  −
  −
也需要
  −
32
  −
位长
  −
,这
  −
  −
然不实
  −
  −
了,
  −
  −
  −
我们应该
  −
  −
  −
  −
该编
  −
  −
方案。
  −
考虑
  −
这样的
  −
规则
  −
集,
  −
其中每一
  −
条规则
  −
  −
输入
  −
  −
仅仅
  −
考虑邻
  −
  −
区域
  −
  −
状态数值
  −
之和。
  −
比如在
  −
  −
  −
细胞
  −
自动机中,
  −
  −
细胞
  −
  −
  −
  −
区域
  −
的三个
  −
细胞
  −
状态
  −
  −
01
  −
1
  −
  −
  −
0+
  −
1+
  −
1=2
  −
,这样
  −
输入
  −
就是
  −
2
  −
。如
  −
果是
  −
01
  −
0
  −
呢,
  −
  −
  −
0+
  −
1+0
  −
=
  −
1
  −
,该
  −
输入
  −
就是
  −
1
  −
。这
  −
  −
  −
有的
  −
输入
  −
  −
  −
仅仅
  −
  −
4
  −
  −
包括
  −
0,
  −
1,2
  −
,
  −
3
  −
  −
我们把
  −
  −
有的
  −
  −
  −
列出,
  −
按照
  −
类似上面的方法就给每个
  −
输入
  −
指定
  −
  −
出的
  −
状态
  −
就得到了该编
  −
  −
  −
比如一
  −
条规则
  −
  −
输入输
  −
  −
  −
应如下:
  −
<gallery>
  −
File:屏幕快照 2015-12-12 00.39.50.png|标题1
  −
File:屏幕快照 2015-12-12 00.41.00.png|标题2
  −
</gallery>
  −
  −
1001
  −
也就
  −
  −
9
  −
  −
为该
  −
细胞
  −
自动集的编
  −
  −
。当
  −
  −
  −
半径增
  −
大到
  −
2
  −
的时候,
  −
  −
有可
  −
  −
  −
输入
  −
  −
5
  −
个,
  −
  −
以编
  −
  −
长度
  −
  −
5
  −
  −
  −
然比
  −
刚才
  −
  −
  −
多了。因而这种编
  −
  −
方案为
  −
  −
  −
  −
方案。
   
=== “方格宇宙”的动态行为 ===
 
=== “方格宇宙”的动态行为 ===
 
对于
 
对于
匿名用户

导航菜单