假設(shè)有一種生活在一維世界中的奇怪的蟲子,他們只會橫著爬,在每個時間單位里,隨機向左或向右移動,并且當(dāng)這種蟲子發(fā)現(xiàn)有自己的同類聚集在同一處時,就會覺得很不舒服,于是會加速從當(dāng)前位置上跳開,跳躍的距離和同一處同類的個數(shù)成正比。很容易編寫程序?qū)οx子的行為進行模擬。下面圖1所表示的,是在程序運行的初始時刻,將27只蟲子有意聚集在一起(只是為了觀看方便,在顯示的時候特意將蟲子們從單一維度上錯開了)。顯然,在那樣的狀態(tài)下,所有的蟲子都會覺得難受,不過,程序運行后不多久,這些生物就會“自動”分散開來,并尋找到讓自己更愜意的位置(如圖2)?;蛘咭部梢允窍喾吹那闆r,小蟲子們更喜歡在同一處集群,當(dāng)它們發(fā)現(xiàn)同一地點的同類數(shù)量超過2個(這個界限當(dāng)然是可以自己設(shè)定的),那就只會以最緩慢的速度移動,也就是說,它會盡可能地和同類相處在一起,否則就會大幅度地隨機跳躍。這個例子比剛才的更有趣,蟲子們的行為,很像一個探險隊,一開始,所有蟲子聚集在小范圍內(nèi)安營扎寨,只有少部分蟲子跳到比較遠的地方,但經(jīng)過較長時間程序運行后,就會有不少遠處的蟲子逐漸聚攏到一起,好像在建立新的“部落”(如圖3)。
該程序不難實現(xiàn),限于篇幅不在文中給出代碼。每只蟲子的行為模式都是相同的,并且也都具有隨機性,但蟲子種群的整體卻逐漸趨向于某種一致的狀態(tài)。專家們發(fā)現(xiàn),如果環(huán)境更復(fù)雜,個體的行為屬性更多,那么種群整體仿佛能表現(xiàn)出意料之外的智慧,這其實就是“群體智能”的研究內(nèi)容了。為了減輕研究者的工作量,專家們編寫了專門用以研究群體智能的軟件平臺,這里不可能對這些平臺作詳細(xì)介紹,只給出兩個簡單有趣的演示案例。
● 熱蟲社團
熱蟲是一種可以在二維平面上隨意走動的簡單生物,它們不吃不喝不睡,但卻有著如電暖器一般的神奇功能,可以發(fā)出熱量加熱自己,并且能輻射加熱自己周圍的一小塊地盤。一只熱蟲發(fā)出的熱量不足以讓它自己感覺舒適,所以熱蟲喜歡呆在其他熱蟲的身邊,但若環(huán)境溫度太高,熱蟲也會逃開。在Swarm.org(Swarm是一個著名的群體智能軟件平臺)網(wǎng)站上,提供有一個簡單的熱蟲行為模擬沙盤(“http://www.swarm.org/index.php/Swarm_and_MinGW”網(wǎng)頁提供了可在Windows操作系統(tǒng)中運行的版本和安裝說明),用戶可往沙盤里投入若干只熱蟲,設(shè)置好環(huán)境以及熱蟲個體的參數(shù),然后就可以慢慢觀察蟲子們的行為了。一開始,蟲子們似乎只是隨意走動,但不久后就聚集到了一起。但如果一個地方熱蟲太多,就會有某個熱蟲“躲開”去“尋找”新的群體——仿佛它們具有某種社交意識(如圖4)。
● 螞蟻社團
在熱蟲的例子中,熱蟲們雖然常常聚會,但并不相互交流信息,如果單個的個體之間能夠交互信息,情況就會變得更復(fù)雜。Netlogo是一個有著廣泛用戶的群體智能平臺,平臺中提供了一個案例,用來演示螞蟻群體獵食的行為模式,用戶可以往螞蟻的世界中投入食物,并設(shè)定螞蟻個體的數(shù)量,然后就能觀察到,一群原本沒頭沒腦四處亂竄的螞蟻,是怎么在短時間里,借助信息素的交互,很快“組織”起來,成為行動迅捷,有些恐怖的獵食群體的(如圖5)。雖然單個螞蟻都很笨,可是一個有規(guī)模的螞蟻群體,卻能高效地協(xié)同工作。這段演示代碼可以在Net Logo平臺模型庫Code Examples—Perspective Demos文件夾中找到。
在觀賞這些有趣的案例之余,大家也可以思考幾個頗為玄乎的問題:在群體智能平臺中,若不僅是個體之間可以交換信息,個體和所處環(huán)境也能交換信息,那么情況可能會變得如何復(fù)雜?如果個體可以根據(jù)環(huán)境當(dāng)前狀況改變自己的行動規(guī)則,那又會產(chǎn)生怎么樣糾結(jié)的局面?更可怕的問題是,人之所以會固執(zhí)地認(rèn)為自己擁有智慧,會不會只是天文數(shù)量的腦神經(jīng)元如同螞蟻般工作后得到的一個運算結(jié)果呢?這些問題目前都還沒有明確的答案。