我們一直對複雜系統抱有敬畏之心,總覺得複雜系統**於複雜的設計。但實際上如果我們去了解
stephen wolfram
(史蒂芬·沃爾夫勒姆)的著作《a new kind of science》之後,也許會有不一樣的視角和答案。
《a new kind of science》一書中,最關鍵的就是這5個字:簡單的程式。
stephen wolfram
在《a new kind of science》
的基本主題是研究簡單的抽象規則——特別是,基本電腦程式。在幾乎任何型別的計算系統中,人們可以很快地在最簡單的情況中找到具有相當複雜性的例項。這看起來似乎是對的,無論該系統具有什麼樣的組成部分或者設定。
《a new kind of science》中**的系統包含:
對於可以稱為簡單的程式,有幾個標準:模型:生命遊戲2如果你了解了生命遊戲,你會發現元胞自動機其實還更好理解一些。
但區別在於你需要自己定製規則,然後**整個系統隨著時間的演變,最終是什麼樣子。
簡單來說,元胞自動機定下來的規則,隨著時間演變後,通常會有4種結果:
不動點-交替態-隨機態-複雜態這4種結果也可以理解為計算機暴力窮舉法得到的。
實際上我們還可以看以下的圖來感受下:
這是一種元胞自動機產生的結果,是不是非常簡潔和規律?甚至簡單?
我們繼續改動規則就會出現下面的這張圖。
stephen wolfram甚至把這個規則取名為「第30號規則」。
由此stephen wolfram還在《a new kind of science》中寫下了兩個重要的結論,關於這兩個結論的描述,我直接引用萬維鋼老師在得到課程的文字。
其一是計算等效原理
principle of computational equivalence
這一原理說,像前面那些簡單程式得到的是簡單結果,但只要結果超過了乙個很小的界限,所有的程式,不管有多複雜,最後得到的結果,都是同等的複雜,並不能說哪個更複雜。
再說白了,我們可以得出乙個非常有意思的結論:
即使是再先進的事物,它的複雜度和我們剛剛看到的圖形的複雜度,其實也是一樣的。
其二是計算不可約性
computational irreducible
真正複雜的東西是無法進行簡化的。這就導致乙個問題:沒有哪個複雜系統是可**的。
比如你要**乙個什麼系統,你其實有乙個潛在的假設,就是你認為你有乙個比這個系統更複雜的工具。
所以面對複雜系統,我們都是把它簡化成乙個簡單的模型,然後用超出這個簡單模型的演化速度的計算速度去實現得知這個模型的未來,並以此**原來那個複雜系統的未來。
比如**天氣,你得先把自然系統的風雲運動簡化,然後計算這個簡化的模型。
你指望你計算這個簡化模型的速度比天氣實際演化的速度快,你才是真正的**。
可是如果這個系統本身是不可簡化的 —— 計算不可約,你就無法**它,唯一的辦法只能坐等系統自身演化!
比如你要問我第30號規則產生的那個圖形的第十萬行上都有什麼,我就沒有任何捷徑可走,只能老老實實把圖形畫到第十萬行。
3
最後到了結論的時候,我們其實不必去看《a new kind of science》
b站搜尋model thinking p19課:細胞自動機。enjoy。
元胞自動機
即生命遊戲,今天下午迅雷的筆試程式設計題。簡單的版本,給定當前的狀態,給出下乙個時刻的狀態。status函式獲取某點當時周圍的活的細胞數量,寫的比較渣 include include include using namespace std define max 10010 int status ve...
元胞自動機
這 幾個關於元胞自動機的問題 元胞自動機 森林火災模型 規則 1 正在燃燒的樹變成空格位 2 如果綠樹格位的最近鄰居中有乙個樹在燃燒,則它變成正在燃燒的樹 3 在空格位,樹以概率p生長 4 在最近的鄰居中沒有正在燃燒的樹的情況下樹在每一時步以概率f 閃 電 變為正在燃燒的樹。參考文獻 祝玉學,趙學龍...
元胞自動機
元胞自動機 ca 是一種用來 區域性規則和區域性聯絡的方法。典型的元胞自動機是定義在網格上的,每乙個點上的網格代表乙個元胞與一種有限的狀態。變化規則適用於每乙個元胞並且同時進行。典型的變化規則,決定於元胞的狀態,以及其 4 或 8 鄰居的狀態。森林火災元胞自動機模型 一片森林由於自然或人為原因,有一...