更改
无编辑摘要
<gallery>
<gallery>
File:屏幕快照 2015-12-11 23.37.37.png|
File:屏幕快照 2015-12-11 23.37.37.png|
</gallery>
这个
规则
集也可以用下面的一组
数
字表示为:
<gallery>
File:屏幕快照 2015-12-12 00.36.36.png|每一组规则集也可以表示成类似于上面的图和表,例如下面的另外一组规则
File:屏幕快照 2015-12-12 00.36.43.png|
</gallery>
为了
分
辨最
简单的
细胞
自动机,
我们需要给每个
细胞
自动机起一个
名
字,
这个
名
字可以
都用
数
字
进
行表示,
这就是
“方格宇宙”
的编
码
。我
们
知道
,
在一类
最
简
细胞
自动机中,
它
们的
所
有
情况
都
相
同,
而
仅
有
规则
集不同,
所
以我们只要
根据规则
集
找
出编
码
的方案就
相
当
于
给
细胞
自动机
找
到了方案了。
同样的
道
理
,在
确
定了
状态数
、
邻
居
半径
、
维
数
的
细胞
自动机中,
指定了
规则
集的编
号
就
相
当
于
找
到了这个自动机。
因
此
,在
后
面我们可以
通
过编
号
来
识
别
自动机。
而这编
号
的方
案有
两
种,
一种编出来的
码
比
较
长
,
但
是
能
给
所
有的自动机
命名
,
一种比
较
简
捷但
不
能
给
所
有的自动机
命名
。
下面我会
说
自动机
24
号
,
或者
56
号
,你
要
清楚
这
仅仅
是它们的
名
字,
而
这
两
个
细胞
自动机的
规则
不一样。
一
般
在没有
特殊
说
明
情况
下都是用
长
编
码
。
这些都是
细节
问题,
但
在
此说
明有
助
于
我们
后
面的
讨
论
。下
一
部分
要
讨
论
如
何
给
细胞
自动机编
码
,
属
于
技
术
性
的问题,不
感
兴趣
的
读
者完全
可以
跳
到4
。
=== “方格宇宙”的编码 ===
显
然,
对于
最
简单的一类
细胞
自动机,
任
何
一组
规则
的
输入
都是上表
所
列的
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
,
显
然比
刚才
简
化
多了。因而这种编
码
方案为
短
编
码
方案。
=== “方格宇宙”的动态行为 ===
对于
一
维
的
情况
,我们
假
设
所
有的方格都
分
布
在一
条
直线
上,并且
直线
的
长度
为
30
0
,
也就是
说
有
30
0
个方格在
这
条
直线
上。
我们用黑色的格表示
直线
上
1
状态
的方格,
用
白
色的
格表示
0
状态
的方格。
那么一
条
断
续
的
横线
就是当
前
所
有
细胞
状态
的一种
分
布
。
这些方格
随
着时间变
化
,就
形
成了不同的
横线
。
我们把这些
随
着时间变
化
的
线纵向拼
在一起
形
成了一个
网
格
区域
。其
中
纵轴
表示时间的
流逝
(
往
下为正)
,
横轴
为
“方格宇宙”
在
对
应时刻的
状态
,
就
能
得到一
幅
图像:
<gallery>
File:屏幕快照 2015-12-12 00.42.44.png|
</gallery>
这个方格的每一行都是
某
一个时刻
细胞
自动机的
状态
。因
而
从
上到下
数
第
1
、
2
、
3
、
4
、
5
、
6
行可以
分别
表示第
1
、
2
、
3
、
4
、
5
、
6
秒的
细胞
自动机
状态
。因
此
这里的一个
平
面的图
案就是
细胞
自动机在时间上的
发展
动
态
。
下面我们用
程序
one
dim
e
nsio
n
探索
一些
最
简单的一
维细胞
自动机的动
态
图案
(
注
意这里
的
细胞
自动机都
采
用
左右
相
邻
的
周期型
边
界
处理
)
。在
状态数
为
2
,
邻
居
半径
1
的
最
简
情况
下
分别
挑选
几种
典型
的动
态情况
示
于
下图(下方的
数
字是
细胞
自动机的编
码
)
:
<gallery>
File:屏幕快照 2015-12-12 00.42.38.png|
</gallery>
</gallery>