元胞自动机/元胞自动机属性
您好。请允许我,这本书的原始作者,尽管希望最终不会是唯一的贡献者,来介绍一下自己。我会通过包含一个链接到与我在维基教科书网站上的用户名相关的讨论页面来做到这一点。 用户:DonaldKronos
您也可以访问我的讨论页面,我从一个简单的自我介绍和我对贡献此网站的最初意图开始。 用户谈话:DonaldKronos
这是我在维基教科书上的第一本书,所以请原谅我如果我还没有完全了解如何正确地做到这一点,但我认为这是一个值得被涵盖的话题,所以我正在尝试。希望其他人会扩展我最初的努力。
我最近同时参与了许多项目,但其中一个我投入了大量精力的是更新和扩展一个特定的元胞自动机程序,即基于 Java 的 Mirek 的 Cellebration 版本,称为 MJCell,或 Mirek 的 Java Cellebration,因为我一直想这样做很多年,而其他事情总是阻碍我。实际上,很多年前我和 Mirek(Mirek 的 Cellebration 的创建者)谈过,他实际上把程序的源代码发给了我,并鼓励我这样做,但是现实生活阻碍了我,我丢失了源代码,而且这个程序在我的任何现有的设备上都无法运行,所以我决定着手 Java 版本。在这样做的过程中,我进一步探索了元胞自动机空间的一个属性,这个属性多年来一直让我着迷,那就是在一个给定的元胞自动机中,甚至在一个单个自动机的一个单个细胞中,存在着离散和独特的属性。
我的意思是这样的。考虑一个元胞自动机空间,其中每个自动机可能具有具有给定数量可能状态和给定邻域的细胞。其中一个邻域是 Margolus 邻域,但这引入了其他东西。您会看到,如果您在一个 Margolus 邻域中在屏幕上放置一个单一的“点”,那么运行该邻域的程序将根据该元素在它所放置的四个单元格 Margolus 邻域中的位置来决定该元素的“方向”,该邻域在奇数和偶数时间周期之间交替。结果,板上的相同位置,或者换句话说,元胞自动机空间中的相同坐标,具有相同的“状态”可能代表不同的东西,这取决于“时间奇偶性”属性。
许多这样的属性通常通过细胞状态“模拟”,当然所有属性都可以,但探索它们作为可以任意“应用”于给定自动机空间的东西很有趣,就像我在 Mirek 的 Java Cellebration 中对“年龄”和“生日”属性所做的那样。在撰写本文时,我正在休息,并没有一切正常工作,但任何想要看看我在说什么的人都可以查看 http://DonaldKronos.info/MJCell.jar 上的 Java 小程序。
根据我的定义,一个细胞的“生日”是它“出生”到当前状态的周期的模数。许多变体都是可能的,而且这个概念似乎值得进一步探索。年龄仅仅是多久以前,或者多少个时间周期以前,一个特定细胞“出生”到当前状态(进入任何非零状态,或者进入奇数状态,或者无论如何定义“出生”的特定“年龄”规则如何)。“年龄规则”可以定义“绝对年龄”,也可以像我在实现中探索的那样,定义一个特定的限制的年龄,在这种情况下,最大年龄将保持(就像我实现的那样)或者循环回某个以前的年龄。这种额外的信息层可以被专门利用它们的规则使用,也可以被其他规则忽略,无论是否影响这些规则。