Algorithm 稳定细胞自动化

Algorithm 稳定细胞自动化,algorithm,cellular-automata,Algorithm,Cellular Automata,我在做细胞自动化模拟。 规则如下: 每个细胞与其摩尔邻域相互作用以更新其值 该单元位于任何无限维网格中 该单元格可能具有随机初始值 规则是稳定的,经过一定的迭代,它们将收敛到一个统一的状态 对于某种编程语言来说,这是不必要的,所以在这个算法中,我们只有基本的数据类型,即bool、int、它们的n维数组等 我有一个任何单元格的初始值,我可以随时加载到内存中。有没有算法可以在不循环整个无限网格的情况下计算其稳定值 具体地说,我正在研究的是一个规则B5678/S45678,类似二维生活的细胞自动化

我在做细胞自动化模拟。 规则如下:

  • 每个细胞与其摩尔邻域相互作用以更新其值
  • 该单元位于任何无限维网格中
  • 该单元格可能具有随机初始值
  • 规则是稳定的,经过一定的迭代,它们将收敛到一个统一的状态
对于某种编程语言来说,这是不必要的,所以在这个算法中,我们只有基本的数据类型,即bool、int、它们的n维数组等

我有一个任何单元格的初始值,我可以随时加载到内存中。有没有算法可以在不循环整个无限网格的情况下计算其稳定值

具体地说,我正在研究的是一个规则B5678/S45678,类似二维生活的细胞自动化

有没有算法可以计算[某个特定单元]的稳定值而不循环整个无限网格

对于这个特殊的CA规则,是的,有点。特别是,您可以通过仅检查有限数量的周围单元来确定晶格上任何给定单元的最终稳定状态。但是,可能需要检查的单元格数量可以任意大


首先,请允许我注意,规则代码“B5678/S45678”表示“多数投票”规则,其中下一时间步的每个单元的状态是由其自身及其八个相邻单元组成的九个单元中的当前多数状态

此规则恰好满足单调性特性:将一个或多个单元格的初始状态从“关闭”翻转到“打开”不能导致任何单元格的未来状态从“打开”翻转到“关闭”,反之亦然。换句话说,晶格的未来状态是当前状态的单调递增函数

这种单调性有一些重要的后果。特别是,这意味着如果您有一个处于“开”状态的单元集群,而该集群四面都被处于“关”状态的单元包围(反之亦然),并且如果该集群当前是稳定的(即应用CA更新规则一次不会导致任何单元处于集群更改状态),那么它实际上将永远稳定,不管晶格上其他地方发生了什么

这是因为其他地方的事件可能影响集群的唯一方式是改变集群周围一个或多个单元的状态。由于所有这些周围的单元都处于“关闭”状态,而集群中的单元处于“打开”状态,因此单调性确保将任何周围单元的状态更改为“打开”不会导致集群中任何单元的未来状态更改为“关闭”。(当然,相同的论点也适用于由“开”细胞包围的“关”细胞簇。)

(事实上,你并不真的需要“开”的细胞簇被“关”的细胞簇包围,反之亦然——稳定所需要的就是即使它周围的所有细胞都处于相反的状态,该簇也会保持稳定。)

因此,一般来说,要确定一个细胞的最终状态,只需模拟其周围细胞的时间演化,直到它成为这样一个稳定簇的一部分

在(几乎可以肯定的)有限时间内实现这一点的一种方法是,将连续时间步的2D晶格序列视为形成堆叠2D切片的3D晶格,并计算该3D晶格的连续“金字塔形”截面,该截面由时间步前n个中心单元的状态、时间步前n个相邻单元的状态组成− 1、他们的邻居达到时间步长n− 2,等等。每隔一段时间,检查这个不断增长的金字塔的每一层,看看其中是否有包含中央细胞的稳定簇(在上述意义上)


假设中心细胞事实上最终成为这样一个稳定的有限簇的一部分(一个随机初始化的晶格上的几乎所有细胞最终都会在这个规则下这样做;剩下的证据就是练习!),这个方法最终会找到这个簇。然而,根据周围细胞的初始状态,这种稳定可能需要任意长的时间,细胞的最终状态可能取决于任意远处的其他细胞的状态


例如,我们假设我们感兴趣的细胞恰好位于晶格的某个区域,在该区域中,细胞的初始状态碰巧像棋盘上的正方形一样排列:每个细胞的四个正交邻居处于相反的状态,而四个对角邻域都与中心单元处于相同的状态。显然,这样的棋盘布局是局部稳定的,因为每个单元(几乎!)在其相邻单元中占多数,但棋盘边缘周围这种不稳定平衡在任何方向上的任何偏差都将作为连锁反应在整个单元中传播。因此,棋盘上任何特定单元的最终稳定状态将取决于棋盘区域周围单元的状态,棋盘区域可以任意远离。

如果希望每个单元(即无限多个单元)从随机初始值开始,我看不出如何计算任何值。“在某个迭代之后,它们趋向于稳定”:这是相当模糊的。请指定“稳定”的含义,什么是“趋向于”的确定性,以及哪个是“特定迭代”。根据Wolfram的说法,基本细胞自动机可以使用其行为将其分为若干类。在这种情况下,我使用的规则肯定会出现在类1中()。在更高的维度中,它将达到均匀状态,确切地说是一个“固定点”。谢谢你,这很好地解决了我的问题。我们可以通过任何方法计算几乎确定其最终状态所需的最小范围吗?或者我应该试着找到一个最佳值吗?@mwit30room8:For“几乎确定”“在数学意义上,没有有限的范围