本發(fā)明一種進(jìn)化算法領(lǐng)域,尤其涉及一種遺傳算法與粒子群算法并行融合的進(jìn)化算法。
背景技術(shù):
近年來,隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,為了在一定程度上解決大空間、非線性、全局尋優(yōu)、組合優(yōu)化等復(fù)雜問題,不少進(jìn)化算法不斷涌現(xiàn),如遺傳算法和粒子群算法等。遺傳算法應(yīng)用廣泛、實(shí)用、魯棒性高,但后期效率低下。粒子群算法搜索速度快、效率高,算法簡(jiǎn)單,但容易陷入局部最優(yōu)解。
因?yàn)檫@些算法獨(dú)特的優(yōu)勢(shì),獲得了國(guó)內(nèi)外學(xué)者的廣泛關(guān)注,掀起了研究熱潮,并在電子、通信、計(jì)算機(jī)、自動(dòng)化、機(jī)器人、經(jīng)濟(jì)學(xué)和管理學(xué)等眾多學(xué)科和信號(hào)處理、圖像處理、生產(chǎn)調(diào)度、任務(wù)分配、模式識(shí)別、自動(dòng)控制和機(jī)械設(shè)計(jì)等眾多領(lǐng)域,得到了成功應(yīng)用。但單種進(jìn)化算法由于自身的缺點(diǎn)(例如遺傳算法后期效率低下、粒子群算法容易陷入局部最優(yōu)解),不利于解決大空間、非線性、全局尋優(yōu)、組合優(yōu)化等復(fù)雜優(yōu)化問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:目前現(xiàn)有技術(shù)中的遺傳算法和粒子群進(jìn)化算法各自存在自身的缺點(diǎn)(例如遺傳算法后期效率低下、粒子群算法容易陷入局部最優(yōu)解)。
為解決上面的技術(shù)問題,本發(fā)明提供了一種遺傳算法與粒子群算法并行融合的進(jìn)化算法,解決了遺傳算法后期效率低下、粒子群算法容易陷入局部最優(yōu)解的問題,提高進(jìn)化算法的優(yōu)化效率和優(yōu)化效果,該算法包括如下步驟:
s1,隨機(jī)生成初始種群;
s2,利用適應(yīng)度函數(shù)對(duì)初始種群進(jìn)行適應(yīng)度的計(jì)算;
s3,實(shí)施進(jìn)化計(jì)算步驟,設(shè)置適應(yīng)度函數(shù)值的最小閾值為進(jìn)化計(jì)算的終止條件,判斷s2中的最優(yōu)適應(yīng)度是否滿足終止條件,若滿足,則輸出具有最優(yōu)適應(yīng)度的個(gè)體,若不滿足,則執(zhí)行s4;
s4,對(duì)種群中不滿足終止條件的全部個(gè)體進(jìn)行遺傳操作,產(chǎn)生子代種群1,同時(shí)對(duì)種群中不滿足終止條件的全部個(gè)體進(jìn)行粒子群進(jìn)化操作,產(chǎn)生子代種群2;
s5,將子代種群1和子代種群2合并,并按照適應(yīng)度排序,取適應(yīng)度高的個(gè)體組合為子代種群3;
s6,將子代種群3繼續(xù)返回步驟s2循環(huán)操作,直到達(dá)到進(jìn)化計(jì)算的終止條件,輸出具有最優(yōu)適應(yīng)度的個(gè)體。
本發(fā)明的有益效果:通過本發(fā)明的方法將遺傳算法、粒子群進(jìn)化算法進(jìn)行融合操作,解決了遺傳算法后期效率低下、粒子群算法容易陷入局部最優(yōu)解的缺點(diǎn),從而提高了進(jìn)行算法的優(yōu)化效率和優(yōu)化效果。
進(jìn)一步地,所述步驟s2中,適應(yīng)度函數(shù)包括:目標(biāo)函數(shù)映射成的適應(yīng)度函數(shù)或基于序的適應(yīng)度函數(shù)。
進(jìn)一步地,所述s3還可以為設(shè)置最大進(jìn)化代數(shù)值為進(jìn)化計(jì)算終止條件。
進(jìn)一步地,所述s4中對(duì)種群中不滿足條件的全部個(gè)體進(jìn)行遺傳操作,產(chǎn)生子代種群1的過程具體包括:對(duì)種群中不滿足條件的全部個(gè)體進(jìn)行選擇操作、交叉操作和變異操作的遺傳操作,產(chǎn)生子代種群1。
進(jìn)一步地,所述步驟s4中對(duì)種群中不滿足條件的全部個(gè)體進(jìn)行粒子群進(jìn)化操作,產(chǎn)生子代種群2的過程具體包括:對(duì)種群中不滿足條件的全部個(gè)體進(jìn)行速度更新、位置更新和邊界調(diào)節(jié)處理的粒子群進(jìn)化操作,產(chǎn)生子代種群2。
進(jìn)一步地,所述步驟s1中初始種群的范圍為10~150。
上述進(jìn)一步的有益效果:群體規(guī)模的大小將影響優(yōu)化的最終結(jié)果以及優(yōu)化效率。當(dāng)群體規(guī)模np太小時(shí),優(yōu)化性能一般不會(huì)太好。采用較大的群體規(guī)??梢詼p小優(yōu)化算法陷入局部最優(yōu)解的機(jī)會(huì),但較大的群體規(guī)模意味著計(jì)算復(fù)雜度高。
進(jìn)一步地,所述步驟s3中最小閾值取值范圍10-5~10-7。
進(jìn)一步地,所述的最大進(jìn)化代數(shù)值取值范圍為100~500。
上述進(jìn)一步的有益效果:本發(fā)明采用上述的最小閾值取值范圍10-5~10-7,最大進(jìn)化代數(shù)值取值范圍為100~500,能夠大大較少了計(jì)算的過程,同時(shí)得到的結(jié)果會(huì)更加精確。
附圖說明
圖1為本發(fā)明的一種遺傳算法與粒子群算法并行融合的進(jìn)化算法流程圖;
圖2為本發(fā)明的一種遺傳算法與粒子群算法并行融合的進(jìn)化算法示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示的,本發(fā)明的一種遺傳算法與粒子群算法并行融合的進(jìn)化算法,該算法包括如下步驟:
s1,隨機(jī)生成初始種群np,其中隨機(jī)生成群體規(guī)模為np的個(gè)體的初始群體。群體規(guī)模的大小將影響優(yōu)化的最終結(jié)果以及優(yōu)化效率。當(dāng)群體規(guī)模np太小時(shí),優(yōu)化性能一般不會(huì)太好。采用較大的群體規(guī)??梢詼p小優(yōu)化算法陷入局部最優(yōu)解的機(jī)會(huì),但較大的群體規(guī)模意味著計(jì)算復(fù)雜度高;
s2,利用適應(yīng)度函數(shù)f(x)對(duì)初始種群np進(jìn)行適應(yīng)度的計(jì)算,其中對(duì)群體中的個(gè)體,進(jìn)行適應(yīng)度計(jì)算。在具體應(yīng)用中,適應(yīng)度函數(shù)的設(shè)計(jì)要結(jié)合求解問題本身的要求而定。適應(yīng)度函數(shù)評(píng)估是進(jìn)化選擇的依據(jù),適應(yīng)度函數(shù)設(shè)計(jì)直接影響到進(jìn)化算法的性能;
s3,實(shí)施進(jìn)化計(jì)算步驟,設(shè)置適應(yīng)度函數(shù)值的最小閾值為進(jìn)化計(jì)算的終止條件,判斷s2中的最優(yōu)適應(yīng)度是否滿足終止條件,若滿足,則輸出具有最優(yōu)適應(yīng)度的個(gè)體,若不滿足,則執(zhí)行s4,其中判斷最優(yōu)適應(yīng)度是否滿足終止條件,終止條件可以是最大進(jìn)化代數(shù)g,也可以是目標(biāo)函數(shù)值的最小閾值等。g取值一般為100~500,最小閾值一般取10-6;
s4,對(duì)種群中不滿足終止條件的全部個(gè)體進(jìn)行遺傳操作,產(chǎn)生子代種群1,同時(shí)對(duì)種群中不滿足終止條件的全部個(gè)體進(jìn)行粒子群進(jìn)化操作,產(chǎn)生子代種群2;
s5,將子代種群1和子代種群2合并,并按照適應(yīng)度排序,取適應(yīng)度高的個(gè)體組合為子代種群3,比如子代種群1中有50個(gè)個(gè)體,子代種群2中有50個(gè)個(gè)體,合并起來就有100個(gè)個(gè)體,將這100個(gè)個(gè)體進(jìn)行適應(yīng)度排序,排序較高的前50個(gè)進(jìn)行組合成子代種群3,將子代種群3執(zhí)行步驟2循環(huán)步驟;
s6,將子代種群3繼續(xù)返回步驟s2循環(huán)操作,直到達(dá)到進(jìn)化計(jì)算的終止條件,輸出具有最優(yōu)適應(yīng)度的個(gè)體。
實(shí)施例
如圖2所示,本發(fā)明一種遺傳算法與粒子群進(jìn)化算法串行融合的進(jìn)化算法,
第一步隨機(jī)生成初始種群np
隨機(jī)生成群體規(guī)模np為50個(gè)個(gè)體的初始群體,每個(gè)個(gè)體的維數(shù)和取值范圍根據(jù)具體優(yōu)化問題確定,在本發(fā)明實(shí)例中取值每個(gè)個(gè)體的維數(shù)是10,每一維取值范圍為[-512~512]。
第二步進(jìn)行適應(yīng)度計(jì)算
取適應(yīng)度為函數(shù)f(x)值,對(duì)群體中的每一個(gè)個(gè)體進(jìn)行適應(yīng)度計(jì)算。其中運(yùn)用遺傳算法與粒子群進(jìn)化算法融合的進(jìn)化算法,計(jì)算函數(shù)
第三步判斷是否滿足終止條件
取終止條件為最大進(jìn)化代數(shù)g(即最大的循環(huán)次數(shù))為100。判斷是否滿足終止條件,若滿足終止準(zhǔn)則,則輸出最優(yōu)結(jié)果,算法結(jié)束;若不滿足,則進(jìn)行步驟四操作。
第四步同時(shí)進(jìn)行遺傳操作和粒子群進(jìn)化操作
對(duì)種群中的個(gè)體進(jìn)行選擇操作、交叉操作和變異操作的遺傳操作,產(chǎn)生子代種群1;同時(shí)對(duì)種群中的個(gè)體進(jìn)行速度更新、位置更新和邊界調(diào)節(jié)處理的粒子群進(jìn)化操作,產(chǎn)生子代種群2。
第五步產(chǎn)生新的子代種群
進(jìn)行子代種群1個(gè)體和子代種群2個(gè)體合并,并按適應(yīng)度排序,取適應(yīng)度高的前一半種群個(gè)體為子代種群3,進(jìn)行下一步循環(huán)操作。
第六步轉(zhuǎn)至步驟二
進(jìn)行進(jìn)化循環(huán)優(yōu)化操作,直至達(dá)到終止條件,輸出優(yōu)化結(jié)果。
在相同條件下,運(yùn)用遺傳算法、粒子群進(jìn)化算法及兩者融合的進(jìn)化算法求函數(shù)f(x)的優(yōu)化解及函數(shù)最小值如下表所示。可見融合算法比單獨(dú)的遺傳算法、粒子群進(jìn)化算法有更好的優(yōu)化結(jié)果。
對(duì)上述本發(fā)明進(jìn)行了試驗(yàn)操作,對(duì)比優(yōu)化結(jié)果對(duì)比表1如下:
表1優(yōu)化結(jié)果對(duì)比表
在本說明書中,對(duì)上述術(shù)語的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。