今天看到一個有趣的現象,或許應該說很常見的現象,就是螞蟻覓食。像圖1那樣,呈一條黑線在牆角,牆面上移動。
圖1
勾起了童真。呵呵。但是,如果我還是對單純的這一現象感覺好奇,這二十幾年也算是白混了,因爲對小的時候對待事物的眼光沒有改變的話,相對我增長的年齡來說,這叫做低級趣味了。所以,現在有趣的是一個數學問題。或者我先來將這幅圖進行一下抽象。圖2就是抽象的結果。圖2
假設A是螞蟻的家,E是找到的食物,蟻羣要將食物從E搬到A,很顯然直線距離AE是最短的,但是螞蟻卻選擇了AB-BE兩條線段組成的路徑。假設螞蟻足夠聰明的話,那麼解釋這一現象的原因就是螞蟻在水平地面和在豎直牆面上移動的時候,耗費的體力是不等的。
假設,在牆面移動單位距離,耗費的體力是Pw;在水平地面移動單位距離,耗費的體力是Ph。
1)Pw<=Ph,直線AE最省體力;
2)Pw>Ph,必然存在牆角處的一點B,使得螞蟻從A到E的距離上移動耗費的體力最小。假設,螞蟻在豎直牆面移動時,無視與重力方向的夾角,那麼從B到E就是一條直線;如果螞蟻在豎直牆面的移動體力消耗與重力夾角有相關關係的話,B到E就是一條與此相關的弧線。
圖1比較理想的給了我們一條直線作爲分析對象。假設C、D兩點是位於B左右兩側的兩點,那麼很容易得出:
Pw<Ph。
BE·Pw< BD·Ph + DE·Pw
BE·Pw + BC·Ph< CE·Pw
得出:
BD/(BE- DE) < Pw/Ph <BC/(EC – BE)
當D無限趨近B,且C無限趨近B時,根據夾逼原理,Pw/Ph= BD/(BE - DE) = BC/(EC-BE)
假設座標:B(0,0),E(sint,cos t),C(-deltX, 0),D(deltX,0)
Pw / Ph =lim(deltX->0){deltX / (1 – squreroot(sin t + squre(cos t –deltX)))}
根據洛畢德法則,
Pw/Ph =1/(-1/2(-2cos t) = 1/cos t;
所以聰明的螞蟻選擇的B點具有的屬性,就是和其在牆面與地面移動消耗的能量成相關關係的點。
智能控制領域的蟻羣算法,是模擬螞蟻覓食中的探索過程,這一過程將耗費較長的時間確定最優路徑。如果將任務A根據任務實施的難度,要將其分解成B、C兩段(即使是三段,三段也是兩個兩段的拼湊),那麼利用Pw/Ph的性質,就找到了A的分解點,形成B、C兩段。而不用去通過模擬蟻羣覓食的漫長過程確定該點。
ps:還是蠻有趣的。