封存 Archive
封存 Archive
科普系列 - 數學、社會隔離與生命遊戲(四)
- 取得連結
- X
- 電子郵件
- 其他應用程式
上面這個研究社會隔離現象的數學模型,跟一個叫做「生命」 (Game of Life)的遊戲非常相似。記得有一次到日本旅遊參觀一個藝術館時,看見這樣子的一個裝置藝術。那個展覽廳佈置得像一個生物實驗室似的,保溫裝置裏面有一些細菌培養器,然後有一些投影機有影像投放到螢光幕上。光點會隨着時間而改變。這個裝置藝術的名稱為I’m Humanity,我猜想容易是要參觀的人仔細想一下到底什麼定義生命。在螢光幕上,隨着時間「出生」,「生長」或「死亡」的「細菌」或者光點,到底符合生命的定義嗎?而整個展覽,就圍繞着生命和人性如何在這個大數據年代被機械學習所衝擊。這個展覽裏面的那一個螢光幕上的細菌培養起,細菌變化的方法,看起來就是這個「生命」的遊戲。
這個生命遊戲在1970年被John H. Conway 所發明。遊戲的設定,跟上面社會隔離現象研究的設定差不多。我們也是在一個「細菌培養器」的區域裏面進行計算。跟上面那個應用有點不同在這個生命遊戲內,每一像素點只會有「生」或者「死」兩個狀態。「生」代表着的可能是這一小方格內充滿着細菌或者生命,「死」就代表着這一小格內並沒有生命跡象,可能只有培養液的存在。隨着時間的發展,每一個像素點狀態的改變,都會根據他附近8個像素點的狀態而有所不同。生命可能從一個像素點產生,也可能有細菌在某一小格內死亡。所以遊戲的目的就是看看在不同設定下,生物群組是如何隨着時間發展而演變。
最簡單的生物進化設定,是模擬在真實環境下,細菌是如何根據附近環境而生長。可以歸納為下面幾個規則。
假設一個像素點是在「生」的狀態,
情況一,如果旁邊八個像素點只有少於兩個「生」的狀態,我自己就會死亡(可能是沒有朋友而悶死);
情況二,如果旁邊八個像素點有多過三個「生」的狀態,我自己也會死亡(可能是沒有養分而餓死);
情況三,只有當旁邊八個像素點有兩個或三個「生」的狀態,我才可以維持着「生」的狀態。
假設這一個像素點是在「死」的狀態而且旁邊八個像素點裏面有三個「生」的狀態,我這個像素點在下一個時間就會生出一個新的生命,而狀態亦會從「死」改變為「生」。
這個遊戲的設定相當簡單,如果同學可以編寫程式模擬社會隔離的狀況,這個生命遊戲要編寫起來更加沒有困難。其中一個遊戲的玩法,是同學隨便挑選一個任意的初始條件,然後根據上面提到的生長條件將這一群「生命」進行演化,看看他們生長狀態如何隨着時間改變。這個就跟日本博物館內裝置藝術的做法一樣。看着一代又一代的生命改變,看起來也可以消磨一點時間。
另外一些比較數學的玩法,是去問可否找到一些特別的狀態,令到生命的變化相對比較穩定。最簡單的穩定,就是整群生命並不會隨着時間而有所改變。看着他的形狀,這些生物可能會有一些比較可愛的名字,有的會叫麵包,有的會叫蜂巢。最簡單的狀態是叫板凳,象徵着一個2×2的生命體。對於每一個「生」的像素點,旁邊都剛好有三個「生」的狀態。所以根據遊戲規則,下一個時間點我還是「生」。所以這個2×2的生命體狀態非常穩定,形狀完全不會受時間所影響。
另外有一些狀態比較有趣,雖然隨着時間整群生命的形狀會有所不同。可是,有些可能經過兩代,就會回來原本的狀態。有些可能經過三代,或者更長時間,就會返回最先的狀態。這些特別的狀態,我們會叫做震盪狀態(Oscillator)或者周期性狀態(Periodic Configuration)。有一些更特別,生命會不斷繁衍,狀態跟周期性差不多,可是一群生物卻同時會會在區域內不斷移動。這些狀態有個名字,叫做太空船(Spaceship)。這些不同的狀態也可能同時在區域內出現,生長模式亦可能會不斷改變,完全毫無章法可言。
數學上來說,這個遊戲的研究非常豐富。其中一個特徵叫做不可判定性(Undecidable)。給了我們兩個狀態,我們不可能直接判定可否從狀態A「生長」到狀態B。唯一可以慢慢判定的方法,是不斷演化狀態A直到他跟狀態B一模一樣。這樣我們才可以判定從狀態A演變到狀態B是「可行」的。要判定答案為「不可能」,除非狀態A一路演變的過程會導致全部生物死亡,我們就知道永遠不可能到達狀態B。其他有趣的討論,同學亦可從網上不同地方找到。
- 取得連結
- X
- 電子郵件
- 其他應用程式
留言
發佈留言