朱俚治
摘要:人工魚群算法是一種群體智能型算法,這些算法常用于求解最優化問題,事實上在工程領域中存在著眾多的最優化問題,因此人工魚群算法在工程領域中有著較為廣泛的應用,作者對人工魚群算法研究之后,所撰寫的一篇關于人工魚群算法的綜述性論文。該文對人工魚群算法的部分特征進行了介紹,該文分為如下幾個部分:1)什么是人工魚群算法;2)人工魚群算法的特點;3)人工魚群算法的搜索;4)人工魚群的改進型算法(lAFSA);5)人工魚群算法的簡要分析。
關鍵詞:人工魚群;AFSA算法;lAFSA算法
中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2018)04-0173-03
Overview of Artificial Fish Swarm Algorithm
ZHU Li-zhi
(Information center of Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)
Abstract: The artificial fish algorithm is a kind of swarm intelligent algorithms, these work is often used to solve optimization problem. In fact there are many optimization problems in engineering field, so the artificial fish algorithm has become more widely used in the field of engineering, the author of artificial fish algorithm research, wrote an essay about artificial fish algorithm review paper. This paper introduces the characteristics of artificial fish algorithm part, this paper is divided into the following parts: 1. What is artificial fish algorithm, and (2) the characteristics of the artificial fish algorithm, 3. Artificial fish algorithm search, 4. The improved algorithm of artificial fish (lAFSA), 5. A brief analysis of the artificial fish algorithm.
Key words: artificial fish; AFSA algorithm; lAFSA algorithm
1 概述
人工魚群算法是一種融合了人工智能技術與仿生物學的算法,該算法由李曉磊提出。人工魚群算法有如下特點:該算法在一定程度上能較好地克服局部最優解問題,獲得全局最優解的概率較高。盡管該算法具有所在的優點,但仍然存在收斂速度慢和搜索精度不高等不足之處,為了克服人工魚群算法中所存在的相關問題,研究人員提出了改進型的IAFSA人工魚群算法。IAFSA算法主要對人工魚群的搜索階段做了一定程度上的改進,這些改進工作包括:人工魚群的覓食階段,人工魚群的聚群行為和追尾行為,以及人工魚群視野等幾個方面。人工魚群在工程領域中有廣泛的應用,并且達到了很好的應用效果。根據上述理由和原因,為了使得人們更好的了解人工魚群算法,本文對原始人工魚群算法和改進型人工魚群算法進行了相應的介紹,從而使得該論文具有一定的參考價值。
2 什么是人工魚群算法
2.1 人工魚群的概念與發展
20世紀90年代以來,群體型的智能算法引起了人們的興趣,科研人員在這方面賦予了極大的關注,從而人們提出了人工蟻群算法,粒子群等各種的著名仿生物學算法。事實上粒子群算法、人工蟻群算法、人工魚群算法等都是融合了人工智能技術和仿生物學的算法,因此這些算法都具有一定的智能性,可以解決某些最優解的問題,例如著名的NP問題等。人工魚群等仿生物學算法在解決最優解的時候都有自己的特點,但也有不足之處,比如參數設定不恰當時容易使算法陷入早熟,從而得到的是局部最優解,而非全局最優解。
人工魚群算法根據魚群覓食時的特點,從而模擬出來的一種尋找最優解的算法。魚群在水中尋找食物時,通過食物濃度這一指標來判斷食物的來源和方向,如果食物的濃度達到了某種程度后,魚群就朝著食物的方向游動。當魚群發現食物后,整個魚群就會出現追尾行為,從而使得整個魚群都找到食物,這就是魚群在尋找食物時的分布式合作,魚群之間的分布式合作體了現魚群的智能性。在人工魚群算法中,人工魚群所處的空間是一個求解空間,魚群個體之間存在著協作與競爭。人工魚群在尋找解的時候,求解空間的變化能對魚群產生一定的影響,同時魚群個體的活動也能對求解空間產生一定的作用,因此魚群的個體活動能對整個魚群產生影響,事實上正是因為魚群的個體與魚群之間相互作用,才能使得整個人工魚群都找到全局最優解,而非局部最優解。
2.2 人工魚群算法(AFSA)
人工魚群的計算公式:
其中,一條虛擬人工魚當前狀態為,,狀態,Rand()函數為產生0到1之間的隨機數;Step為移動步長,Visual為其視野范圍。狀態為其某個時刻視點所在的位置,如果當前的位置優于當前的位置,則由該位置向前進一步,則此時達到狀態。
3 經典人工魚群算法的特點
粒子群算法,人工蟻群算法和人工蜂群算法中,都存在一個相似的問題,就是這些算法容易產生早熟,從而求得的解是局部最優解,而不是全局最優解。人工魚群算法的主要特點是在最大程度上能夠求得全局最優解,而非局部最優解。
人工魚群在隨機搜索時,具有一定的適應性,能夠隨著周圍環境的變化,而調整自身的運動狀態和方向。人工魚群運動狀態可以在:覓食、聚集、追尾和隨機搜索四種狀態模式之間相互轉換。
人工魚群算法具有一定的魯棒性,算法在初期和中期中都有較好的搜索效果,但在后期算法搜索效果較差,運行速度較慢,無目標的搜索較為明顯,從而影響了算法的收斂時間,也影響了算法尋找全局最優解的效率,因此針對人工魚群算法的不足之處,研究人員從不同方面來改進和完善現有的人工魚群算法。
4 經典人工魚群算法的搜索
人工魚群在搜索食物時存在四種行為屬性:覓食行為、聚群行為、追尾行為和隨機行為,這四種不同屬性的行為在魚群的覓食過程中,具有不同的作用。魚群的聚群行為和追尾行為出現的頻次不同,對算法收斂的速度能夠產生不同的影響。人工魚群算法,粒子算法和人工蟻群算法都是一種分布式的智能型尋找最優解的算法。人工魚群在搜索的初始階段是初值設定的階段,在人工魚群算法中可以將初值設為固定值,也可以設為處于動態變化中的值,基于這一點原因人工魚群算法對于求解空間的變化,具有較強的自我適應性,如果采用隨機變化的方法來設定初值對人工魚群來說具有更強的適應性。蟻群算法、粒子群算法和魚群算法在尋找最優解的時候,搜索方向具有一定的隨機性,但不是盲目地搜索,并且人工魚群算法在搜索過程中不能進行跳躍的方式進行搜索,只能以領域的方式不斷地向前搜索尋找最優解。人工魚群算法在搜索時,有兩種方式:串型搜索和并行搜索。魚群的尾隨跟進行為就是一種串型搜索方式。魚群的并行行為,則可理解為魚群的聚群行為。人工魚群在隨機搜索過程中,通過相互協作和競爭的方式來達到尋找食物的來源,借以達到最優解之目的。
人工魚群的覓食行為、聚群行為、追尾行為和隨機行為分別代表不同的隨機搜索過程,事實上人工魚群的初始行為,就是魚群隨機搜索的開始,以上四個過程可以約簡為覓食行為、聚群行為和追尾行為。由于整個魚群具有自適應性,因此魚群在尋找食物時可以采用自適應機制來調整和控制人工魚的行為。
如果魚群找到了食物來源,其它魚類就會出現追尾行為,但如果魚群沒有找到食物,其它人工魚會展開隨機搜索。人工魚群在尋找食物來源的過程中,為了保護自身的生存和躲避外來的攻擊,則會產生聚群行為。人工魚群在搜索食物的過程中,如果食物的濃度滿足魚群的要求,則魚群由當前的行為轉變為追尾行為,如果食物的濃度不滿足魚群覓食之條件,魚群則由追尾行為轉化為隨機搜索,因此人工魚群尋找食物的行為和追尾行為會隨著食物濃度的變化而交替出現。
人工魚群是否能較為容易地找到食物,這與食物濃度有很大的關系,如果食物的濃度越大,則魚群較為容易找到食物,如果食物的濃度較小,則魚群找食物的過程較為困難,因此食物的濃度是否恰當,能夠對算法的收斂速度產生一定的影響。
5 人工魚群改進型算法(lAFSA)
5.1 IAFSA魚群算法的覓食階段
人工魚群的覓食階段可以理解為魚群隨機搜索的開始,在人工魚群的覓食過程中,如果食物濃度滿足人工魚群的要求,則進行下一個階段的行為,否則繼續進行隨機的搜索覓食。人工魚群的覓食階段是一個試探比較的過程,因此人工魚的移動行為是隨機的。
當前的人工魚群狀態為,如果食物濃度,則人工魚群向狀態移動一步,在人工魚群搜索算法中,魚群總是向著食物濃度較高的方向移動。當魚群找到了更多食物,則人工魚群算法也求得了更優解,但是人工魚群經過若干次試探之后,仍然沒有找到較優的解,則隨機移動一步,從而達到一個新的狀態。此時人工魚的移動是隨機的,沒有具體的目標,因此這時可能使得搜索方法產生倒退現象,從而影響算法搜索時的前進速度,這是AFSA人工魚群算法的不足之處。
根據AFSA人工魚群算法的不足之處,在IAFSA人工魚群算法中,如果魚群經過數次試探后,仍然沒有找到更好的食物來源,則向較優解的方向前了一步,這樣就避免了算法在搜索食物時的退化現象,從而保證了算法搜索時的效率,因此IAFSA人工魚群算法在覓食階段對原來的算法進行了改進。
5.2 IAFSA魚群算法的人工魚群視野
在AFSA人工魚群算法中,如果魚群的視野較廣,使得算法具有較強的全局搜索能力,如果人工魚群的視野較為狹窄,則該算法具有的局部搜索能力較強。基于這兩種情況,在IAFSA人工魚群算法的初始階段為了增強算法的收斂速度和全局的搜索能力,可以采用較廣的視野來搜索食物,隨著搜索算法的不斷進行,在搜索的過程中可以逐步采用較小的視野進行局部的搜索,從而提高算法的局部搜索能力和尋找食物的精度。
6 人工魚群算法的簡要分析
6.1 人工魚群的覓食行為
人工魚群在尋找食物時,如果試探的次數較少,則能為魚群提供更多的隨機游動機會,從而為跳出局部極值提供有利條件。人工魚群的聚群行為能促使人工魚向更優狀態游動,同時也能向處于更優解的極值方向前進。當魚群在搜索食物的過程中,當找到食物后,相當于求得了一個較優解,因此人工魚群的追尾行為能夠使得人工魚群算法求得更優的解。
如果當前魚群的狀態是聚群行為,那么前進一步,就是追尾行為。人工魚群的追尾是為了尋找更多和更好的食物。當人工魚群搜索食物時可能的模式是:先是聚群行為、再是追尾行為,然后再是聚群行為,事實上魚群出現聚群行為后,必定出現魚群的追尾行為。然而當人工魚的某種狀態的條件不滿足聚群行為條件,又不滿足追尾行為時,此時人工魚群則進行隨機搜索。
魚群進行隨機搜索之目的,就是為了找到食物的來源,然而魚群追尾之目的是求得最優解,然而人工魚群追尾行為后可能得到是局部最優解,如果不是全局最優解,在這之后魚群將繼續會出現聚群行為和追尾行為。只有當魚群搜索了全部的解之后,才能找到全局最優解。當人工魚群進行搜索時,食物的濃度必須是人工魚所能夠感知的,魚群可以通過視覺和嗅覺來尋找食物,如果食物的濃度在魚群的感知之外,這樣人工魚群就發現不了更多的食物。如果人工算法搜索不到比當前更優的解,這樣的算法就會停滯不前,從而陷入局部最優解,而不是全局最優解。因此魚群為找到了食物,則必須擴大魚群的視野范圍,這樣才可能擴大魚群的搜索范圍。根據上述理由,有如下的結論:如何使得食物的濃度始終在人工魚群的感知范圍內,使得魚群能夠找到更多的食物,是人工魚群算法的關鍵因素,也是人工魚群所要解決的問題。
食物是魚群搜索的目標,也是吸引魚群聚類的中心。如果發現了食物,人工魚群就會形成聚群行為,當存在更多食物時,魚群就會從當前的聚類中心,向下一個聚類中心游動。人工魚群在搜索食物來源時,不能進行跳躍式的方式進行搜索,只能一個接著一個食物中心進行搜索,這種搜索方式是其它人工仿生物學智能算法的共同特點,這些算法包括:粒子群算法、人工蟻群算法和人工蜂群算法。在人工魚群算法中,如果當所有的魚群都聚類到一處時,并形成了更大的聚類中心,那么此時人工魚群就找到了全局的最優解。
在魚群覓食的過程中,如果魚群的視野越廣,則能夠搜索到的食物就越多,但若魚群視野相對狹窄,則能夠搜索到的食物就相對較少。人工魚群除了能夠通過視覺來發現食物外,還可以通過嗅覺來發現食物。食物濃度的大小是改變魚群活動狀態的原因,如果某個食物的濃度大于當前的食物濃度,那么人工魚群則前進一步。如果魚群的狀態是聚群行為,但食物濃度高于當前的食物濃度時,則整個魚群又會出現追尾行為。
6.2 局部最優解和全局最優解
1) 如果人工魚群搜索算法結束時,并沒有遍歷完所有的解,則此時已得出了最優解,那么此解是局部最優解。
2) 當人工魚群的搜索算法結束時,遍歷完所有的解,并且已得出了最優解,此時的解為全局最優解。
3) 另外當某個人工魚群算法在一個局部解中無法前進時,則此時得到的解就是局部最優解。當搜索完全部可能存在的解之后,得到的解才是全局最優解。
7 結束語
由作者撰寫的這一篇論文是有針對性地對人工魚群算法進行介紹,因此在介紹某些部分人工魚群算法時并沒有展開進行詳細的陳述,這是本文的不足之處。如果讀者想對人工魚群算法有更多的了解,可以查找相關的文獻和資料,本文主要介紹了人工魚群算法的搜索階段和人工魚群算法的簡要分析,其它部分介紹相對較少,但本文在某種程度上具有一定參考價值,以供大家參考。
參考文獻:
[1] 王培崇.人工魚群算法研究綜述[J].中國民航飛行學院學報,2013,24(4):22-26.
[2] 王聯國,施秋紅.人工魚群算法的參數分析[J].計算機工程,2010,36(24):169-171.
[3] 范玉軍,王冬冬,孫明明.改進人工魚群算法[J].重慶師范大學學報,2007,24(3):23-26.
[4] 王宗利,劉希玉,王文平.一種改進的人工魚群算法[J].信息技術與信息化,2010(3):46-49.
[5] 費騰,張立毅.人工魚群算法改進方法概述[J].電子設計工程,2015,23(21):1-4.
[6] 吳月萍,杜奕.改進的人工魚群算法的參數分析[J].計算機工程與應用,2012,48(13):48-52.
[7] 李曉磊,薛云燦,路飛,田國會.基人工魚群算法的參數估計方法[J].山東大學學報:工學版,2004,34(3):84-87.