0

0
1

文字

分享

0
0
1

提出「蝴蝶效應」──勞倫茲誕辰│科學史上的今天:05/23

張瑞棋_96
・2015/05/23 ・1159字 ・閱讀時間約 2 分鐘 ・SR值 536 ・七年級

-----廣告,請繼續往下閱讀-----

勞倫茲系統軌跡(Lorenz System)

1961 年的一個冬日,麻省理工學院校園罩著一層薄霧,氣象學家勞倫茲(Edward Norton Lorenz, 1917-2008)在他的研究室看著窗外的天空。低低的雲層緩緩移動,他看到的卻是背後推動的氣流;在他眼中,它們化成一段段線條與數字,就像角落裡那臺電腦正在做的‧‧‧‧。

當然,這臺靠真空管運作、記憶容量有限的機器不可能模擬真實的大氣,但自小對天氣的變幻莫測感到著迷的勞倫茲還是期望能捕捉到變化的形態,為天氣預報更找出更科學的方法,而不是依賴預報員的經驗與直覺。

印表機不斷吐出他的程式運算出來的數字,每個數字都代表某個時間點的天氣,然後這個數值會再自動輸入程式,用來計算下一刻的天氣,如此一直遞迴下去。突然機器停了下來,一定又是電腦裏哪顆真空管燒壞了!勞倫茲無奈地修好電腦後,看著紙條上長長的數列,實在不想從頭再來,於是他從中間選了個數字當作初始值輸入電腦,讓程式去跑,然後下樓去喝杯咖啡放鬆一下。

一小時後他回來檢查紙條,赫然發現第二次跑出來的結果竟然與原來的數列截然不同!同樣的程式、同樣的輸入值,照說應該完全複製之前的結果啊?勞倫茲再三檢查後終於發現問題所在:紙條上印出來的數字──也就是他剛剛輸入的──只到小數點後三位,而電腦記憶體貯存的卻是到後六位。但何以不到千分之一的誤差竟會迅速造成南轅北轍的結果?這就像兩次瞄準角度只差0.5度,子彈卻一次向前飛、一次向後飛,簡直不可思議!

-----廣告,請繼續往下閱讀-----

結果勞倫茲這個無心的發現開啟了一門全新的科學──混沌(Chaos)。這是一種衍生自簡單的規則,但對於初始條件極為敏感,以致差之毫釐卻失之千里的系統;表象看似不斷自我摹仿卻又永不重覆。除了天氣,洋流也是屬於混沌,還有生態、心跳、血管,就連人為的股市都是;事實上原子以上,宇宙以下的人類尺度充斥著混沌現象,難怪有人視之為繼相對論與量子力學之後的第三次革命。

勞倫茲鑽研兩年後所發表的先驅性論文至今仍是所有混沌理論論文中被引用次數最多的。而他在 1979 年的研討會上所用的譬喻:「一隻蝴蝶在巴西輕拍翅膀,會在德州引起龍捲風嗎?」,更是讓「蝴蝶效應」成為混沌的代名詞,滲入大眾文化歷久不衰,人人不管懂不懂都能琅琅上口。這也是勞倫茲始料未及的蝴蝶效應吧?

資料來源

 

本文同時收錄於《科學史上的今天:歷史的瞬間,改變世界的起點》,由究竟出版社出版。

文章難易度
張瑞棋_96
423 篇文章 ・ 954 位粉絲
1987年清華大學工業工程系畢業,1992年取得美國西北大學工業工程碩士。浮沉科技業近二十載後,退休賦閒在家,當了中年大叔才開始寫作,成為泛科學專欄作者。著有《科學史上的今天》一書;個人臉書粉絲頁《科學棋談》。

1

5
5

文字

分享

1
5
5
萬物皆混沌?——族群演化、股市、氣候變遷背後的神秘公式
Castaly Fan (范欽淨)_96
・2023/12/01 ・4632字 ・閱讀時間約 9 分鐘

-----廣告,請繼續往下閱讀-----

你知道有那麼一條公式——它不僅可以表述生態系中動物族群的數量變化、城市裡人口隨時間的變遷,還與金融市場的波動、甚至是氣候變遷有所關聯?更令人驚奇的是,這個式子並不是什麼複雜的偏微分方程,它只有短短一行、就連國小學生都能代入算出。

這個看似相當簡單的式子,能推演出極其複雜的圖像;而在看似錯綜複雜的圖像背後,卻又隱藏著某種未知的神秘規律。今天這篇文章,將帶領大家透過這個簡單的函數重新認識世界。

自然界潛藏的規律

且讓我們先從自然界談起。假設一片草原上有一群斑馬生活著,我們想要知道明年、後年、甚至數十年後的數量;我們知道,這一部分取決於斑馬的出生率,還有另一部分取決於環境的負載力——假設斑馬的族群總數超過了該草地所能負荷的程度,很可能在往後導致族群的縮減,因此,負載力有點類似於一個約束條件。有了以上的資訊,我們可以嘗試用數學來描述:

這邊,xn 代表的是「現存族群數量與最大可容納的族群數量」之比值,你可以想像成:假設這片草原此時此刻有 60 隻斑馬,而草原所能容納斑馬數量的最大值為 100 隻斑馬——一旦超過這個值,那麼便會面臨諸如饑荒等生態危機。因此,在此例子中,x0 = 60/100 = 0.6。而假設我們想知道明年的數量,也就是 x1,便可以帶進去推算。那麼,式子中的"r"又是什麼?你可以將它理解為「成長率」,但要注意的是,它的值一般是界定在 0 與 4 之間。

-----廣告,請繼續往下閱讀-----

如果單純只看 xn+1 = r xn,假設 r=2,今年有 60 隻斑馬、明年有 120 斑馬、後年便會是 240 隻,這樣只會無止盡地指數增長下去;因此,當我們設定了"(1 -  xn)"這個約束條件後,便可以解決這個問題——假如今年的 xn = 1,意味著該地斑馬數量已然達到環境可負荷的最大值,便會因為饑荒等因素滅絕,隔年得到的數量便將為零。這個看似簡單、卻又多少能給生態學家建構模型的公式,稱為「單峰映射」(logistic map),也是今天文章的主角。

這個式子不僅可套用在生態系,也可以套用在人口學:舉個例子,某城市今年有 60 萬人,該城市所能負載的最大人口為 100 萬人,而每年的成長率大概是 r = 1.5,那麼,套進公式會發現:明年的人口將為 36 萬、第三年人口將為 34.6 萬……,從而漸漸達到平衡點。如果一開始我們假定有 30 萬人,明年將會成長為 31 萬、後年成長為 32 萬,然後趨近於和前者相近的平衡點。最後,如果這個城市一開始就有 90 萬人,第二年便會因為環境負載力而銳減至 13.5 萬人,但後年、大後年之後將會隨著成長率升高而回升至約莫 33 萬人的平衡點。

而這些資訊並非憑空構思的,因為它們本身就含括在單峰映射的公式裡,用圖表呈現便一目了然,你會發現無論前幾年如何變化、最終都會回歸一個平衡點:

給定該地區成長率為 r = 1.5,假設一開始族群總數為 30 萬(左)、60 萬(中)、90 萬(右)人,無論哪一例子,後幾年所呈現的數量將會趨於一個穩定值、約在x = 0.33(33 萬人)左右。

而這個穩定值是取決於"r"的,也就是說,只要 r = 1.5,無論人口數目如何變化,最終的平衡點都不會有所差異。

-----廣告,請繼續往下閱讀-----

規律的瓦解、未知的開端

因此,我們何不來看看"r"會如何變化?這時,我們回到原本的假設:一個城市裡有 60 萬人口,如果改動不同的 r,演化曲線將會如何改變?

這裡呈示了 r=0 到 2.8 之間的圖表,可以看出在 r 超過 2.5 時,振盪發生,即使如此、依舊回歸平衡值。

當我們將 r 值逐步增加,一切看似並無異常;當 r=2.8 時,我們發現圖形出現了週期性的振盪,但最後依舊回歸平穩。順帶一提,我們可以藉由「分枝圖」(bifurcation diagram) 來觀察 x 的穩定值與 r 的關係,在 r=0 至 2.8 之間,x 穩定值有攀升趨勢;在 r=1.5 時,根據前述的例子,x 的穩定值落在 0.33 左右,從下圖也可以直接看出:

呈現 x 穩定值與 r 之間的分枝圖,r=0 與 r=2.8 之間,穩定值有攀升趨勢;在前述例子中,r=1.5 對應到的穩態相當於 x=0.33 上下。

我們繼續調大 r 值。正當一切看似正常發展時,詭異的事情發生了:

當 r 大於 3 時,週期性的振盪發生,且不再回歸平穩值。由左至右分別是 r=3.1、r=3.45、與 r=3.55 的圖表。

在此之前,一切族群的數量都是平穩的,但在 r 超過 3 左右,持續的振盪出現了,且自此「平衡點」不復存在;不僅如此,當 r 值不斷調升,顯示出來的圖像從原本 2 個值、4 個值、到更多值之間來回振盪。值得一提的是,這種「週期性振盪」的現象在生態圈與人口變化中是確實存在的,很有可能前一年數量減少、今年數量增加、明年數量又再減少。讓我們來看看對應的分枝圖:

-----廣告,請繼續往下閱讀-----
圖為 r=2.8 至 3.55 之間的分枝圖,可以發現數目振盪導致的「分岔」。

這對應於原本從 2 個值之間的擺盪、分岔成 4 個值之間的擺盪、再分岔成 8 個值之間的擺盪……如此往復。此外,如果你留意橫軸 r 之間的間隔,會發現:當 r 愈大時,分岔的速度也愈快!

現在讓我們繼續將 r 值調升,來看看會發生什麼事:

隨著 r 不斷提升,系統呈現隨機的跡象,在 r 超過 4 時系統發散。上圖分別演示了 r=3.56、r=3.58、r=3.65、r=3.8、r=4 與 r=4.01 的情景。

話不多說,我們直接來看看分枝圖:

在 r=3.55 至 r=4 之間的分枝圖,分岔不斷衍生、並進入隨機的模式。

令人毛骨悚然的結果出現了!前面我們觀察到,當r提升時,系統會出現週期性的振盪,對應於分枝圖中的「分岔」,且分岔的速率會不斷增快、再增快;而在 r 超過 3.5699 時,規律的振盪、分岔將不復存在,取而代之的是一團無法預測的隨機——這就是所謂的「混沌」(chaos)。

-----廣告,請繼續往下閱讀-----

混沌、股票市場、以及蝴蝶效應

現在讓我們看一下完整的分枝圖長什麼樣子:

單峰映射的分枝圖,從 r=1 至 r=4,可以看出系統在 r 超過一定值後進入混沌狀態。

換而言之,當系統的變量到一定程度時,將會變成隨機且無法預測的。以人口為例,一開始我們假設的情況很簡單,就是 60 萬人口與 r=1.5 的成長率;接著我們發現,無論人口基數如何,只要 r 維持原狀,數年、乃至於數十年後的平衡點都是相近的。然而,當r值提升後,平衡點的值便會浮動了,r=3 之後週期性的振盪便出現了、且分岔點不斷加速倍增;緊接著,我們赫然發現:

當 r 值大於 3.5699 時,系統將全然處於混沌狀態。

也就是說,即便給定初始條件,最後的人口演化將會是無法預測的。事實上,這種「混沌」、「隨機」的現象並不僅僅侷限於自然界的族群或者人口數量,它其實是隨處可見的。比如:家中水龍頭關不太緊時,水滴很自然地會落下,按理來說,鬆緊程度與水壓毫無變化的情況下,滴水的規律應該也是不變的;但如果你花一段時間觀察,會發現水滴可能一下子連續落下兩滴、一下子又只落下一滴——我們根本無法預測每一次的滴落模式。

-----廣告,請繼續往下閱讀-----

另一個例子就是金融市場:當我們投資了固定金額的股票後,市場的波動將導致金額的浮動,就算有再好的分析師與預測模型,我們也不可能精準預測明天的投資金額會變多少。順帶一提,在金融學中描述期權的模型是「布萊克-休斯模型」(Black-Scholes model),它便是從微觀粒子的「布朗運動」(Brownian motion) 所推導而來,其中粒子碰撞隨時間演化的隨機過程被稱為「維納過程」(Wiener process)。布萊克-休斯模型的假設之一,便是將隨時間演化的「股票價格」描述成維納過程,從而預測、消弭潛在的風險。事實上,休斯本身大學時就是主修物理學的。

而提到「混沌現象」,最經典的例子當然還是氣象學家愛德華.洛倫茲(Edward Lorenz)的那句名言:

「一隻海鷗拍動翅膀,將導致永久性的氣候變化。」

“One flap of a sea gull’s wings would be enough to alter the course of the weather forever.”

-----廣告,請繼續往下閱讀-----

爾後,這個現象被稱為「蝴蝶效應」(Butterfly effect),也就是說,縱然系統初始條件只有微不足道的變化,也會導致最後產生的結果大相徑庭;即使是一隻在巴西的蝴蝶拍動翅翼,周邊的氣流變化會連帶影響、擴散至大氣系統,甚至能致使一個月後的德州發生龍捲風。

這些非線性、隨機的現象在自然界無處不在,許多科學家也嘗試研究,締造了「混沌理論」(chaos theory) 的研究熱潮。一旦我們能從中梳理出一些規律,那麼,也許便能更精確地掌握「混沌」之中的資訊,這將有助於我們更精確地預測投資股票的風險、也有助於人們更準確地預測天氣的變化。

混沌背後的神秘常數

從描述族群、人口的簡單函數推演到「混沌狀態」的存在已經夠令人驚豔了,然而,不知你是否曾留意過分枝圖中、每一段分岔點之間的間隔?

如果你把我們最後得到的分岔圖放大來看,會發現在混沌狀態之前、分岔點出現的速率不斷增快;而如果你對每一個分岔點之間的間隔取比值,你會發現——每一次得到的值都會是同一個數字,這個數字大致為 4.669,它被稱為「費根鮑姆常數」(Feigenbaum constants)。

-----廣告,請繼續往下閱讀-----
對於分枝圖上的每個分岔間隔取比例,最終發現比例皆為同一個值:4.669。圖源:https://blogs.sw.siemens.com/simulating-the-real-world/2021/01/04/chaotic-fluid-dynamics-part-4-finding-feigenbaum/

更令人細思極恐的是,這個「常數」並非只存在於單峰映射,所有混沌理論中有這種分岔性質的圖像,它們之間的比例都是這個常數!而目前數學界尚未能明確理解這個常數的性質,唯一可以推測的是:

費根鮑姆常數(4.669…)與混沌理論有密不可分的聯繫;該常數的出現意味著混沌現象即將發生。

在前述單峰映射的例子中,費根鮑姆常數主宰了 r=3.5699 之前的分岔規律;在 r 超過 3.5699 後,系統便徹底進入混沌狀態了。

除此之外,你或許也發現了,每個分岔的形狀都超乎尋常地相似,後一個分岔根本上就是前一個分岔的縮小版。這種特徵令人聯想到數學上的「碎形」(fractal),也就是某些形狀放大後會是自己的本體、從而無窮延伸下去。最著名的例子就是複數平面上二次多項式迭代出來的「曼德博集合」(Mandelbrot set)。信不信由你——當我們將單峰映射的分枝圖與曼德博集合比照來看,會發現分岔點之間是有所對應關係的;也就是說,單峰映射可以視為曼德博集合的一部分!

單峰映射其實是曼德博集合的一部分。圖源:https://www.sci-pi.org.uk/mandel/mandel_vs_log.html

從簡單的單峰映射公式,我們推導出了自然界族群、人口的演化模式,進一步發現了「混沌」狀態的存在;而在看似極其複雜的混沌狀態中,似乎又發現了隱藏在隨機背後的神秘規律。

混沌理論在生活中是無所不在的,時至今日,仍有不少未知的特性等著人們發掘與驗證。從生物的競爭、人口的演化、股市的浮動、亂流的成因、到氣候的變遷……這些日常事物都被混沌現象主宰著,從而使我們無法精準預測到未來的走向。然而,費根鮑姆常數的發現與幾何碎形的聯繫卻也指出了隨機背後潛藏著某些規律,這也不禁令人讚嘆自然界的美麗與神秘。

所有討論 1
Castaly Fan (范欽淨)_96
6 篇文章 ・ 4 位粉絲
科學研究者,1999年生於台北,目前於美國佛羅里達大學(University of Florida)攻讀物理學博士。2022年於美國羅格斯大學(Rutgers University)取得物理學學士學位,當前則致力於學術研究、以及科學知識的傳播發展。 同時也是網路作家、《隨筆天下》網誌創辦人,筆名辰風,業餘發表網誌文章,從事詩詞、小說、以及文學創作。

0

0
0

文字

分享

0
0
0
【Gene思書齋】重溫經典的科普好書──讀《混沌:不測風雲的背後》
Gene Ng_96
・2016/08/07 ・3114字 ・閱讀時間約 6 分鐘 ・SR值 521 ・七年級

-----廣告,請繼續往下閱讀-----

1993 年科幻經典電影《侏羅紀公園》(Jurassic Park)爆紅,炒熱了許多科學話題,例如基因工程、恐龍 DNA 的取得,還有暴龍的奔跑速度、以及恐龍是否為恆溫動物和有視覺行為等等。片中雖然只是簡單一提,卻已引起世人矚目的是,黑衣神經質數學家所解說的「蝴蝶效應」,說什麼一隻蝴蝶在北京拍動翅膀,可能在地球另一端的紐約掀起風暴。

這就是混沌理論的蝴蝶效應,指在一個動態系統中,初始條件下微小的變化能帶動整個系統的長期的巨大的連鎖反應。後來在 2004 年上映的一部科幻電影就是《蝴蝶效應》(The Butterfly Effect),影片裡原先看似無關緊要的小變化,到最後可能會導致起初無法預期的後果。

要知道混沌理論是啥咪碗糕嗎?《混沌:不測風雲的背後》Chaos: Making a New Science)是本必讀經典好書。《混沌》是天下文化的第一本科普書,也是台灣第一本科普暢銷書。這本好書開啟了科學人文系列科普的的濫觴,間接造就了科普書的黃金時代。

《混沌》的原文版在 1987 年出版,四年後臺灣出版了繁體中文版,今年再出第三版,轉眼就過了 25 年,我也從高中生歷經大學生、研究生、博士後到新進助理教授。雖然在這廿幾年來,混沌理論有了新發展,可是這本 25 年前出版的《混沌》,迄今仍是理解這門學問的誕生不可式缺的必讀讀物,是歷久不衰的經典。

-----廣告,請繼續往下閱讀-----

雖然已經過了廿幾年了,我還忘不了當初在馬來西亞,一個高中生在書展中邂逅這本書的感動。在馬來西亞的一個小鎮,沒有像樣的書店,我們只有在中華商會辦的小書展中,才偶爾能找到新出版的好書。想當年,我們在馬來西亞吃頓飯,只要台幣十幾塊,一本台灣出版的新書,要我們至少廿幾頓飯的飯錢(想像一下要一個台灣高中生花一千多塊錢買本科普書吧)。

 

記得當年在峇株巴轄的中華商會的小書展,展出了天下文化科學人文的其他書籍,我幾乎放學有空就去逛。逛了幾次,存夠了錢想買本書,也只買得起一本,那就是《混沌》了。後來還是有空就去書展,天天翻其他書,可是翻來翻去,還是買不起其他書了。《混沌》是我第一本科普書,有陣子也是唯一一本吧。

一個高中生,怎麼可能懂得和混沌理論有關的高深數學?更何況我的數學還不太好,一個馬來西亞小鎮成績不太好的高中生,能有多少科學素養?

然而,《混沌》這本書,最神奇之處就在於,作者葛雷易克(James Gleick)的寫作功力實在太深厚了,《混沌》就是讓我看得津津有味。我很慶幸,第一本讀的科普書是《混沌》,讓我對科學的世界,嚮往得不得了,所以願意歷經艱辛投身科學事業。

-----廣告,請繼續往下閱讀-----

過了十幾年,我終於到了美國深造,在唸博士班時,在狀況外就選修了門「族群生物的數學模式」課,一開始就被微分方程等嚇到了,撐到學期中,老師連混沌方程式都端上來了,當時才知道混沌理論在生態學上有廣泛的應用。簡單來說,許多生物族群在數量上的變動,有些條件些微的改變,會造成很巨大的不同結果,也是典型的非線性系統。

《混沌》這本好書,裡頭並沒有太多嚇人的數學方程式,在飛機上讀,不會像賓州大學經濟學教授因為在機上寫微積分,被乘客誤認為那些難以辨認的文字是恐怖活動暗號,被安檢人員約談而導致班機延誤。因為書中沒有多少奇怪的數學符號,不過倒是有很多碎形幾何的有趣圖案,如果那也能被誤認,那就乖乖上報宣傳一下《混沌》這本開啟科普書黃金時代的好書吧。

《混沌》主要要談的,其實是一群科學家的故事。

這群科學家,大多深居簡出,埋首在實驗室裡進行研究,意外發現了許多非線性系統的現象。在典範轉移前,他們的發現未必被科學社群認可,有些甚至被誤認為異端邪說。例如最早期在應用計算機時,非線性系統中初始條件微小的改變造成很不一樣的結果,大部分科學家都可能認為是程式有誤吧,只有少數敏銳的科學家鍥而不捨、排除萬難地對異例追根究底,才發現混沌的有趣世界,然後才產生了典範轉移,改變了我們對世界的認識。

-----廣告,請繼續往下閱讀-----

天有不測風雲,難道預測天氣比把人送上月球難嗎?

過去科學家一直以為只要收集到了足夠多的數據,就能精準地預測,可是混沌理論讓我們瞭解到原來參數的微小差異,就有天翻地覆的結果。除了大氣科學,混沌理論也廣泛地應用在許多自然學科中,包括數學、生物學、資訊科學、經濟學、工程學、金融學、哲學、物理學、政治學、人口學、心理學和機器人學等等。

除了著名的蝴蝶效應,混沌理論中,另一個能讓門外漢著迷的是,《混沌》書中彩頁的曼德博集合。那是一門所謂的「碎形幾何」,其定義是:「一個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都(至少近似地)是整體縮小後的形狀」,看起來很抽象吧?簡單來說,就是自然界中,有些東西有精巧的形狀,可是仔細瞧瞧,那些形狀是一直重複的,例如雪花。

640px-Mandel_zoom_00_mandelbrot_set
曼德博集合是碎形中的一個很有名的例子。圖/wikimedia commons.

-----廣告,請繼續往下閱讀-----

「碎形幾何」革命性地讓我們對許多生物現象有了進一步的理解,例如蕨類植物的葉子,還有我們身體裡的血管、神經、氣管、腎小管等等的構造,都有其「碎形幾何」的道理在。

我的一項主要研究工作,是探討羽毛多樣性的遺傳基礎,羽毛也是個碎形構造,有羽軸加羽支,羽支和小羽支又重複相似結構,小羽毛和羽小鉤又再重複。血管、神經、氣管、腎小管、羽毛的碎形構造,讓有限的基因就能控制這些器官複雜的網路,計多基因也可以一再被用在構建不同器官上。

「碎形幾何」除了重複性,還有其他有趣現象,例如維度可以非正數,還可以有分數,例如 1.2618 等等,創造「碎形」一詞的數學家本華.曼德博(Benoît B. Mandelbrot, 1924-2010)在 1967 年的經典論文〈英國的海岸線有多長?〉現在還有人提出來讓學生思考討論。

混沌理論當然不只是有蝴蝶效應和碎形幾何,還有許許多多有趣的現象和模型。《混沌》把混沌理論的發展過程,用很平易近人的方式為大眾述說。據說有些非理工科系出身的朋友,對科學發展過程的認識就是來自這本《混沌》

-----廣告,請繼續往下閱讀-----

如果你當年跟我一樣拜讀過《混沌》,現在是個好時機再拜讀一次,重溫多年前神遊探索科學新邊疆的熱情,如果你沒有讀過《混沌》,也還是歡迎來讀這本經典,體驗科學家探索未知世界的樂趣。

本文原刊登於故事「說書 Speaking Of Books」

Gene Ng_96
295 篇文章 ・ 30 位粉絲
來自馬來西亞,畢業於台灣國立清華大學生命科學系學士暨碩士班,以及美國加州大學戴維斯分校(University of California at Davis)遺傳學博士班,從事果蠅演化遺傳學研究。曾於台灣中央研究院生物多樣性研究中心擔任博士後研究員,現任教於國立清華大學分子與細胞生物學研究所,從事鳥類的演化遺傳學、基因體學及演化發育生物學研究。過去曾長期擔任中文科學新聞網站「科景」(Sciscape.org)總編輯,現任台大科教中心CASE特約寫手Readmoo部落格【GENE思書軒】關鍵評論網專欄作家;個人部落格:The Sky of Gene;臉書粉絲頁:GENE思書齋

0

100
1

文字

分享

0
100
1
電腦裡的生命遊戲,等你挑戰讓生命無限延續!
艾粒安鈉
・2016/03/23 ・2997字 ・閱讀時間約 6 分鐘 ・SR值 534 ・七年級

-----廣告,請繼續往下閱讀-----

相信大家對蝴蝶效應butterfly effect)耳熟能詳,最簡單的譬喻大概是:台灣美濃的一隻蝴蝶輕拍一下翅膀,可能造成影響美國佛羅里達州的颶風。由於氣候系統是動態的,初始條件微不足道的變化,可能造成影響整個系統的巨大連鎖反應。可是這個蝴蝶變颶風的「實例」說得簡單,實際上卻很難想像和驗證啊!不打緊,只要我們打開電腦或平板,玩一玩生命遊戲Game of Life),就能在螢幕上看到蝴蝶效應了!

康威生命遊戲中的泛科學跑馬燈!
康威生命遊戲中的泛科學跑馬燈!

遊戲規則

生命遊戲是由英國數學家約翰.何頓.康威(John Horton Conway)發明,刊登在《科學人》雜誌的數學遊戲專欄。生命遊戲的名稱,來自遊戲模擬的就是真實世界當中的生物。首先假設一個方形的棋盤格,每一格都是一個細胞的空間;遊戲開始時,我們可以扮演「上帝」的角色,任意決定棋盤上哪些細胞是活的。之後細胞就遵循下列規則,與周圍相鄰的8個細胞互動:

  • 假如一個活細胞周圍有 2~3 個活細胞,這個活細胞就能繼續存活到下一世代。
  • 假如一個活細胞周圍 <2 個或 >3 個活細胞,這個活細胞就會因為「資源不足」或「過度擁擠」,在下一世代死亡。
  • 假如一個死細胞周圍恰好有 3 個活細胞,這個死細胞就會在下一世代復活,象徵「細胞繁殖」。

同一個世代的每個細胞同時依照以上三個規則運算後,就產生下一世代的細胞圖,如此周而復始。大家有沒有注意到了:生命遊戲開始之後,不需要玩家插手,就可以一直繼續玩下去了!所以這是一個零玩家遊戲,只要初始條件設定好,我們就可以泡杯咖啡,靜靜觀察這些細胞自我繁殖的過程。

-----廣告,請繼續往下閱讀-----

生命遊戲的多變圖案

康威當初在設計生命遊戲時,經過許多實驗精心考慮規則,使細胞不會爆炸性繁殖,又能從相對簡單的初始條件,產生難以預測的結果。生命遊戲更具有「不可決定性」的特點:給定任意起始條件 A 和最終條件 B,判斷 A 的後續世代中是否會造成 B 的演算法是不存在的。因此上述的規則看似簡單,卻能衍生出非常複雜又引人入勝的圖案。一個穩定繁殖中的圖案,往往只要稍微改變幾個細胞,就會產生骨牌效應,把整個系統搞砸,或者產生出令人意想不到的結果!數學家與電腦科學家們往往會用現實生活中的物品,為他們發現的圖案命名。

首先最單調的就是靜物(still lifes),也就是世世代代都不動如山的圖案,最簡單的圖案有下面幾種,其中白色圓點代表活細胞,藍色空白處為死細胞:

game of life-still lifes

我們可以用上面的規則檢查看看,上面每個圖案中,是不是所有的細胞都會維持原本狀態呢?

稍微有趣一點的是振盪器(oscillators),顧名思義,就是在世代發展的過程中,會在幾個不同圖案之間循環。振盪器可以有不同週期,數學家已經發現了很多週期的振盪器,但卻還找不到週期為 19、23、34、38、41 的,這是個非常有趣而具有挑戰性的問題。

-----廣告,請繼續往下閱讀-----

game of life-oscillators

太空船(spaceships)就更有意思了,這些圖案會隨著世代發展在棋盤格上移動或「飛行」。太空船中最有名的大概就是滑翔翼(glider,下圖左)了,只要路線上沒有東西阻礙,就會沿著對角線永無止境地滑翔。由於許多程式設計師喜歡玩生命遊戲,結構簡單的滑翔翼被許多駭客們當作標誌。各種太空船的速度不盡相同(下圖右),但就像現實生活中所有物體移動和資訊傳播都沒辦法超越光速,生命遊戲中也有「光速」(一樣用 c 表示):由於一個細胞每世代只能影響到相鄰的細胞,所以生命遊戲中的光速就是每世代一格,所有太空船都沒辦法超過這個速度。

Game_of_life_animated_glider     Animated_spaceships

康威曾經懷疑,生命遊戲中是否有圖案能夠永無止盡繁殖下去(穩定產生越來越多的活細胞),還懸賞了50英鎊給第一個發現可無限繁殖圖案的人。這樣的圖案很快就被美國數學家比爾.高斯帕(Bill Gosper)發現了,他設計了一種可以不斷產生滑翔翼的裝置,稱為滑翔翼機關槍(glider gun),之後數學家又發現更多可以不斷發射出太空船的構造,仿照高斯帕原本取的名字統稱為「槍」(guns)。另外一般的太空船,船過水無痕,但有些特殊的太空船會邊走邊「慶煙」,在軌跡上留下「廢氣」,被數學家暱稱為「蒸汽火車」(puffer train)。

Gosper's glider gun (來源)
Gosper’s glider gun。圖/wikipedia

除了以上的「生物」之外,還有可把其他生物吃掉的大胃王(eaters)、可以反射太空船的反射板(reflectors)、甚至可以邊走邊產生無數「二級結構」,這些二級結構又可以不斷產生「三級結構」,使活細胞數量成二次方生長的繁殖器(breeder)等等多采多姿的不同結構。數學家與電腦科學家利用這些結構的組合,可以在生命遊戲中製造相當於現實生活中的許多機械。

-----廣告,請繼續往下閱讀-----

一台繁殖器(來源)
一台繁殖器。圖/wikipedia

生命遊戲的應用

讀到這邊,大家可能會出現一些疑惑:這種純粹欣賞的零玩家遊戲,除了當螢幕保護程式之外,有什麼具體用途嗎?首先由於生命遊戲規則簡單,卻能產生非常複雜的結果,因此不論是初學者或高階程式設計者都經常接觸它。假如記憶體和運算時間沒有限制,生命遊戲可以用來模擬所有的運算過程;換句話說生命遊戲本身就等於一台電腦。筆者也是在大學的基礎 MATLAB 程式設計課程中,首次認識生命遊戲的,最近重新讀到,頓時興致大發,就在生命遊戲中建立一個泛科學跑馬燈:

生命遊戲屬於一個更大範疇的模型──細胞自動機(cellular automaton),泛指所有規律格狀的系統,每格處於有限種類的狀態,而這些狀態是由上一世代的相鄰格子狀態來定義出來的。細胞自動機依照演化方式可粗略分成 4 大類,其中最複雜的第 4 類中,幾乎所有初始狀態都會演化成複雜、渾沌和接近隨機的狀態,生命遊戲也屬於第 4 類。由於以上的特性,細胞自動機可以模擬生物過程、物理粒子的交互作用,甚至地理學、經濟學和社會學;甚至有不少科學家提出了一個問題:整個宇宙是否也是個細胞自動機呢?

織錦芋螺(Conus textile)外殼顯示出如細胞自動機般的外觀
織錦芋螺(Conus textile)外殼顯示出如細胞自動機般的外觀。

-----廣告,請繼續往下閱讀-----

1986 年法國藝術家奧利維爾.奧柏(Olivier Auber)更提出了「真人版」生命遊戲──Poietic Generator:在傳統生命遊戲中,每個細胞下一回合的命運,純粹由鄰近的細胞決定;而在 Poietic Generator 中,每位玩家一次可以更改點陣圖中其中一格的顏色,由不同玩家透過網路連線共同創作。在這個遊戲中,沒有所謂的輸贏,主要的目標在欣賞和參與大家的創作過程,共同創造出動態的藝術品。

X-00
Poietic Generator X-00

想玩玩看生命遊戲嗎?網路上有許多利用 JavaScript 寫成的模擬器,另外假如想要深入了解生命遊戲和更多規則各異的細胞自動機,筆者建議下載 Golly 這個免費模擬器,在電腦、iPad與Android多平台上都可以使用喔!

參考文獻

艾粒安鈉
7 篇文章 ・ 1 位粉絲
主修有機合成。對化學、天文、幾何學、地理、氣候、統計學、語言學、心理學、社會學、音樂和烹飪都有興趣。不願一生為學術研究爆肝,而熱愛為感興趣的學科認真寫科普文章,並用創意比喻和爛梗讓大家喜歡科學。多元性別,最高心跳210,海豚音到重低音一手包辦。