神秘的細胞自動機

什麼是元胞自動機(CA),很幸運最近接觸到這個有趣的知識讓我對學習計算機又萌生出新的動力。

細胞自動機,從名字上,我就會嘗試性的和我生物課里學到的「細胞」相掛鉤,而事實也確實是這樣,我第一反應就是一個機器用來模擬細胞的華麗麗的「一生」,CA的基礎其實就是通過計算機的計算,來模擬一個複雜的自然過程(就例如細胞的生存或者是死亡,以及繁殖等行為。。。等等比如你看到的大自然里的打雷現象,或者是模擬一群細胞種族之間的信息交互等等,你能想到的有趣的現象,都可以通過CA來模擬出來,也可以自己創作出很有藝術感的作品)

很有藝術感的CA實現

其實我們就是以上帝的視角來創建自己的國度,我們給自己的國度里下達法令,並且實行連坐制度,你的一舉一動都有可能牽連這你的鄰居,也許你這一秒還好好的,就因為鄰居觸犯的什麼比如說「計劃生育」多生了一個寶寶,那麼下一秒你就會被連坐。而計算機要做的其實就是,不停的計算,就像個巡邏的,一直在看這家有沒有符合國王的指令,哎這家是不是也應該抓到牢籠里關上一陣子。這個例子很不恰當,我試圖用這個例子來表達我想說的,CA就用一些簡單的規則,來讓計算機實現一些令人驚訝的行為。

這裡加上一個對 Wolfram 的中文訪談:【果殼網專訪】斯蒂芬·沃爾夫勒姆:宇宙的本質就是運算,就是把一套規則擺好,宇宙就像一個巨大的機器在不斷運算這,產生我們的世界。這是不是一件讓人很振奮的事情呢?

這是用CA實現的一個生命遊戲,看起來是不是很有趣並且似乎是按照一些規律運轉,沒錯,實際上,細胞自動機 [1] 由規則來管理,它決定系統如何即時演化。

說了這麼多,還不知道,細胞自動機都有哪些類別呢?

細胞自動機的有五個梯度,我們先嘗試從由淺到深的對CA模型實例來了解一下

第一類,就是一個相當於一個零維度的細胞,(母胎solo)我們用0或者偶數來決定是否閃爍

我會任意選擇xi = x[i-1] + 1,它表示在每個時間步驟之後,CA 的狀態會增加 1。到目前為止,我們有一個簡單的 CA ,執行簡單的計算:它用於計數。;可能的狀態數通常是有限的。 為了使其成立,我將選擇最小的感興趣的狀態數 2,和另一個簡單的規則xi = (x[i-1] + 1) % 2,其中%是餘數(或模)運算符。

這個 CA 的行為很簡單:閃爍。 也就是說,在每個時間步之後,細胞的狀態在 0 和 1 之間切換。

你看到的現象就是一個點點,在閃啊閃,它根據時間的不同來決定自己是否該閃爍,這個例子就是沒有隨機性的因素,事情是確定的。

像不像埃及金字塔

第二類,就是Wolfram 的實驗

拓展到一維,用數據結構來實現細胞狀態的存儲和遍歷「巡邏」嘛,根據一個細胞的周圍附近細胞生存狀態來決定應不應該生一個細胞。根據什麼來判斷,就取決你給的法令了,這裡Wolfram用三個細胞的領域來實現每一個細胞周圍都會有一個影響三角形,也可以實現在某個周期里父輩也會死亡的模型。

一個這樣的藝術作品

當然,不僅僅如此還有模式類似於謝爾賓斯基三角形的這個有關資料

en.wikipedia.org/wiki/S

可以了解一下

神秘感倍增

我的用遍曆數組的方法,來判斷在某一個細胞周圍存在活著的細胞個數,並且符合我們制定的是否生存原則,例如細胞少於兩個就孤獨死亡,多餘四個就死亡,如果周圍有兩個細胞就新生一個新的細胞,用0和1把細胞狀態存到數組裡讓他不停遍歷和重繪,可以說是十分的簡陋了

第三類,就是加入了隨機數產生一些隨機的變化,給自己的藝術品天界一些隨機因素,這也正向大自然里會有隨機突發的事件,就像癌細胞一樣總會有自己的隨機性,也像DNA也會出現突變

這個明顯比上一個混亂些,也同時更有藝術感(不是嗎)

使用偽隨機數字生成器(PRNG),先理解為生成一個隨機數的工具(雖然不是覺得隨機的,但至少可以給我們規規矩矩的作品上添加些隨機的元素上去)

第四類

有一個非常經典案例,他又有一個奇幻的名字叫「飛船」

一些結構是穩定的,它們表現為垂直線條。 其他的在空間中平移,表現為不同斜率的對角線,取決於它們移動一列所需的時間步數。 這些結構被稱為飛船。

細胞自動機你就是上帝,一個藝術家,來創作屬於你自己的作品,你可能自己也會創作出一些讓你意想不到的令你自己驚訝的作品出來。

最後一類等等嘍,其實細胞自動機在各個領域都有應用到。有興趣的可以多看一些有關的資料

【圖文】第七講-元胞自動機及應用_百度文庫

有關圖靈機的資料Rule 110 - Wikipedia

摩爾類型邊界跟蹤演算法(二)--摩爾鄰域跟蹤演算法 - CSDN博客

馮.諾依曼結構馮·諾依曼結構_百度百科


推薦閱讀:

黑貓的毛髮變紅了果真是陽光曬多了嗎?
我為什麼要寫《自然規律的探索之旅》
古生物學在浪費公款嗎?
恐龍玩具遍地都是,他看上了長毛的恐龍

TAG:細胞 | 自然科學 |