跳转到内容

元胞自动机/计数前像

来自维基教科书,开放的书籍,开放的世界

前像是过去导致当前配置的一步配置。

时间方向的逆转

[编辑 | 编辑源代码]
当前配置的前像取决于全局转移函数的逆

局部转移函数全局转移函数 定义了元胞自动机在正向时间方向上的演化。要从当前配置计算前像,必须定义正向映射的逆。

单个细胞 的前像是由局部转移函数的逆定义的局部有效的邻域

配置 的前像 由全局转移函数的逆定义

相邻细胞的局部有效邻域必须正确重叠才能成为全局有效的。德布鲁因图描述了序列如何重叠,因此提供了一种在知道局部逆的情况下计算全局逆的方法。

前像 的数量 可能从零到很多,具体取决于规则和当前配置 ,引发了关于规则的单射性、满射性和可逆性的问题。

德布鲁因图

[编辑 | 编辑源代码]
德布鲁因图

德布鲁因图来自描述移位寄存器的理论。它的节点是在某个字母表上的符号串 ,通常是所有固定长度的字符串。它的有向链接描述了如果其中一个字符串被移动,这些字符串如何重叠。这里只描述了单个细胞的移动。

从源节点 到一个排水节点 存在一个链接,如果字符串 与字符串 重叠,并且向右移动一个符号。这意味着重叠的源子串 ( 去掉起始符号 ) 等于重叠的排水子串 ( 去掉结束符号 )。

De Bruijn 图的拓扑矩阵为

为了让该图更容易在元胞自动机上阅读和使用,本书使用了一种图形表示,其中所有节点都被绘制了两次。左侧的节点是链接的源点,右侧的节点是链接的排水点。链接的方向选择为指向细胞位置索引的递增方向。

另见

原像图和矩阵

[编辑 | 编辑源代码]

相邻邻域的重叠

[编辑 | 编辑源代码]
相邻邻域的重叠(深灰色)

重叠 是来自一对相邻单元格 的重叠邻域的单元格组。重叠 的大小比邻域的大小少一个单元格。

重叠的紧凑表示是具有 位基数为 的数字。

如果一个细胞序列 之间被切割(或连接)成两部分,左侧部分的最后一个单元格的邻域 与右侧部分的第一个单元格的邻域 重叠。切割(或连接)处的重叠 如上定义,用于描述序列的边界。

前像矩阵

[edit | edit source]
前像图(由前像矩阵描述)

构建前像矩阵的第一步是构建一个 De Bruijn 图,它表示细胞自动机中单个细胞的前像。它的节点是所有 个不同的邻域重叠。源节点 是细胞左侧的重叠,汇点节点 是细胞右侧的重叠。链接表示邻域,并根据接下来的两种分解连接节点

  • 邻域 由剩余的左侧单元 和右侧重叠 组成,或者
  • 邻域 由左侧重叠 和剩余的右侧单元 组成。

该图的拓扑矩阵是一个 元素的方阵。

如果节点 之间存在链接,则元素的值为 ,否则为

下一步是形成一个符号德布鲁因矩阵,其中元素是链接标签。代表邻域 的链接根据局部转移函数定义的输出单元值 进行标记。没有链接的节点对可以用点标记。

最后一步是形成前像矩阵 ,每个 个可用的单元格状态 都对应一个矩阵。 只有当相对邻域 导致所需的单元格值 时,节点对 之间才存在链接。

序列的前像矩阵

[编辑 | 编辑源代码]

在将前像矩阵的定义扩展到单元格序列 之前,必须定义矩阵元素的含义,以便可以根据它来检查定义。

矩阵 中的条目 表示长度为 的前像的数量,这些前像以左重叠 开头,以右重叠 结尾。

一个细胞串的原像矩阵 是单个细胞矩阵的乘积链

空字符串的原像矩阵 是一个单位矩阵.

证明: 序列原像矩阵方程的证明

原像边界条件

[编辑 | 编辑源代码]
原像连接或边界

原像向量 包含 个非负整数条目,每个条目对应原像图中一个可能的邻域重叠或节点。

原像向量 中的元素 统计包含重叠 的原像,该重叠在当前细胞序列中的位置 处具有值

原像向量用于描述边界,更准确地说,它可以描述两个字符串连接处一侧的原像计数。

  • 对于字符串 右边界,使用右边界向量 ,它统计连接处右侧的原像。
  • 为了描述字符串 左侧边界,使用 左侧边界向量 ,它从连接点向左计算前像。

无限制边界 通常用于避免任何特定的边界。假设每个重叠只有一个前像。向量中的所有条目都是

由于 半无限序列 可能有无限多个前像,通常只使用周期性序列,只计算周期 的前像。

静止和以太背景可以用周期性序列表示。

另见

计算前像。

[编辑 | 编辑源代码]

序列 的前像数量 (网络中的路径)定义为左 边界条件 和右 边界条件

无限制边界 通常用于计算序列 的所有前像,每个前像只计算一次。前像的数量仅仅是前像矩阵 中所有元素的总和。

循环细胞串的前像。

[编辑 | 编辑源代码]

由于循环格中的字符串必须在其左右两侧具有相同的重叠,因此只有德布鲁因矩阵对角线上的元素才是有效的前像。字符串 的所有前像的数量是对角线上元素的总和。

伊甸园

[编辑 | 编辑源代码]

伊甸园序列没有前像。对于无限格上的有限字符串,这在德布鲁因矩阵为零矩阵 (所有元素都为零)时是完全正确的。

任何其子串为伊甸园的字符串都是伊甸园。

伊甸园可能是边界条件的结果,包括有限或循环边界条件。

序列前像矩阵方程的证明

[编辑 | 编辑源代码]

序列公式的证明是关于字符串长度的归纳法。

基础案例 ()
如果字符串的长度为 ,则没有偏移,并且节点仅与其自身链接。
对于长度为 的字符串,单个单元格前像矩阵元素的含义从定义中可以明显看出。
归纳

参考文献

[编辑 | 编辑源代码]
  1. Harold V. McIntosh通过德布鲁因图的线性元胞自动机,1991 年 8 月 10 日 (HTMLPDF)
  2. Harold V. McIntosh祖先:关于 Andrew Wuensche 和 Mike Lesser 的《元胞自动机的全局动力学》(Addison-Wesley,1992)的评论,1993 年 7 月 20 日 (HTMLPDF)
  3. Erica Jen,元胞自动机中前像的枚举,复杂系统 3 (5) (1989) 421-456
  4. Burton Voorhees元胞自动机状态的前驱 II. 有限序列的前像,Phisica D 73 (1-2) (1994) 136-151
  5. Iztok JerasAndrej Dobnikar 计算元胞自动机配置前像的算法 PDF
  1. DDLab 用于研究元胞自动机、随机布尔网络、多值离散动力系统等的工具;由 Andy Wuensche 提供。
  2. Iztok Jeras用于计算元胞自动机配置的原像的算法 TAR.BZ2
  3. 元胞自动机原像生成器 CAPIG 是一款用户友好的免费软件,用于根据用户选择的配置查找原像。
华夏公益教科书