前言
我喜歡玩 ARC Raiders,所以就開始想說:「欸~如果我也自己做一隻 ARC(機械生物)來養,應該很酷吧?」結果一路追追追,就入坑了 Artificial Life(人工生命),整個停不下來(…)。
Artificial Life(ALIFE)是什麼?
ALIFE(Artificial Life 的縮寫)這個領域,簡單說就是:
👉「試著用人造的方式,把『生命系統』重現出來」
裡面很紅的題目像是:
- 重現「演化」本身(像是突變那種)
- 從簡單規則裡跑出「自己長出來的複雜圖樣」(pattern 的湧現)
舉幾個例子~
- Evolution Gym:在虛擬空間裡,讓「假生物」自己進化的研究

Evolution Gym
- L-system:用來重現植物的分枝、結構的研究

如果有一天,我們連像「人類」這種複雜到爆的生命系統都能重現,這類研究就有機會用來幫忙解決像是疾病等等很棘手的問題。 光想就覺得超夢幻 ✨
AI 跟 ALIFE 有什麼不一樣?
很大略地比喻一下:
- 一般的 AI:
是「先決定目標,再想辦法做到最厲害」的那種風格 → 比較像是 自上而下(top-down),人類幫它設計好要怎麼變強 - ALIFE:
則是「把基本規則丟下去,剩下交給演化自己亂長」 → 比較像 自下而上(bottom-up),靠偶然的進化、突變一點一點長出複雜行為
在「實體 AI」(像機器人那種)現場,其實也越來越多人從「套用人寫好的演算法」 轉向「先在模擬環境裡養成,再丟去真實世界」的 Sim2Real 做法。
也就是說,不再是「我設計你」,而是「我養你長大」這種感覺 🐣
來動手玩玩看 ALIFE 吧
① 生命遊戲(Conway's Game of Life,1970 年)
第一個登場的是超經典的 生命遊戲。
這是數學家 John Horton Conway 提出的「細胞自動機(cellular automaton)」。
小科普:
細胞自動機就是:把一堆「格子(cell)」排成網格,每一格只要照著很單純的小規則, 隨著時間一格一格更新自己的狀態(顏色或數值), 就能當成一個離散的計算模型來玩。
畫面上你看到的只是黑白小點,它們只遵守像「太冷清就會死」、「密度剛好就會長」這種超級簡單的規則在動而已, 結果沒想到,這竟然成了人工生命研究的起點。
生命遊戲的規則(超迷你版生存法則)
- 誕生:
一個目前是「死」的格子, 如果周圍剛好有 3 個活著的格子,
那麼在下一代就會「誕生」,變成活的。 - 生存:
一個目前是「活」的格子, 如果周圍有 2 或 3 個活著的格子,
下一代仍然會繼續活下去。 - 過疏(太孤單):
一個目前是「活」的格子, 周圍活著的格子 只有 1 個以下,
就會因為太孤單而死掉(好可憐 QAQ)。 - 過密(太擠了):
一個目前是「活」的格子, 周圍如果有 4 個以上活著的格子,
就會因為過度擁擠而死掉。
實際跑生命遊戲會看到什麼?
💡 你會清楚看到:
- 明明規則簡單到爆炸
- 但卻會長出各種 複雜又有個性 的圖樣
- 有些配置一下就全滅,有些卻撐超多代都不死
一種「小小規則 → 大大混沌世界」的感覺。
Conway's Game of Life Python 程式碼 (提供付費客製化,可以自己改一改玩)
② Boids(1986 年)
接下來是超有名的群體模擬:Boids。
這是 Craig Reynolds 提出,用來模擬「群體行為」的演算法。
“Boids” 這個名字其實是bird-oid object(鳥鳥系物件)的縮寫,
聽起來就很可愛 🐦。
Boids 的三個小小規則
- 分離(Separation):
不要撞到附近的同伴,所以會刻意跟大家保持一點距離。 - 對齊(Alignment):
會試著把自己的前進方向, 對齊成和附近同伴差不多的方向。 - 凝聚(Cohesion):
會慢慢往「群體中心」的方向偏移, 不會一個人飛超遠。
實際跑 Boids 會看到什麼?
💡 雖然只有這三條簡單的局部規則,一開始每一隻都亂飛, 但看著看著,你會發現:
咦?怎麼突然就開始像一群真的鳥在一起飛了?
也就是說,群體行為 是自然湧現出來的。
Python 程式碼(提供付費客製化,超適合拿來玩參數)
③ Tierra(1990 年)
最後登場的是 Tierra,是生態學家 Thomas S. Ray 開發的一個系統, 用來在電腦裡觀察 基因突變 的過程。
“Tierra” 在西班牙文裡就是「地球」的意思,感覺整個縮小版生態圈搬進記憶體裡的 vibe 🌏。
Tierra 的世界觀
在 Tierra 裡,會把「可以自我複製的一段程式(基因碼)」 視為一個 虛擬生物。
然後這些生物遵守大約這幾件事:
- 自我複製:
虛擬生物會消耗 - CPU 時間(當能量)
- 記憶體空間(當作生存領域) 來進行自我複製。
- 死亡(被收編):
當整體記憶體有 超過 80% 被用掉 的時候,
就會出現一個叫 Reaper(死神) 的角色,
從比較老的個體、錯誤比較多的個體開始, 一個一個刪掉清場。 - 突然變異:
為了模擬「宇宙線」這種隨機擾動, 在自我複製的時候, 會以一定機率讓基因碼(CPU 指令)的 bit 位元翻轉,
也就是所謂的「突變」。
我們先玩簡易版 Tierra
原版的 Tierra,是真的在記憶體上讓「機器碼」自己複製自己, 超療癒。
這裡先為了好理解,用 Python 的 list 來表示「基因組(genome)」, 寫一個 概念版的 Tierra 來玩。
💡 畫面上左邊會有一個「記憶體空間」。
- 上面那一區:是 比較有效率的生物(基因組比較短)
- 下面那一區:是 比較沒效率的生物(基因組比較長)
隨著時間演化下去,你會發現:
短、有效率高的那群虛擬生物慢慢變多,效率差的個體會被淘汰掉。
這就是「演化+淘汰 → 留下適應得比較好的族群」的縮小版實驗。
Python 程式碼(提供付費客製化,看完邏輯之後會覺得蠻療癒的)
總結(先喘口氣)
這一篇先介紹了 ALIFE 裡三個很代表性的模擬:
模擬年代會湧現出來的現象生命遊戲1970 年簡單規則 → 自己長出超複雜的圖樣Boids1986 年個體只看附近 → 整體卻形成漂亮的群體行為Tierra1990 年自我複製+淘汰 → 演化過程自然跑出來
共同點其實超明顯:
規則都簡單到不行,但跑出來的行為卻複雜到嚇人。
這種「小小規則,長出大大世界」的感覺,就可以說是 ALIFE 最犯規的地方。
而這樣的過程如果在宇宙裡重播個幾億年,說不定就真的是一路滾到「人類」這種 超級誇張的發明也不奇怪 🧬✨

















