元胞自動機/元胞自動機屬性
您好。請允許我,這本書的原始作者,儘管希望最終不會是唯一的貢獻者,來介紹一下自己。我會透過包含一個連結到與我在華夏公益教科書網站上的使用者名稱相關的討論頁面來做到這一點。 使用者: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 小程式。
根據我的定義,一個細胞的“生日”是它“出生”到當前狀態的週期的模數。許多變體都是可能的,而且這個概念似乎值得進一步探索。年齡僅僅是多久以前,或者多少個時間週期以前,一個特定細胞“出生”到當前狀態(進入任何非零狀態,或者進入奇數狀態,或者無論如何定義“出生”的特定“年齡”規則如何)。“年齡規則”可以定義“絕對年齡”,也可以像我在實現中探索的那樣,定義一個特定的限制的年齡,在這種情況下,最大年齡將保持(就像我實現的那樣)或者迴圈回某個以前的年齡。這種額外的資訊層可以被專門利用它們的規則使用,也可以被其他規則忽略,無論是否影響這些規則。