人工魚群算法是一種有關動物行為的算法,這種算法具有一定的智能性,是最近幾年國內學者提出來的。這種人工魚群算法是從行為方面進行的主要研究,并對原來存在的問題進行解決。
【關鍵詞】人工魚群算法 優(yōu)化方法 群體智能
眾多實驗能夠證明,群體智能優(yōu)化的相關算法在很多問題的解決上都發(fā)揮了至關重要的作用,也得到了十分廣泛的應用。
1 人工魚群算法
1.1 魚群及其算法的基本思想
人工魚群算法主要依據(jù)的是魚群的行為啟發(fā),在2002年被提出的一種有關動物行為的比較優(yōu)化的算法。一般情況下,一個范圍之內,魚群中的魚會跟隨群體中的其它成員一起找到食物比較多的地方。而通常情況下,一片水域范圍內食物最多的地方往往會有最多的魚群數(shù)目。根據(jù)這個特點,使用人工制作的魚對魚群的各種行為進行模擬,進而完成直線尋優(yōu)的目的。
1.2 人工魚模型
有關人工魚模型的算法使用的是基于animats的模式,設計采用的順序是從上到下的,因此先進行的步驟就是人工魚模型的建造。通常情況下使用的是面向對象的技術方式,并用會用C++語言的偽代碼形式來加以說明。人工魚一般的模型描述方式如下:
{
Various:
float AF_X[n]; //AFs position
float AF_step; //the distance that AF can moue for each step
float AF_visual; //the visual diatance of AF
float try_number; //attempt time in the behavior of prey
float AF_delta; //the condition of jamming
Functions:
float AF_foodconsistence(); //the food consistence of AFs current position
float AF_move(); //AF move to the next position
float AF_follow(); //the behavior of follow
float AF_prey(); //the behavior of prey
float AF_swarm(); //the behavior of swarm
float AF_evaluate(); //evaluate and select the behavior
float AF_init(); //to initialize the AF
Aritificial_fish();
Virtual~Aritificial_fish();
};
通過上述模型的設置,會讓人工魚相關信息能被同伴收到,并能將人工魚的一些行為規(guī)劃到種群類型之中,會在魚中間有所感知。
對人工魚個體的狀態(tài)表示通常表示為向量X=(x1,x2,x3……xn),其中xi (i=1,……,n )表示要尋優(yōu)的變量;然后將人工魚處在環(huán)境的食物多少表示為 Y = f ( X),Y 代表目標函數(shù)值;人工魚個體之間的距離表示為dij= |Xi-Xj|;Step 表示人工魚移動的最長距離;δ表示和其他魚之家的擁擠情況。
1.2.1 聚群行為
有關人工魚的聚群行為可以用偽代碼形式加以說明,可以設人工魚當前狀態(tài)是Xi,要完成的任務是對周圍一定范圍內有伙伴的數(shù)目fn及中心位置Xc進行測量,要是得到的兩個數(shù)相比的比值小于δYi,則表示人工魚中心位置食物比較充足,也沒有很多同伴在周圍,然后可以向食物方向游動一次;如果情況相反那么就不執(zhí)行覓食行為。偽代碼描述如下:
float Artificial_fish::AF_swarm()
{
f n=0;Xc =0;
for(j=0;j if(i ,dj< Visual){nf ++;Xc +=Xj;} else AF_prey(); Return AF_foodconsistence( i |next X ); } 1.2.2 追尾行為 有關追尾行為同樣可以使用偽代碼方式進行表示,首先設人工魚當前狀態(tài)設置為Xi ,要完成的任務書要對一定范圍內的的伙伴數(shù)量Yj進行探索,其中最大的伙伴Xj的數(shù)量如果比擁擠度δ大,表明伙伴Xj周圍具食物比較充分,并且其周圍環(huán)境沒有很多同伴,于是應該執(zhí)行朝伙伴Xj的方向前進一步命令;如果得到的結果相反,就不執(zhí)行覓食行為。偽代碼描述如下: float Artificial_fish::AF_follow() { Y max= ∞ for(j=0;j if(i ,jd< Visual&&jY max> Y) { jmaxY = Y;jmaxX = X;} fn =0; for(j=0;j if(max, jd< Visual){fn ++;} Else AF_prey();
returnAF_foodconsistence(
i |nextX );
}
2 人工魚群算法在各領域的應用
2.1 電力系統(tǒng)規(guī)劃中的應用
在電力系統(tǒng)中人工魚群算法是通過禁忌搜索方式的使用,并對人工魚的一些行為加以改進,讓人工魚在游動完成各種位置的探索的時候具備一定的記憶能力。然后會將探索過的地方設置為記憶禁區(qū),這樣能提高工作效率,最大程度上避免出現(xiàn)重復的搜索情況。并對搜索記憶中一些比較好的狀態(tài)加以標記,這樣能更好的確保搜索有更高的效率和更好的質量。
2.2 在多級梯階物流中轉的運輸系統(tǒng)中起優(yōu)化作用
在這個領域內應用人工魚群算法,要對變量的約束條件以及求解的精確程度進行重點考慮,要使需要求解的空間有離散化特性,使一個比較大的變量空間變成大小適中的網(wǎng)格,用人工魚群的相關計算形式能使各級的中轉站和網(wǎng)路點之間的關系更加明確,并能在一定程度上消除相鄰的兩級中轉站之間的約束條件,并利用對算法的改良使問題的優(yōu)化方式更容易使用。實踐中能夠看出,這種算法在多級梯階的運輸系統(tǒng)的問題處理上會得到很好的應用。
3 結束語
人工魚群算法根據(jù)自然界魚群的行為作為使用原理,通過不斷更新和升級會應用在更多領域中??偠灾?,基于全局最優(yōu)的快速人工魚群相關算法在實際應用中十分實用,計算方式在各個領域中也能加以運用。
參考文獻
[1]潘海珠,杜曉昕,王波.基于人工魚群的交通誘導系統(tǒng)最優(yōu)查詢研究[J].齊齊哈爾大學學報(自然科學版),2012(05).
[2]胡青,孫才新,杜林,李劍.核主成分分析與隨機森林相結合的變壓器故障診斷方法[J].高電壓技術,2010(07).
[3]符楊,田振寧,江玉蓉,曹家麟.加權模糊核聚類法在電力變壓器故障診斷中的應用[J].高電壓技術,2010(02).
[4]王聯(lián)國,洪毅,趙付青,余冬梅.一種簡化的人工魚群算法[J].小型微型計算機系統(tǒng),2009(08).
作者簡介
郭榮艷(1977-),女,河南省周口市人。碩士學位。現(xiàn)為周口師范學院副教授。主要研究方向為信號與信息處理。
史水娥,現(xiàn)供職于河南師范大學。
作者單位
1.周口師范學院 河南省周口市 466001
2.河南師范大學 河南省新鄉(xiāng)市 453007