聽說這個假期,你從人潮中倖存下來了……

原創: Cloudiiink 中科院物理所

其實……

你對擁擠的力量一無所知

聽說這個假期,你從人潮中倖存下來了……

國慶節的長城,上面全是人人人人人人

這個國慶你或許經歷了(或者在朋友圈經歷了)在洶湧的人海里迷失了自己的方向,在向前流動的人群中身不由己地跟著邊上的人一起移動,折騰完以後,你的臉上寫滿了不情願。但是事實卻是,你剛剛經歷了至今科學家都未研究清楚的一件事情。

這種全是人人人人人人所導致的各種現象,被稱為「集體行為」(collective behavior)。

聽說這個假期,你從人潮中倖存下來了……

1977 年,諾貝爾物理學獎得主菲利普 · 安德森(Philip W. Anderson)在 Science 上發表了一篇傳世之作《 More Is Different 》[1]

關於集體行為的研究由來已久,著名凝聚態物理學家、諾貝爾獎得主 Philip W. Anderson 有一句名言:"More is different!" 東西多了,事情就變得不一樣了。

鳥群、羊群和魚群

Flocks, Herds and Schools

聽說這個假期,你從人潮中倖存下來了……

在我們的現實生活中,我們也經常會看到天空中飛舞著的鳥群,海洋裡面巨大的魚群。雖然說天高任鳥飛,海闊憑魚躍,但是好奇心還是不斷地催促著人們提出問題:為什麼鳥要這麼飛,魚要這麼遊?

最關心這個問題的人,是做 CG 技術的。

以前,如果想要繪製一段鳥群飛行的軌跡,程序員們需要在程序裡單獨地設定好每一隻鳥的飛行軌跡,一旦鳥群裡面的鳥變多,工作量迅速增加,而往往做出來的效果還不怎麼好。

聽說這個假期,你從人潮中倖存下來了……

1994 年上映的《獅子王》中的一個鏡頭,一大群角馬在峽谷裡面奔騰

在《獅子王》中有這麼一段角馬奔騰的場景,5 個訓練有素的動畫師和技術人員花了整整兩年的時間,才把這段時長 2 分鐘左右的動畫製作完成[2]。這段視頻裡面崩騰著的角馬數以千計,如果使用人工設置軌跡的方法,那程序員們估計要崩潰。

怎麼逼真地展現群體中每個個體的行為?這就要從1987年,美國軟件工程師 Craig W. Reynolds 提出的一個能夠讓計算機更加高效地繪製鳥群飛行圖像的模型說起。[3]

聽說這個假期,你從人潮中倖存下來了……

2003 年上映的《海底總動員》中,為多莉(Dory)指路的魚群

Reynolds發明的算法是一個「自適應」的算法,用大白話來說就是你只要設定好初值和運行的規則,系統會自動演算出群體內每個物體的運動軌跡。這個模型被命名為 Boids 模型,作者把群體運動的特點總結成以下幾條規律 [4, 5]

聽說這個假期,你從人潮中倖存下來了……

體積排斥。每個個體都會佔據一定的體積,而在模擬的過程中,我們需要時時刻刻保持這些體積不相交。也就是說,每個個體都會避免和其他個體發生碰撞。需要注意的是,這個體積並不僅僅指個體的身體佔據的體積,更包括了自由活動所需要的體積,所以會比個體的體積大好多。

聽說這個假期,你從人潮中倖存下來了……

速度對齊。每個個體都會和周圍近鄰保持速度同步。

聽說這個假期,你從人潮中倖存下來了……

聚集傾向。粒子不會傾向於孤立運動,而是要和群體保持在一塊。

通過這幾條規則,我們就能把現實中的鳥群,魚群,人群等模擬的像模像樣。比如 Reynolds 在他的主頁上放出來的當年的模擬動畫 [6],雖然現在看起來稍顯簡陋,但是確實將群體的行為表現得惟妙惟肖。

聽說這個假期,你從人潮中倖存下來了……

利用 Boids 模型計算得到鳥群、魚群運動軌跡

當然,Boids 模型也有其不足之處,比如匈牙利物理學家 Tamás Vicsek 在 1995 年進一步地討論鳥群中的運動規律,當群體內的密度足夠大時,會出現速度的突變,比如突然集體掉頭等行為。

細胞自動機

Cellular Automaton

聽說這個假期,你從人潮中倖存下來了……

自然界中發現的原胞自動機圖案

提到群體的演化,我們不得不提到一個很有名的「生命遊戲」——細胞自動機。

聽說這個假期,你從人潮中倖存下來了……

細胞自動機 (Cellular automaton),又稱格狀自動機、元胞自動機,由無限個排列成網狀的方格組成,每格均處於一種有限狀態。整個網絡可以是任何有限維的,同時也是離散的。整個系統隨著時間不斷演化,每格於 t+1 時的狀態由 t 時的「鄰居」的狀態決定。每次演化時,每格均遵從同一規矩一齊演進。

聽說這個假期,你從人潮中倖存下來了……

初等元胞自動機,每一行代表每一個時刻所有空間的狀態,縱軸為時間,代表了體系的不斷演化。

人們最早開始研究的元胞自動機被稱為初等元胞自動機 (Elementary Cellular Automata, ECA)。其基本要素為:1. 空間:一維直線上等間距的點。2. 狀態集:S = {s1,s2} 即只有兩種不同的狀態。這兩種不同的狀態可將其分別編碼為 0 與 1;若用圖形表示,則可對應“黑”與“白” 或者其他兩種不同的顏色。3. 鄰居。我們取鄰居半徑 r = 1,即每個元胞最多隻有“左鄰右舍”兩個鄰居。4. 演化規則可以任意設定。

聽說這個假期,你從人潮中倖存下來了……

8 種不同的演化規則示意圖

需要注意的是,每個格點所處狀態及其鄰居的總狀態數為 2x2x2 = 8,因此初等原胞自動機最多 2^8=256 種不同的設定方式。比如其中一種,成為 ECA #76 = (01001100)2 的規則定義為

聽說這個假期,你從人潮中倖存下來了……

細胞自動機最早由美籍數學家馮·諾依曼(John von Neumann)在 1950 年代為模擬生物細胞的自我複製而提出的。但是並未受到學術界重視。直到 1970 年,任教於劍橋大學的英國數學家

約翰·何頓·康威(John Horton Conway)設計了生命遊戲,經馬丁·葛登在《科學美國人》雜誌上介紹,才吸引了科學家們的注意。

聽說這個假期,你從人潮中倖存下來了……

六邊形網絡中的元胞自動機

此後,英國學者史蒂芬·沃爾夫勒姆(Stephen Wolfram)對初等元胞自動機 256 種規則所產生的模型進行了深入研究,並用熵來描述其演化行為,將細胞自動機分為平穩型、週期型、混沌型和複雜型(關於元胞自動機,他還發起了一個 $25000 的懸賞)。

聽說這個假期,你從人潮中倖存下來了……

超全能的計算器

最後提到的這位史蒂芬·沃爾夫勒姆不僅把元胞自動機當做真愛,經歷也很傳奇。沒聽過他名字的,可能聽過他開發的軟件 Mathematica 和搜索引擎 Wolfram Alpha。

童年時期的他一開始學業上並不順利,在學習算術上遇到了困難。但是……

12 歲時,他編寫了一部關於物理的字典。

13 歲至 14 歲之間,他編寫了 3 本關於粒子物理的書籍,雖然它們沒有發表。

15 歲時發表第一篇科學論文[7] 正經的那種

17 歲進入牛津大學學習,但發現課堂“awful”,跑去了加州理工 [8]

20 歲獲得加州理工學院理論物理博士學位

聽說這個假期,你從人潮中倖存下來了……

程序正在運行中的等待界面

在他後來開發的計算代數系統 Mathematica 中或者Wolfram Alpha進行計算的話,等待 (loading) 的圖案就是不斷運行的元胞自動機……

群 體

Swarm

回到群體這個話題本身,近些年來越來越多的群體智能算法,比如蟻群算法,發揮出了越來越大的能力。[10]

聽說這個假期,你從人潮中倖存下來了……

蟻群算法模擬自然界中螞蟻尋找食物的過程。在算法最開始,各個螞蟻在沒有事先告訴他們食物在什麼地方的前提下開始尋找食物。

當一隻螞蟻找到食物以後,它會向環境釋放一種揮發性分泌物——信息素 (pheromone),該物質隨著時間的推移會逐漸揮發消失,信息素濃度的大小可以直觀地告訴每隻螞蟻它們是不是跑偏了,從而吸引其他的螞蟻過來。這樣越來越多的螞蟻會找到食物。

有些螞蟻並沒有像其它螞蟻一樣總重複同樣的路,他們會另闢蹊徑。如果另開闢的道路比原來的其他道路更短,那麼,漸漸地,更多的螞蟻被吸引到這條較短的路上來。最後,系統經過一段時間運行,就可能會出現一條最短的路徑被大多數螞蟻重複著。

結 語

Finally

在今天的科學研究中,人們需要去接觸的不僅僅只是「真空中的球形雞」,我們需要直面可能有許多相互作用所組成的複雜網絡

,比如全球氣候,生物,社會,生態系統等。各種複雜的非線性、湧現、自發秩序、適應和反饋循環等等效應層出不窮。在我們的生活中,堵車,擁擠,都是複雜科學的研究對象。

下次出門又遇見堵了,拍個小視頻,說不定都能為科學研究做貢獻哦。

聽說這個假期,你從人潮中倖存下來了……

快說好

參考鏈接:

[1] Anderson, P. W. (1972). More is different. Science, 177(4047), 393-396.

[2] http://www.lionking.org/text/FilmNotes.html ← 超全獅子王動畫創作細節

[3] Reynolds, C. W. (1987). Flocks, herds and schools: A distributed behavioral model. ACM SIGGRAPH Computer Graphics, 21(4), 25-34.

[4] https://en.wikipedia.org/wiki/Boids

[5] https://zhuanlan.zhihu.com/p/19935243

[6] http://www.red3d.com/cwr/boids/

[7] https://www.stephenwolfram.com/publications/academic/?cat=particle-physics

[8] https://en.wikipedia.org/wiki/Stephen_Wolfram

[9] https://www.zhihu.com/question/21929655/answer/54098966

[10] https://zhuanlan.zhihu.com/p/25841329


分享到:


相關文章: