跳轉到內容

元胞自動機/元胞自動機屬性

來自華夏公益教科書,開放的書籍,開放的世界

您好。請允許我,這本書的最初作者,雖然希望最終不會是唯一的貢獻者,自我介紹一下。我將透過在我的華夏公益教科書網站使用者名稱關聯的討論頁面上包含一個連結來做到這一點。 使用者:DonaldKronos

您也可以訪問我的討論頁面,我從一個簡單的自我介紹和我對貢獻這個網站的最初意圖開始。 使用者討論:DonaldKronos

這是我在華夏公益教科書上的第一本書,所以如果我還沒有完全知道如何正確地做到這一點,請原諒我,但我認為這是一個值得被涵蓋的話題,所以我正在嘗試。希望其他人會擴充套件我的最初努力。

我最近同時進行許多專案,但其中一個我花費了大量精力的是更新和擴充套件一個特定的元胞自動機程式,即基於 Java 的Mirek's Cellebration版本,稱為MJCell,或Mirek's Java Cellebration,因為我一直想這麼做很多年,但其他事情一直在阻礙。實際上,很多年前我和 Mirek,Mirek's Cellebration 的建立者談過,他實際上給我傳送了該程式的原始碼,並鼓勵我這樣做,但現實生活出現了,我丟失了原始碼,而且該程式在我的任何可用裝置上都無法執行,所以我決定在 Java 版本上進行工作。在這樣做的過程中,我進一步探索了元胞自動機空間的一個屬性,它一直讓我著迷了很多年,那就是在一個給定的元胞自動機甚至一個單個自動機的單個單元格中存在離散和不同的屬性的想法。

我的意思如下。考慮一個元胞自動機空間,其中每個自動機可能具有具有給定數量可能狀態和給定鄰域的單元格。一個這樣的鄰域是 Margolus 鄰域,但這引入了其他東西。您會看到,如果您在一個 Margolus 鄰域中螢幕上放置一個單一的“點”,執行該鄰域的程式將根據該元素在放置它的四個單元格 Margolus 鄰域中的位置來決定該元素的“方向”,該鄰域在奇數和偶數時間週期之間交替。因此,棋盤上的同一位置,或者換句話說,元胞自動機空間中的相同座標,具有相同的“狀態”,可以代表不同的東西,具體取決於“時間奇偶性”的“屬性”。

許多這樣的屬性通常由單元格狀態“模擬”,當然所有屬性都可以“模擬”,但探索它們作為可以任意“應用”於給定自動機空間的東西是很有趣的,就像我在 Mirek's Java Cellebration 中使用“年齡”和“生日”屬性一樣。在撰寫本文時,我正在休息,並非一切都執行正常,但任何想要了解我所談論內容的人都可以檢視 http://DonaldKronos.info/MJCell.jar 上的 Java applet。

根據我的定義,單元格的“生日”是它“出生”到其當前狀態的週期的模數。許多變體是可能的,而且這個概念似乎值得進一步探索。年齡僅僅是指多久以前,或者多少個時間週期以前,一個特定的單元格“出生”到其當前狀態(進入任何非零狀態,或進入奇數狀態,或者任何“出生”由特定的“年齡”規則定義的方式)。“年齡規則”可以定義“絕對年齡”,也可以像我在實現中探索的那樣,定義到特定限制的年齡,在這種情況下,最大年齡保持不變(就像我所實現的那樣)或迴圈回某個先前的年齡。這種額外的資訊層可以被專門利用它們的規則使用,而被其他規則忽略,無論是否影響這些規則。

華夏公益教科書