人工魚(yú)群算法是一種有關(guān)動(dòng)物行為的算法,這種算法具有一定的智能性,是最近幾年國(guó)內(nèi)學(xué)者提出來(lái)的。這種人工魚(yú)群算法是從行為方面進(jìn)行的主要研究,并對(duì)原來(lái)存在的問(wèn)題進(jìn)行解決。
【關(guān)鍵詞】人工魚(yú)群算法 優(yōu)化方法 群體智能
眾多實(shí)驗(yàn)?zāi)軌蜃C明,群體智能優(yōu)化的相關(guān)算法在很多問(wèn)題的解決上都發(fā)揮了至關(guān)重要的作用,也得到了十分廣泛的應(yīng)用。
1 人工魚(yú)群算法
1.1 魚(yú)群及其算法的基本思想
人工魚(yú)群算法主要依據(jù)的是魚(yú)群的行為啟發(fā),在2002年被提出的一種有關(guān)動(dòng)物行為的比較優(yōu)化的算法。一般情況下,一個(gè)范圍之內(nèi),魚(yú)群中的魚(yú)會(huì)跟隨群體中的其它成員一起找到食物比較多的地方。而通常情況下,一片水域范圍內(nèi)食物最多的地方往往會(huì)有最多的魚(yú)群數(shù)目。根據(jù)這個(gè)特點(diǎn),使用人工制作的魚(yú)對(duì)魚(yú)群的各種行為進(jìn)行模擬,進(jìn)而完成直線尋優(yōu)的目的。
1.2 人工魚(yú)模型
有關(guān)人工魚(yú)模型的算法使用的是基于animats的模式,設(shè)計(jì)采用的順序是從上到下的,因此先進(jìn)行的步驟就是人工魚(yú)模型的建造。通常情況下使用的是面向?qū)ο蟮募夹g(shù)方式,并用會(huì)用C++語(yǔ)言的偽代碼形式來(lái)加以說(shuō)明。人工魚(yú)一般的模型描述方式如下:
{
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ò)上述模型的設(shè)置,會(huì)讓人工魚(yú)相關(guān)信息能被同伴收到,并能將人工魚(yú)的一些行為規(guī)劃到種群類(lèi)型之中,會(huì)在魚(yú)中間有所感知。
對(duì)人工魚(yú)個(gè)體的狀態(tài)表示通常表示為向量X=(x1,x2,x3……xn),其中xi (i=1,……,n )表示要尋優(yōu)的變量;然后將人工魚(yú)處在環(huán)境的食物多少表示為 Y = f ( X),Y 代表目標(biāo)函數(shù)值;人工魚(yú)個(gè)體之間的距離表示為dij= |Xi-Xj|;Step 表示人工魚(yú)移動(dòng)的最長(zhǎng)距離;δ表示和其他魚(yú)之家的擁擠情況。
1.2.1 聚群行為
有關(guān)人工魚(yú)的聚群行為可以用偽代碼形式加以說(shuō)明,可以設(shè)人工魚(yú)當(dāng)前狀態(tài)是Xi,要完成的任務(wù)是對(duì)周?chē)欢ǚ秶鷥?nèi)有伙伴的數(shù)目fn及中心位置Xc進(jìn)行測(cè)量,要是得到的兩個(gè)數(shù)相比的比值小于δYi,則表示人工魚(yú)中心位置食物比較充足,也沒(méi)有很多同伴在周?chē)?,然后可以向食物方向游?dòng)一次;如果情況相反那么就不執(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 追尾行為 有關(guān)追尾行為同樣可以使用偽代碼方式進(jìn)行表示,首先設(shè)人工魚(yú)當(dāng)前狀態(tài)設(shè)置為Xi ,要完成的任務(wù)書(shū)要對(duì)一定范圍內(nèi)的的伙伴數(shù)量Yj進(jìn)行探索,其中最大的伙伴Xj的數(shù)量如果比擁擠度δ大,表明伙伴Xj周?chē)呤澄锉容^充分,并且其周?chē)h(huán)境沒(méi)有很多同伴,于是應(yīng)該執(zhí)行朝伙伴Xj的方向前進(jìn)一步命令;如果得到的結(jié)果相反,就不執(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 人工魚(yú)群算法在各領(lǐng)域的應(yīng)用
2.1 電力系統(tǒng)規(guī)劃中的應(yīng)用
在電力系統(tǒng)中人工魚(yú)群算法是通過(guò)禁忌搜索方式的使用,并對(duì)人工魚(yú)的一些行為加以改進(jìn),讓人工魚(yú)在游動(dòng)完成各種位置的探索的時(shí)候具備一定的記憶能力。然后會(huì)將探索過(guò)的地方設(shè)置為記憶禁區(qū),這樣能提高工作效率,最大程度上避免出現(xiàn)重復(fù)的搜索情況。并對(duì)搜索記憶中一些比較好的狀態(tài)加以標(biāo)記,這樣能更好的確保搜索有更高的效率和更好的質(zhì)量。
2.2 在多級(jí)梯階物流中轉(zhuǎn)的運(yùn)輸系統(tǒng)中起優(yōu)化作用
在這個(gè)領(lǐng)域內(nèi)應(yīng)用人工魚(yú)群算法,要對(duì)變量的約束條件以及求解的精確程度進(jìn)行重點(diǎn)考慮,要使需要求解的空間有離散化特性,使一個(gè)比較大的變量空間變成大小適中的網(wǎng)格,用人工魚(yú)群的相關(guān)計(jì)算形式能使各級(jí)的中轉(zhuǎn)站和網(wǎng)路點(diǎn)之間的關(guān)系更加明確,并能在一定程度上消除相鄰的兩級(jí)中轉(zhuǎn)站之間的約束條件,并利用對(duì)算法的改良使問(wèn)題的優(yōu)化方式更容易使用。實(shí)踐中能夠看出,這種算法在多級(jí)梯階的運(yùn)輸系統(tǒng)的問(wèn)題處理上會(huì)得到很好的應(yīng)用。
3 結(jié)束語(yǔ)
人工魚(yú)群算法根據(jù)自然界魚(yú)群的行為作為使用原理,通過(guò)不斷更新和升級(jí)會(huì)應(yīng)用在更多領(lǐng)域中??偠灾谌肿顑?yōu)的快速人工魚(yú)群相關(guān)算法在實(shí)際應(yīng)用中十分實(shí)用,計(jì)算方式在各個(gè)領(lǐng)域中也能加以運(yùn)用。
參考文獻(xiàn)
[1]潘海珠,杜曉昕,王波.基于人工魚(yú)群的交通誘導(dǎo)系統(tǒng)最優(yōu)查詢(xún)研究[J].齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(05).
[2]胡青,孫才新,杜林,李劍.核主成分分析與隨機(jī)森林相結(jié)合的變壓器故障診斷方法[J].高電壓技術(shù),2010(07).
[3]符楊,田振寧,江玉蓉,曹家麟.加權(quán)模糊核聚類(lèi)法在電力變壓器故障診斷中的應(yīng)用[J].高電壓技術(shù),2010(02).
[4]王聯(lián)國(guó),洪毅,趙付青,余冬梅.一種簡(jiǎn)化的人工魚(yú)群算法[J].小型微型計(jì)算機(jī)系統(tǒng),2009(08).
作者簡(jiǎn)介
郭榮艷(1977-),女,河南省周口市人。碩士學(xué)位?,F(xiàn)為周口師范學(xué)院副教授。主要研究方向?yàn)樾盘?hào)與信息處理。
史水娥,現(xiàn)供職于河南師范大學(xué)。
作者單位
1.周口師范學(xué)院 河南省周口市 466001
2.河南師范大學(xué) 河南省新鄉(xiāng)市 453007