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