范永利 胡春燕 張悅



摘 要:針對人工魚群算法的不足,提出一種改進的人工魚群算法NAFAS。該算法對原有覓食行為進行改進,引進雙高斯函數與其融合,使在尋優后期人工魚群能快速逃離局部極值區域,從而提高全局尋優能力。與其它多種智能算法進行仿真測試并比較分析,結果表明,改進的人工魚群算法搜索速度快、尋優精度高。
關鍵詞:人工魚群算法;雙高斯函數;全局優化;智能算法
DOI:10. 11907/rjdk. 182483
中圖分類號:TP312
文獻標識碼:A文章編號:1672-7800(2019)006-0080-05
Abstract:Artificial fish swarm algorithm optimizes through the simulation of the fish behaviors, such as preying, swarming, following and moving in the search area, which?is an application of the swarm intelligence. It has the advantages of the better global search abilities and the excellent robustness. Whats more, the algorithm is easily and simply operated. But it is easy to fall into local optima in the flat area and becomes lower in the later period of algorithm. To overcome the shortages of the artificial fish swarm algorithm, this paper presents an improved artificial fish swarm algorithm which is named NAFAS. In order to enhance the global searching ability , the bimodal Gaussian is integrated into the function of the prey behavior. so the artificial fish can escape from local extreme areas quickly. Compared with some typical evolutionary algorithms, the numerical experiment results show that NAFAS not only has efficient search performance on the optimal precision excellently,but is also an excellent algorithm for solving global optimization problems.
Key Words:artificial fish swarm algorithm; bimodal Gaussian; global optimization; intelligent algorithm
0 引言
優化算法是以某種機制和思想為基礎,用某一途徑找到滿足某種需求解的一種搜索過程。群體智能優化算法在諸多優化算法中有著舉足輕重的地位。群體智能指由一些自治體構成的群體組合在一起所共同突顯出來的智能。群體智能優化算法主要受自然界中昆蟲、魚類、鳥類、獸類、微生物等一些群體生物啟發,通過對群體中那些自治體間的相互協作與競爭行為的模擬實現對問題最優解的搜索,并因此得到解決傳統復雜問題的新方法。常見的群體智能算法有粒子群優化算法(PSO)[1]、蛙跳算法(FLA)[2]、蟻群優化算法(ACO)[2]、細菌覓食算法(BFA)[3]、蜂群優化算法(BCO)[4]、人工魚群算法(AFSA)[5]等。各種群體智能算法的適用條件不同,在解決實際問題時所表現出的性能也不盡相同。
人工魚群算法(AFSA)最初由李曉磊博士[6]于2002年提出。該算法由魚類的聚群、追尾、覓食、隨機4種基本行為構成,模擬出整個魚群在水中從隨機游動到吸食最大濃度食物(最優解)的過程。與傳統智能優化算法相比,人工魚群算法對初值和參數的選擇不敏感,適用性強,具有良好的全局極值搜索能力。目前人工魚群算法已經在通信工程、數據挖掘、信號和圖像處理、控制科學、人工神經網絡、農業水利、電力系統、數值計算、NP優化、參數優化、交通運輸等方面得到廣泛應用,但隨著魚群算法研究的深入,其所面臨的優化問題規模和復雜程度不斷增加,人工魚群算法存在以下明顯不足:①在較為平坦的區域內或對多峰函數進行尋優時,搜索行為容易陷入到局部最優解區域,尋優解收斂到全局的最優解速度較慢[7];②由于算法參數在整個尋優過程中固定不變,算法尋優速度在初期時較快,在后期時收斂速度明顯變慢[7]。此外,對于不太合適的步長,人工魚容易最終聚集在局部最優值點周圍,以后每移動一步[8]都難以逃離局部極值區域,故此尋優值難以逼近最優值。
為克服人工魚群算法不足,本文提出一種改進措施并構建出新人工魚群算法(NAFSA)。新人工魚群算法對原有算法的聚群行為和追尾行為進行了保留,但對覓食行為和隨機行為進行了改進。人工魚群在進行多次迭代尋優過程之后,最終以正態分布形式分布在最優解周圍,新算法添加了新的人工魚群更新機制,將固定參數變為動態參數[9]。算法在保留上次迭代中部分人工魚吸附到最大食物濃度的位置之后,將其它人工魚淘汰,并通過雙高斯函數集體產生新一代人工魚群,從而提高人工魚群的多樣性,增加魚群自由游動的可能,盡最大可能逃離局部極值區域,提高了算法全局的尋優能力。