IA6 - 小專題: 進擊的黴菌
初始3個菌點經過80單位時間後形成的菌落 利用電腦模擬真實世界的情況,不僅僅是電腦科學家,還包含了物理學家、生物學家、化學家和多種領域專家有志一同的想法。自然界千變萬化,圖騰多樣,但或許它們都可以從幾個簡單的規則當中得到答案, 這便是所謂的湧現現象 (emergence phenomenon)。 我們來看個簡單的例子,黴菌菌落的增值過程。 一、菌落的消長 用一個\(N\times N\)的區域代表一整片的培養區域如圖1,這個區域裡有比例\(q\)的部份是培養基質可以生長出黴菌 (淺綠),剩下的區域則不能長出黴菌 (白色),假設長出和不能長出的區域是隨機分佈的,那麼我隨意在這片區域灑上幾個菌點 (墨綠色),是問它們發展成菌落的過程為何? 圖1. 培養區域,淺綠是含有生長基質的區域,白色不能生長,墨綠色表示初始的5個隨機菌點 這個問題和Prof. Downey在他的著作Think Complexity的第七章在描述滲透的情況基本上一模一樣,除了關鍵的黴菌生長需要引入額外的判定條件外,所以我會依照Prof. Downey的方式來做,最後在引入這個判定生長的條件。欲執行這個雜記的notebook,我需要下載Prof. Downey所寫的一個 python 腳本 Cell2D.py ,可以從雜記的notebook裡直接點連結。這個腳本主要是需要其中的 Cell2DViewer 類來將黴菌菌落的消長輸出成動畫,如果只需要用 imshow 看特定時刻的結果,引入 Cell2D.py 不是必須的,但如果想執行本篇雜記的notebook第一個擴散的例子,則需要有其中的 Cell2D 類。 1.1 預備知識 如果說以圖1其中一個淺綠的基質為中心 (Eq. (1)的\(?\)處),那麼它週邊\(3\times 3\)的區域內4個東南西北 (不含對角線方向:東南、東北……等等) 的方向可能含有黴菌或不含有黴菌,如下 \[ \begin{array}{ccc} \times & {\rm 黴} & \times\\ {\rm 無} & ? & {\rm 無}\\ \times & {\rm 無} & \times \end{array}\tag{1} \] 所以我們想知道如果它周圍有一個以上的菌點,