資源描述:
《蟻群算法-外文翻譯》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、蟻群算法外文翻譯中文:起源 蟻群算法(antcolonyoptimization,ACO),又稱螞蟻算法,是一種用來在圖中尋找優(yōu)化路徑的機率型算法。它由MarcoDorigo于1992年在他的博士論文中提出,其靈感來源于螞蟻在尋找食物過程中發(fā)現(xiàn)路徑的行為。蟻群算法是一種模擬進化算法,初步的研究表明該算法具有許多優(yōu)良的性質(zhì).針對PID控制器參數(shù)優(yōu)化設(shè)計問題,將蟻群算法設(shè)計的結(jié)果與遺傳算法設(shè)計的結(jié)果進行了比較,數(shù)值仿真結(jié)果表明,蟻群算法具有一種新的模擬進化優(yōu)化方法的有效性和應(yīng)用價值。原理 各個螞蟻
2、在沒有事先告訴他們食物在什么地方的前提下開始尋找食物。當(dāng)一只找到食物以后,它會向環(huán)境釋放一種信息素,吸引其他的螞蟻過來,這樣越來越多的螞蟻會找到食物!有些螞蟻并沒有象其它螞蟻一樣總重復(fù)同樣的路,他們會另辟蹊徑,如果令開辟的道路比原來的其他道路更短,那么,漸漸地更多的螞蟻被吸引到這條較短的路上來。最后,經(jīng)過一段時間運行,可能會出現(xiàn)一條最短的路徑被大多數(shù)螞蟻重復(fù)著?! 槭裁葱⌒〉奈浵伳軌蛘业绞澄??他們具有智能么?設(shè)想,如果我們要為螞蟻設(shè)計一個人工智能的程序,那么這個程序要多么復(fù)雜呢?首先,你要讓螞蟻
3、能夠避開障礙物,就必須根據(jù)適當(dāng)?shù)牡匦谓o它編進指令讓他們能夠巧妙的避開障礙物,其次,要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點;再次,如果要讓螞蟻找到最短的路徑,那么需要計算所有可能的路徑并且比較它們的大小,而且更重要的是,你要小心翼翼的編程,因為程序的錯誤也許會讓你前功盡棄。這是多么不可思議的程序!太復(fù)雜了,恐怕沒人能夠完成這樣繁瑣冗余的程序?! ∪欢聦嵅]有你想得那么復(fù)雜,上面這個程序每個螞蟻的核心程序編碼不過100多行!為什么這么簡單的程序會讓螞蟻干這樣復(fù)雜的事情?答案是:簡單規(guī)則的
4、涌現(xiàn)。事實上,每只螞蟻并不是像我們想象的需要知道整個世界的信息,他們其實只關(guān)心很小范圍內(nèi)的眼前信息,而且根據(jù)這些局部信息利用幾條簡單的規(guī)則進行決策,這樣在蟻群這個集體里,復(fù)雜性的行為就會凸現(xiàn)出來。這就是人工生命、復(fù)雜性科學(xué)解釋的規(guī)律!那么,這些簡單規(guī)則是什么呢?1、范圍: 螞蟻觀察到的范圍是一個方格世界,螞蟻有一個參數(shù)為速度半徑(一般是3),那么它能觀察到的范圍就是3*3個方格世界,并且能移動的距離也在這個范圍之內(nèi)。2、環(huán)境: 螞蟻所在的環(huán)境是一個虛擬的世界,其中有障礙物,有別的螞蟻,還有
5、信息素,信息素有兩種,一種是找到食物的螞蟻灑下的食物信息素,一種是找到窩的螞蟻灑下的窩的信息素。每個螞蟻都僅僅能感知它范圍內(nèi)的環(huán)境信息。環(huán)境以一定的速率讓信息素消失。3、覓食規(guī)則: 在每只螞蟻能感知的范圍內(nèi)尋找是否有食物,如果有就直接過去。否則看是否有信息素,并且比較在能感知的范圍內(nèi)哪一點的信息素最多,這樣,它就朝信息素多的地方走,并且每只螞蟻都會以小概率犯錯誤,從而并不是往信息素最多的點移動。螞蟻找窩的規(guī)則和上面一樣,只不過它對窩的信息素做出反應(yīng),而對食物信息素沒反應(yīng)。4、移動規(guī)則: 每只螞
6、蟻都朝向信息素最多的方向移,并且,當(dāng)周圍沒有信息素指引的時候,螞蟻會按照自己原來運動的方向慣性的運動下去,并且,在運動的方向有一個隨機的小的擾動。為了防止螞蟻原地轉(zhuǎn)圈,它會記住最近剛走過了哪些點,如果發(fā)現(xiàn)要走的下一點已經(jīng)在最近走過了,它就會盡量避開。5、避障規(guī)則: 如果螞蟻要移動的方向有障礙物擋住,它會隨機的選擇另一個方向,并且有信息素指引的話,它會按照覓食的規(guī)則行為。6、播撒信息素規(guī)則: 每只螞蟻在剛找到食物或者窩的時候撒發(fā)的信息素最多,并隨著它走遠的距離,播撒的信息素越來越少?! 「鶕?jù)這幾
7、條規(guī)則,螞蟻之間并沒有直接的關(guān)系,但是每只螞蟻都和環(huán)境發(fā)生交互,而通過信息素這個紐帶,實際上把各個螞蟻之間關(guān)聯(lián)起來了。比如,當(dāng)一只螞蟻找到了食物,它并沒有直接告訴其它螞蟻這兒有食物,而是向環(huán)境播撒信息素,當(dāng)其它的螞蟻經(jīng)過它附近的時候,就會感覺到信息素的存在,進而根據(jù)信息素的指引找到了食物。問題: 說了這么多,螞蟻究竟是怎么找到食物的呢? 在沒有螞蟻找到食物的時候,環(huán)境沒有有用的信息素,那么螞蟻為什么會相對有效的找到食物呢?這要歸功于螞蟻的移動規(guī)則,尤其是在沒有信息素時候的移動規(guī)則。首先,它要能盡
8、量保持某種慣性,這樣使得螞蟻盡量向前方移動(開始,這個前方是隨機固定的一個方向),而不是原地?zé)o謂的打轉(zhuǎn)或者震動;其次,螞蟻要有一定的隨機性,雖然有了固定的方向,但它也不能像粒子一樣直線運動下去,而是有一個隨機的干擾。這樣就使得螞蟻運動起來具有了一定的目的性,盡量保持原來的方向,但又有新的試探,尤其當(dāng)碰到障礙物的時候它會立即改變方向,這可以看成一種選擇的過程,也就是環(huán)境的障礙物讓螞蟻的某個方向正確,而其他方向則不對。這就解釋了為什么單個螞蟻在復(fù)雜的諸如迷宮的地圖中仍然能找到隱蔽得很好