細胞自動機

高中電腦科學每個細胞只觀察它的鄰居:在生命遊戲中,鄰居數為3時細胞誕生,鄰居數為2或3時細胞存活;一維規則編號列出了8種鄰域組合各自對應的新狀態。

使用通行證解鎖此實驗

通行證可解鎖網站上的所有模擬,包括課堂展示模式。下方的教學筆記仍免費開放給所有人。

一次性付款,無需訂閱。

關於此實驗

元胞自動機是由處於開啟或關閉狀態的細胞組成的網格。每個時刻,每個細胞都會查看它的鄰居,並遵循相同的簡單規則來決定自己的下一個狀態。除此之外沒有編寫任何程式,但滑翔機卻能在網格上移動,發射器會一個接一個地發射滑翔機,而一些一維規則會產生極其不規則的圖樣,甚至被用作隨機數產生器。執行約翰·康威的生命遊戲,繪製自己的初始圖樣,並探索全部 256 種初等規則。

學習目標

  • 手動套用生命遊戲規則,推算下一代
  • 辨識靜物、振盪器和太空船
  • 解釋規則編號如何編碼初等一維自動機
  • 描述簡單的局部規則如何產生複雜的行為
  • 比較能產生重複、嵌套、混沌和複雜圖樣的規則

使用方法

  1. 1載入滑翔機並按四次「步進」。經過四代後,它發生了什麼變化?
  2. 2載入脈衝星。它需要經過多少代才會重複?
  3. 3執行滑翔機槍。多久會出現一個新的滑翔機?觀察活細胞圖表。
  4. 4清空網格並畫一排三個細胞。在紙上預測下一代,然後按「步進」。
  5. 5載入 R 五連方並執行它。僅有 5 個細胞會生長成什麼?關閉邊緣環繞並進行比較。
  6. 6切換至一維規則。比較規則 30、90 和 110。哪一個看起來隨機,哪一個看起來是嵌套的,哪一個包含會移動的結構?
  7. 7翻轉規則 90 的規則表中的一個結果。你得到的規則編號是多少?圖樣發生了什麼變化?

模型

生命遊戲:n 是 8 個鄰居中處於存活狀態的細胞數量
初等規則 R:R 的第 k 位決定新狀態
初等規則的數量:有 8 種鄰域,每種有 2 種可能結果
規則90是模2加法,它會繪製出謝爾賓斯基三角形。

假設

  • 生命遊戲網格為72欄、44列。開啟邊緣環繞後,網格的邊緣會相連,形成一個環面;關閉後,邊緣以外的細胞始終視為死亡。
  • 所有細胞都根據上一代的狀態同時更新。
  • 一維列的寬度為121個細胞,首尾相連。隨機初始狀態使用固定種子,因此每次都相同。

在課堂上試試這個實驗

  1. Q1一個死亡細胞恰好有三個存活鄰居。它在下一代會怎樣?
  2. Q2為什麼由存活細胞組成的2×2方塊永遠不會改變?
  3. Q3將規則30寫成二進位,並據此求出鄰域為100的細胞的新狀態。
  4. Q4滑翔機每四代沿對角線移動一個細胞。它需要多久才能穿過72個細胞寬的網格?
  5. Q5規則110能夠完成電腦可以執行的任何計算。這說明了簡單規則與複雜行為之間可能存在什麼關係?

常見問題

生命遊戲是誰發明的?

由英國數學家約翰·霍頓·康威於 1970 年提出。它因馬丁·加德納在《科學美國人》上的專欄而聞名,此後人們不斷發現新的圖樣。

生命遊戲真的算是一種遊戲嗎?

這是一款零玩家遊戲:畫出起始圖樣後,一切都由規則決定。樂趣在於設計圖樣,並看看它們會產生什麼結果。

細胞自動機有哪些用途?

它們用於模擬森林火災、交通、晶體生長、疾病傳播,以及貝殼上的花紋。規則30曾被用作亂數產生器,而物理學與生物學中的網格模擬也常以相同方式運作。