形式上,元胞自动机用 4 元组 ( Z , S , N , f ) {\displaystyle (Z,S,N,f)} 表示,其中
Z {\displaystyle Z} 是有限或无限的 格点
S {\displaystyle S} 是单元格 状态 或 值 的有限集合
N {\displaystyle N} 是有限的 邻域
f {\displaystyle f} 是由转换表或规则定义的 局部转换函数
格点 是有限或无限的离散规则网格,在有限数量的维度上包含单元格。每个 单元格 由其离散的 位置 (每个维度上的整数)及其离散的 值 (有限整数集中的一个)定义。时间也是离散的。单元格的未来状态(时间 t + 1 {\displaystyle t+1} )是周围有限数量单元格(称为邻域)的当前状态(时间 t − 1 {\displaystyle t-1} )的函数。
为了提高可读性,接下来的定义将重点放在一维一阶元胞自动机上。
无限全局状态是 配置 C ∈ S Z {\displaystyle C\in S^{Z}} 。 S {\displaystyle S} 是有限集 k = | S | < ∞ {\displaystyle k=|S|<\infty } 的 单元格状态 c ∈ S {\displaystyle c\in S} ,为了形式化,这些状态被枚举为 S = { 0 , 1 , … , k − 1 } {\displaystyle S=\{0,1,\dots ,k-1\}} 。格点 Z {\displaystyle Z} 是 循环群 的无限 整数 { . . . , − 1 , 0 , 1 , 2 , . . . } {\displaystyle \{...,-1,0,1,2,...\}} 。格点中每个单元格的位置由 位置索引 x ∈ Z {\displaystyle x\in Z} 描述。配置通常写成字符串。
C = … c − 1 c 0 c 1 c 2 … c x − 1 c x c x + 1 … {\displaystyle C=\dots c_{-1}c_{0}c_{1}c_{2}\dots c_{x-1}c_{x}c_{x+1}\dots }
有限的全局状态是一个有限配置 C ∈ S Z {\displaystyle C\in S^{Z}} ,其中 Z {\displaystyle Z} 是一个有限格,一个包含 N {\displaystyle N} 个整数的有限集 { 0 , 1 , 2 , . . . , N − 1 } {\displaystyle \{0,1,2,...,N-1\}} 。
C = c 0 c 1 … c x − 1 c x c x + 1 … c N − 2 c N − 1 {\displaystyle C=c_{0}c_{1}\dots c_{x-1}c_{x}c_{x+1}\dots c_{N-2}c_{N-1}}
有限配置及其部分通常可以写成由字母表开头的希腊小写字母表示的字符串 ( α {\displaystyle \alpha } , β {\displaystyle \beta } ,...)。
字符串可以简洁地写成数字。一个包含 N {\displaystyle N} 个字符的字符串 C {\displaystyle C} 来自一个包含 | S | {\displaystyle |S|} 个符号的集合,被转换为一个 N {\displaystyle N} 位基 | S | {\displaystyle |S|} 数字。通常字符串从左到右索引,但对于数字表示法,从右到左索引更直观。
α = ∑ i = 0 N − 1 k N − 1 − i c i = k N − 1 c 0 + ⋯ + k 1 c N − 2 + k 0 c N − 1 {\displaystyle \alpha =\sum _{i=0}^{N-1}k^{N-1-i}c_{i}=k^{N-1}c_{0}+\cdots +k^{1}c_{N-2}+k^{0}c_{N-1}}
邻域的大小和位置
邻域 A {\displaystyle A} 的大小为 m = | A | {\displaystyle m=|A|} ,由配置内部的相对位置集合定义。
A = { a 0 , a 1 , … , a m − 1 } {\displaystyle A=\{a_{0},a_{1},\dots ,a_{m-1}\}}
将集合 A {\displaystyle A} 应用到观测到的单元格 c x {\displaystyle c_{x}} 上,即可得到该单元格的邻域。
n x = c x + a 0 c x − a 1 … c x + a m − 1 {\displaystyle n_{x}=c_{x+a_{0}}c_{x-a_{1}}\dots c_{x+a_{m-1}}}
术语“邻域”既可以指代相对距离集合,也可以指代与观测单元格相关的实际单元格子串。
邻域值 n x {\displaystyle n_{x}} 的紧凑表示是单个整数,定义为 m {\displaystyle m} 位以 k {\displaystyle k} 为基的数字。
n x = ∑ i = 0 m − 1 k m − 1 − i c x + a i = c x + a 0 k m − 1 + c x + a 1 k m − 2 + ⋯ + c x + a m − 1 k 0 {\displaystyle n_{x}=\sum _{i=0}^{m-1}{k^{m-1-i}c_{x+a_{i}}}=c_{x+a_{0}}k^{m-1}+c_{x+a_{1}}k^{m-2}+\dots +c_{x+a_{m-1}}k^{0}}
邻域单元格索引和局部转换函数
有关常见邻域的定义,请参见邻域。
局部转换函数
f : S N ↦ S {\displaystyle f:S^{N}\mapsto S}
根据当前观测单元格的邻域计算单个未来单元格 c x {\displaystyle c_{x}} 的值。
c x t + 1 = f ( n x t ) {\displaystyle c_{x}^{t+1}=f(n_{x}^{t})}
转换表 通过列出每个输入值的输出值来定义局部转换函数。
n -> f(n)
-----------
000 -> 0
001 -> 0
........
111 -> 0
规则 f {\displaystyle f} 是局部转换函数的紧凑表示。它是一个单个整数,定义为 m {\displaystyle m} 位以 k {\displaystyle k} 为基的数字。
f = ∑ i = 1 k m − 1 f ( i ) k i = f ( k m − 1 ) k k m − 1 + ⋯ + f ( 1 ) k 1 + f ( 0 ) k 0 {\displaystyle f=\sum _{i=1}^{k^{m}-1}{f(i)k^{i}}=f(k^{m}-1)k^{k^{m}-1}+\dots +f(1)k^{1}+f(0)k^{0}}
另见
元胞自动机的全局动力学由全局转换函数 描述
F : S Z ↦ S Z {\displaystyle F:S^{Z}\mapsto S^{Z}}
F {\displaystyle F} 将当前(现在)配置 C t {\displaystyle C^{t}} 转换为下一个(未来)配置 C t + 1 {\displaystyle C^{t+1}}
C t + 1 = F ( C t ) {\displaystyle C^{t+1}=F\left(C^{t}\right)}
全局转换函数 F {\displaystyle F} 由局部转换函数 f {\displaystyle f} 定义为
F ( … c x − 1 c x c x + 1 … ) = … f ( n x − 1 ) f ( n x ) f ( n x + 1 ) … {\displaystyle F(\dots c_{x-1}c_{x}c_{x+1}\dots )=\dots f(n_{x-1})f(n_{x})f(n_{x+1})\dots }
晶格边界大小(左和右)
无限元胞自动机没有边界,因此其边界描述 B {\displaystyle B} 被省略。但使用有限系统模拟无限系统是不可行的。模拟必须关注长度为 l {\displaystyle l} 的有限部分。
局部转换函数中使用的邻域在左侧越过晶格边界 r L {\displaystyle r_{L}} 个单元格,在右侧越过 r R {\displaystyle r_{R}} 个单元格。
越过问题有两个常见的解决方案
晶格被包裹成一个圆圈(对于 2D 元胞自动机则是环面)
邻域越过部分的值被明确定义为边界 B {\displaystyle B}
循环边界 经常被使用,因为没有必要明确定义边界值,并且不会将外部信息引入元胞自动机,否则这些信息会导致边界处的干扰。
有限格子的元胞自动机的状态是格子 S Z {\displaystyle S^{Z}} 中的一个配置 ,其中 Z {\displaystyle Z} 是整数的循环群 ,对 N {\displaystyle N} 取模 ( { 0 , 1 , . . . , N − 1 } {\displaystyle \{0,1,...,N-1\}} )。
C = c 0 c 1 … c x − 1 c i c x + 1 … c N − 1 c ∈ S {\displaystyle C=c_{0}c_{1}\dots c_{x-1}c_{i}c_{x+1}\dots c_{N-1}\qquad c\in S}
循环位置索引计算为
x ∘ = x mod N x ≤ 0 ∨ x > N {\displaystyle x_{\circ }=x\mod N\qquad x\leq 0\vee x>N}
格子的边界(左和右)
显式定义的边界 比较少见,因为简单常数值只对周期为1的静止背景上观察事件的CA有用。边界可以定义为单个集合(左和右部分组合),长度为 k − 1 {\displaystyle k-1} 的单元格值(没有索引为0的边界单元格)
B = { b − k 0 , … b − 2 , b − 1 , b l , b N + 1 , … , b k − k 0 − 1 } b ∈ S {\displaystyle B=\{b_{-k_{0}},\dots b_{-2},b_{-1},b_{l},b_{N+1},\dots ,b_{k-k_{0}-1}\}\quad b\in S}
对于时空周期性的静止背景,可以使用时间相关的边界 B = B ( t ) {\displaystyle B=B(t)} .
二维格子中的邻域
n 维CA的定义类似于一维CA,格子变为n 维, k {\displaystyle k} 和 k 0 {\displaystyle k_{0}} 变为长度为 n {\displaystyle n} 的向量。
二维格子可以用不同的方式用单元格进行平铺
方格(4重旋转对称 )
三角形网格(3重对称)或六边形网格(6重对称)
准周期网格(彭罗斯拼贴 )
二维元胞自动机通常用于模拟真实动态系统(流体和气体动力学)
另见
One further generalization of the concept of a CA extends the n -dimensional construct. Given a finitely generated group, G {\displaystyle G} , and a alphabet, A {\displaystyle A} , we may define the configuration space to be C = A G {\displaystyle C=A^{G}} . That is, each configuration is a map from G {\displaystyle G} into A {\displaystyle A} . If G {\displaystyle G} is abelian, then the group is isomorphic to some quotient space of Z n {\displaystyle Z^{n}} and may be regarded as a n -dimensional lattice with possibly periodic boundary conditions. This space admits a group action, where c g ( h ) = c ( g ′ h ) {\displaystyle c^{g}(h)=c(g'h)} where g ′ {\displaystyle g'} is the inverse of g {\displaystyle g} . Any finitely generated group is a metric space, in which the distance between any two elements, d ( g , h ) {\displaystyle d(g,h)} can be defined to be the minimum length of the set of paths connecting g {\displaystyle g} and h {\displaystyle h} on the groups Cayley graph. We define a metric on the configuration space, d ( c , c ′ ) {\displaystyle d(c,c')} to be 0 if the two configurations are identical, and the infimum of 1 / ( 1 + d ( e , h ) ) {\displaystyle 1/(1+d(e,h))} over the set of h {\displaystyle h} such that c {\displaystyle c} and c ′ {\displaystyle c'} disagree at h {\displaystyle h} and where e {\displaystyle e} denotes the identity element of the group. We define a cellular automata to be a continuous mapping, f : C → C {\displaystyle f:C\to C} , that commutes with the group action and an initial configuration c 0 {\displaystyle c_{0}} . The evolution of the system is defined by c n + 1 = f ( c n ) {\displaystyle c_{n+1}=f(c_{n})} .
如果不仅使用当前配置,还使用过去配置来计算未来,则 CA 为更高阶。 二阶局部转移函数定义为
c x t + 1 = f ( n x t , n x t − 1 ) {\displaystyle c_{x}^{t+1}=f(n_{x}^{t},n_{x}^{t-1})}
二阶局部转移函数通常用于构造可逆规则。