本發(fā)明屬于人工智能領(lǐng)域,具體地說(shuō),涉及一種用于單目標(biāo)優(yōu)化的混合生物共生搜索的方法。
背景技術(shù):
共生生物搜索算法是新近提出的一種模仿自然界中不同生物交互作用的新型群智能優(yōu)化算法,具有搜索速度快、參數(shù)設(shè)置少等優(yōu)點(diǎn)。與目前較優(yōu)秀的差分進(jìn)化算法、粒子群算法、蜘蛛算法等相比均有更好的測(cè)試效果,但與其他進(jìn)化算法類似,依然存在收斂速度慢、易陷入局部最優(yōu)等問(wèn)題。這是因?yàn)樗惴ǖ奶剿髂芰烷_(kāi)發(fā)能力是一對(duì)矛盾的關(guān)系,探索能力是指算法在對(duì)搜索空間進(jìn)行全局搜索找到全局最優(yōu)解的能力,開(kāi)發(fā)能力是指算法在部分搜索區(qū)域進(jìn)行搜索找到該區(qū)域的較優(yōu)解的能力。所以如何權(quán)衡算法的探索能力和開(kāi)發(fā)能力決定了算法的優(yōu)化性能。但是由于算法提出時(shí)間較短與其性能改進(jìn)及相關(guān)應(yīng)用的研究成果較少,算法的理論體系還不完善。
周虎等人(周虎,趙輝,周歡,王驍飛.自適應(yīng)精英反向?qū)W習(xí)共生生物搜索算法[j].計(jì)算機(jī)工程與應(yīng)用,2016,(19):161-166;周虎,趙輝,李牧東,蔡亞偉.多策略自適應(yīng)共生生物搜索算法[j].空軍工程大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,(04):101-106.)于2016年分別提出兩種方案對(duì)共生生物搜索算法進(jìn)行改進(jìn),第一種是引進(jìn)自適應(yīng)精英反向?qū)W習(xí)策略:在“互利”階段引入自適應(yīng)縮放策略來(lái)平衡算法的探索能力和開(kāi)發(fā)能力,在“共棲”階段引入差分量作為擾動(dòng)項(xiàng)增強(qiáng)局部搜索能力,在“寄生”階段引入精英反向?qū)W習(xí)策略增強(qiáng)算法的尋優(yōu)能力,對(duì)多個(gè)測(cè)試函數(shù)測(cè)試結(jié)果顯示,改進(jìn)后的算法對(duì)部分測(cè)試函數(shù)收斂速度較慢,還需進(jìn)一步改進(jìn)提升其收斂速度和收斂精度;第二種是引進(jìn)多策略的自適應(yīng)策略:在“互利”階段根據(jù)適應(yīng)度值將種群分為三部分并采取不同的個(gè)體更新公式運(yùn)用不同的策略來(lái)增強(qiáng)求解優(yōu)化問(wèn)題的能力,在“共棲”階段引入差分?jǐn)_動(dòng)項(xiàng)增強(qiáng)算法全局搜索能力避免局部最優(yōu),最后采取超邊界變異方式避免個(gè)體超界同時(shí)增強(qiáng)種群多樣性,對(duì)多個(gè)測(cè)試函數(shù)的測(cè)試結(jié)果表明改進(jìn)后的算法收斂速度需進(jìn)一步提升。
由于算法提出時(shí)間較短還未受到相關(guān)領(lǐng)域?qū)<覍W(xué)者的重視,目前與其性能改進(jìn)及相關(guān)應(yīng)用的研究成果發(fā)布較少,算法的理論體系還不完善,同時(shí)由于理論體系還不太成熟導(dǎo)致算法的應(yīng)用體系不成熟。其理論體系不成熟主要體現(xiàn)在算法的收斂速度和收斂精度不高,對(duì)于高維復(fù)雜的多峰函數(shù),算法極易陷入局部最優(yōu)且跳出局部最優(yōu)的能力不強(qiáng),進(jìn)而導(dǎo)致算法無(wú)法尋到全局最優(yōu)解。
互利共生和偏利共生階段個(gè)體更新公式實(shí)質(zhì)為:新個(gè)體=原個(gè)體+向最優(yōu)個(gè)體學(xué)習(xí)*隨機(jī)權(quán)重。其中,向最優(yōu)個(gè)體學(xué)習(xí)部分引入優(yōu)良個(gè)體的進(jìn)化信息,保證個(gè)體向更優(yōu)個(gè)體搜索,而隨機(jī)權(quán)重可補(bǔ)充種群多樣性。但在算法運(yùn)行后期,由于個(gè)體差別不大,最優(yōu)個(gè)體已經(jīng)無(wú)法提供比自身優(yōu)良更多的進(jìn)化信息,使得隨機(jī)權(quán)重部分的作用被迫放大,即搜索步長(zhǎng)具有隨機(jī)性,該更新方式退化為在自身附近進(jìn)行隨機(jī)搜索,很難探索出更為優(yōu)異的新個(gè)體,致使算法后期運(yùn)行較慢。綜上說(shuō)明,在算法運(yùn)行后期,應(yīng)進(jìn)一步增強(qiáng)共生生物搜索算法互利共生和偏利共生階段的收斂速度。
共生生物搜索算法的寄生機(jī)制隨機(jī)選取某些維度,對(duì)選出的這幾維度在其定義域內(nèi)隨機(jī)搜索。這一作用雖然能在一定程度上補(bǔ)充多樣性,但是盲目的隨機(jī)搜索很有可能破壞優(yōu)良個(gè)體,也很難更新出更為優(yōu)秀的個(gè)體,使其難以保留,無(wú)法達(dá)到維持種群多樣性的目的。
在現(xiàn)有技術(shù)中共生生物搜索算法存在收斂速度慢且易陷入局部最優(yōu)問(wèn)題,在產(chǎn)業(yè)工業(yè)解決實(shí)際問(wèn)題時(shí)得到的解往往不是最優(yōu),影響實(shí)際的生產(chǎn)應(yīng)用。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明針對(duì)共生生物搜索算法存在的收斂速度慢、收斂精度不足以及易陷入局部最優(yōu)的問(wèn)題,提供了一種用于單目標(biāo)優(yōu)化的混合生物共生搜索的方法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種用于單目標(biāo)優(yōu)化的混合生物共生搜索的方法,包括以下步驟:
步驟1、初始化個(gè)體數(shù)量n,種群的維度d,最大適應(yīng)度評(píng)價(jià)次數(shù)這些參數(shù),隨機(jī)產(chǎn)生初始種群;
步驟2、對(duì)n個(gè)個(gè)體進(jìn)行適應(yīng)度評(píng)價(jià),選出其中最優(yōu)個(gè)體;
步驟3、采用互利共生策略更新種群;
步驟4、采用偏利共生策略更新種群;
步驟5、采用寄生共生策略更新種群;
步驟6:判斷是否達(dá)到終止條件,達(dá)到則輸出最優(yōu)個(gè)體和適應(yīng)度值,沒(méi)有則轉(zhuǎn)至步驟3,所述終止條件具體為步驟1設(shè)定的最大適應(yīng)度評(píng)價(jià)次數(shù),該次數(shù)根據(jù)實(shí)際問(wèn)題人為設(shè)定。
進(jìn)一步地,步驟1中的隨機(jī)產(chǎn)生初始種群具體為:利用隨機(jī)方法生成n個(gè)個(gè)體,構(gòu)成初始種群x;x中每個(gè)個(gè)體
進(jìn)一步地,步驟3中的采用互利共生策略更新種群具體為:
隨機(jī)選出第j個(gè)個(gè)體xj,保證其不與第i個(gè)個(gè)體重合,其中i從1循環(huán)到n;利用xi和xj生成中間變量mutual_vector,進(jìn)而進(jìn)行個(gè)體更新,更新公式為公式(2);
其中,xbest為種群中的最優(yōu)個(gè)體,g為當(dāng)前迭代次數(shù),g為最大迭代次數(shù),bf1、bf2為隨機(jī)數(shù)1或者2。
進(jìn)一步地,步驟4中的采用偏利共生策略更新種群具體為:
隨機(jī)選出第j個(gè)個(gè)體xj,保證其不與第i個(gè)個(gè)體重合,與互利共生階段生成的新個(gè)體xi進(jìn)行偏利共生策略更新個(gè)體,個(gè)體更新公式如(3)所示;
其中,xbest為種群中的最優(yōu)個(gè)體,g為當(dāng)前迭代次數(shù),g為最大迭代次數(shù)。
進(jìn)一步地,步驟5中的采用寄生共生策略更新種群具體為:
寄生階段引入新的個(gè)體更新公式,如公式(4)所示;
new_xjnew=a*xj+b*(xbest-xj)+c*(xk-xj)(4)
其中xj、xk、xp為種群中隨機(jī)選取的個(gè)體,且i≠j≠k,新的個(gè)體更新公式主要包含兩個(gè)部分,a*xj為自身隨機(jī)變化部分,b*(xbest-xj)、c*(xk-xj)為學(xué)習(xí)部分,a、b、c為控制參數(shù),如公式(7)所示,
式中,參數(shù)的取值范圍為a∈[0.1,1],b∈[0.1,1],c∈[0.1,1],amin為參數(shù)a的最小取值即為0.1,amax為a的最大取值即為1;其余b、c的相關(guān)參數(shù)設(shè)置和a相同;g為當(dāng)前迭代次數(shù),g為最大迭代次數(shù),fi為第i個(gè)個(gè)體的適應(yīng)度值,fmin為當(dāng)前迭代種群最小適應(yīng)度值,fmax為最大適應(yīng)度值,
與現(xiàn)有技術(shù)相比,本發(fā)明可以獲得包括以下技術(shù)效果:
1)本發(fā)明的方法收斂速度和收斂精度明顯提升。
2)本發(fā)明的方法避免局部最優(yōu)能力得到改善。
3)本發(fā)明的方法具有較強(qiáng)的魯棒性。
4)本發(fā)明的方法在進(jìn)行實(shí)際的問(wèn)題解決中會(huì)在較少的迭代次數(shù)中就得到問(wèn)題所需的解,這在一定程度上減少了解決問(wèn)題所需的時(shí)間。
當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有技術(shù)效果。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是本發(fā)明用于單目標(biāo)優(yōu)化的混合生物共生搜索的方法的工藝流程圖;
圖2是本發(fā)明一種函數(shù)的驗(yàn)證算法的有效性,其中,(1)代表基礎(chǔ)算法(常規(guī)技術(shù)手段)的結(jié)果,(2)代表改進(jìn)算法(本發(fā)明算法)的結(jié)果;
圖3是本發(fā)明另一種函數(shù)的驗(yàn)證算法的有效性,其中,(1)代表基礎(chǔ)算法(常規(guī)技術(shù)手段)的結(jié)果,(2)代表改進(jìn)算法(本發(fā)明算法)的結(jié)果。
具體實(shí)施方式
以下將配合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,藉此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題并達(dá)成技術(shù)功效的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。
本發(fā)明提供一種用于單目標(biāo)優(yōu)化的混合生物共生搜索的方法,包括以下步驟:
步驟1、確定初始進(jìn)化個(gè)體數(shù)量n,種群的維度d,最大適應(yīng)度評(píng)價(jià)次數(shù)等相關(guān)參數(shù);利用隨機(jī)方法生成n個(gè)個(gè)體,構(gòu)成初始種群x;x中每個(gè)個(gè)體
步驟2、對(duì)n個(gè)個(gè)體進(jìn)行適應(yīng)度評(píng)價(jià),選出其中最優(yōu)個(gè)體;
在進(jìn)行實(shí)際問(wèn)題的求解中,我們所需要解決的問(wèn)題就是我們的適應(yīng)度函數(shù),這個(gè)適應(yīng)度函數(shù)有可能有具體的函數(shù)表達(dá)式,也有可能無(wú)法獲得具體的表達(dá)式。例如,要求得
步驟3、隨機(jī)選出第j個(gè)個(gè)體xj,保證其不與第i個(gè)個(gè)體重合,其中i從1循環(huán)到n;利用xi和xj生成中間變量mutual_vector,進(jìn)而進(jìn)行個(gè)體更新,更新公式為公式(2);
其中,xbest為種群中的最優(yōu)個(gè)體,g為當(dāng)前迭代次數(shù),g為最大迭代次數(shù),bf1、bf2為隨機(jī)數(shù)1或者2。
偽代碼如下所示:
其中,s(為每一次迭代得到的適應(yīng)度值計(jì)算其方差,方差公式為:
步驟4、隨機(jī)選出第j個(gè)個(gè)體xj,保證其不與第i個(gè)個(gè)體重合,與互利共生階段xi進(jìn)行偏利共生策略更新個(gè)體,個(gè)體更新公式如(3)所示。
其中,xbest為種群中的最優(yōu)個(gè)體,g為當(dāng)前迭代次數(shù),g為最大迭代次數(shù)。
偏利共生階段個(gè)體的更新方式采取和互利共生階段相同的方式,以適應(yīng)度值方差作為衡量標(biāo)準(zhǔn),以不同的概率分別選取公式(3)和公式(3’)進(jìn)行更新,一方面可以加快種群的收斂速度,另一方面可以以一定的概率增強(qiáng)種群的多樣性,達(dá)到協(xié)調(diào)算法開(kāi)發(fā)能力和探索能力的目的。
new_xinew=xbest+rand(-1,1)*(xbest-xj)(3’)
步驟5、寄生階段引入新的個(gè)體更新公式,如公式(4)所示。
new_xjnew=a*xj+b*(xbest-xj)+c*(xk-xj)(4)
其中xj、xk、xp為種群中隨機(jī)選取的個(gè)體,且i≠j≠k,新的個(gè)體更新公式主要包含兩個(gè)部分,a*xj為自身隨機(jī)變化部分,b*(xbest-xj)、c*(xk-xj)為學(xué)習(xí)部分,前者表示個(gè)體向最優(yōu)個(gè)體學(xué)習(xí),不斷向最優(yōu)位置靠攏,后者表示個(gè)體向當(dāng)前種群中其余個(gè)體學(xué)習(xí),增大種群的多樣性,減少算法陷入局部最優(yōu)。a、b、c為控制參數(shù),如公式(7)所示,
式中,參數(shù)的取值范圍為a∈[0.1,1],b∈[0.1,1],c∈[0.1,1],amin為參數(shù)a的最小取值即為0.1,amax為a的最大取值即為1;其余b、c的相關(guān)參數(shù)設(shè)置和a相同;g為當(dāng)前迭代次數(shù),g為最大迭代次數(shù),fi為第i個(gè)個(gè)體的適應(yīng)度值,fmin為當(dāng)前迭代種群最小適應(yīng)度值,fmax為最大適應(yīng)度值,
采用該種方式更新個(gè)體,避免了原算法的盲目隨機(jī)變異對(duì)較優(yōu)個(gè)體的破壞,同時(shí)通過(guò)向最優(yōu)個(gè)體和隨機(jī)個(gè)體的學(xué)習(xí)加快了種群收斂速度的同時(shí)增強(qiáng)種群多樣性。
步驟6:判斷是否達(dá)到終止條件(即步驟1設(shè)定的最大適應(yīng)度評(píng)價(jià)次數(shù),該次數(shù)根據(jù)實(shí)際問(wèn)題人為設(shè)定),達(dá)到則輸出最優(yōu)結(jié)果,沒(méi)有則轉(zhuǎn)至步驟3。
本發(fā)明互利共生、偏利共生、寄生三個(gè)種群更新策略相繼進(jìn)行,對(duì)整個(gè)種群進(jìn)行更新時(shí)是從第一個(gè)個(gè)體開(kāi)始更新直到更新完最后一個(gè)個(gè)體后進(jìn)行下一個(gè)種群更新策略,每一個(gè)更新策略分別有2次、2次和1次適應(yīng)度評(píng)價(jià)次數(shù),完成三個(gè)更新策略后統(tǒng)計(jì)適應(yīng)度評(píng)價(jià)次數(shù),如果達(dá)到設(shè)定的總體適應(yīng)度評(píng)價(jià)次數(shù)則滿足終止條件,如果不滿足終止條件則重新進(jìn)行三個(gè)種群更新策略。
本發(fā)明的一種基于混合策略的共生生物搜索算法采用了多種策略來(lái)提升共生生物搜索算法的整體性能。合理平衡算法的開(kāi)發(fā)能力和探索能力,在提升算法收斂速度的同時(shí)增強(qiáng)了算法避免局部最優(yōu)的能力。在進(jìn)化的全部階段,一方面以一定的概率在最優(yōu)個(gè)體周?chē)M(jìn)行搜索,另一方面向最優(yōu)個(gè)體進(jìn)行學(xué)習(xí)這兩種策略使得算法前期個(gè)體能較快的向最優(yōu)個(gè)體學(xué)習(xí)以達(dá)到加快收斂速度的目的,同時(shí)算法后期在最優(yōu)個(gè)體周?chē)M(jìn)行精細(xì)搜索,增強(qiáng)算法的開(kāi)發(fā)能力。寄生階段引入新的個(gè)體更新方法,避免了原方法的盲目性,增加其向最優(yōu)個(gè)體及其余個(gè)體學(xué)習(xí)的擾動(dòng)量,達(dá)到增強(qiáng)種群多樣性的目的,并在一定程度上增強(qiáng)種群多樣性。
該算法可應(yīng)用于求解各類最優(yōu)問(wèn)題,在工業(yè)產(chǎn)業(yè)上有較多的用途。比如,經(jīng)典的旅行商問(wèn)題可用該算法求得其可以選擇的最短路徑;傳感器的網(wǎng)絡(luò)覆蓋問(wèn)題可用該算法優(yōu)化傳感器的角度增強(qiáng)其覆蓋率等方面。
下面通過(guò)幾個(gè)標(biāo)準(zhǔn)的測(cè)試函數(shù),來(lái)證實(shí)該方法的有益效果。表1中的測(cè)試函數(shù)經(jīng)常被用作測(cè)試算法的效果,大量的實(shí)驗(yàn)證明,其具有一定的代表性。
表1測(cè)試函數(shù)
圖2和圖3為選擇其中的兩個(gè)函數(shù)驗(yàn)證算法的有效性,橫坐標(biāo)為算法的迭代次數(shù),縱坐標(biāo)為算法求得的函數(shù)值;曲線(1)為基礎(chǔ)算法(常規(guī)技術(shù)手段)的結(jié)果,曲線(2)為改進(jìn)算法(本發(fā)明算法)的結(jié)果。
表2為將算法獨(dú)立運(yùn)行30次得到的數(shù)據(jù)。表格中的數(shù)字代表的意思是:平均值±方差,將改進(jìn)后的算法和基礎(chǔ)算法進(jìn)行比較,得到的平均值和方差分別代表算法更強(qiáng)的尋優(yōu)能力和更好的魯棒性。
表2算法評(píng)價(jià)次數(shù)對(duì)比
上述說(shuō)明示出并描述了發(fā)明的若干優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過(guò)上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離發(fā)明的精神和范圍,則都應(yīng)在發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。