本發(fā)明涉及工程尋優(yōu)技術(shù)領(lǐng)域,特別涉及一種工程參數(shù)尋優(yōu)方法及系統(tǒng)。
背景技術(shù):
隨著系統(tǒng)工程理論研究的日趨成熟和現(xiàn)代計算機技術(shù)的不斷發(fā)展與應(yīng)用,各種新型群智能優(yōu)化算法得到了快速發(fā)展,相比于傳統(tǒng)數(shù)學(xué)優(yōu)化方法,新型群智能優(yōu)化算法不需要過度依賴數(shù)學(xué)模型,在求解多約束優(yōu)化問題時也不需要將數(shù)學(xué)模型進行簡化,避免犧牲求解精度。因此,其具有較強的適用性,并成為目前優(yōu)化領(lǐng)域研究的熱點之一。
現(xiàn)有技術(shù)中,灰狼算法是一種新型元啟發(fā)式搜索算法,該算法具有結(jié)構(gòu)簡單、控制參數(shù)少、易于實現(xiàn)、有較強的搜索能力等特點,在優(yōu)化領(lǐng)域,已被證明在計算效率和求解精度上均優(yōu)于粒子群算法,并且在特征子集選擇、直流電機最優(yōu)控制、多輸入多輸出電力系統(tǒng)、多層傳感器訓(xùn)練及電力系統(tǒng)經(jīng)濟調(diào)度等領(lǐng)域中具有廣泛的應(yīng)用,但其仍存在容易陷入局部最優(yōu)的缺陷。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供。其具體方案如下:
一種工程參數(shù)尋優(yōu)方法,包括:
預(yù)先構(gòu)建與預(yù)設(shè)工程問題對應(yīng)的目標函數(shù);其中,所述目標函數(shù)對應(yīng)的解為d維的解,d為正整數(shù);
在滿足所述目標函數(shù)的約束條件的前提下,利用新型灰狼算法對所述目標函數(shù)求解;
其中,利用所述新型灰狼算法對所述目標函數(shù)求解具體過程包括:
預(yù)設(shè)狼群;其中,所述狼群包括M個個體,所述狼群中每一個個體均構(gòu)成所述目標函數(shù)的一個解,M為正整數(shù);
對所述狼群進行S次迭代更新,得到更新后的狼群,S為正整數(shù);
從所述更新后的狼群中篩選出全局最優(yōu)個體,并將所述全局最優(yōu)個體所對應(yīng)的解確定為所述預(yù)設(shè)工程問題的最優(yōu)工程參數(shù);
其中,對所述狼群進行任一次迭代更新的過程,包括:對所述狼群進行更新,得到中庸狼群,對所述狼群和所述中庸狼群中每個個體進行適應(yīng)度計算,從所述狼群中的個體和一一對應(yīng)的所述中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,當滿足修正條件,則利用縱向交叉操作,修正所述第一狼群更新方向,得到修正后的中庸狼群,對所述第一狼群和所述修正后的中庸狼群中每個個體進行適應(yīng)度計算,從所述第一狼群中的個體和一一對應(yīng)的所述修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
優(yōu)選的,所述對所述狼群進行更新,得到中庸狼群的過程,包括:
利用更新公式,對所述狼群進行更新,得到所述中庸狼群;其中,所述更新公式為:
式中,為中庸狼個體,為α狼,為β狼,為δ狼。
優(yōu)選的,所述對所述狼群和所述中庸狼群中每個個體進行適應(yīng)度計算,從所述狼群中的個體和一一對應(yīng)的所述中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,包括:
利用所述目標函數(shù),對所述狼群和所述中庸狼群中每個個體進行適應(yīng)度計算,利用篩選公式從所述狼群中的個體和一一對應(yīng)的所述中庸狼群的個體之間篩選出適應(yīng)度最高的所述第一組M個個體,得到所述第一狼群;其中,所述篩選公式為:
式中,為所述中庸狼群中的個體,為所述第一狼群中的個體,為所述狼群中的個體,為所述中庸狼群中的個體的適應(yīng)度,為所述狼群中的個體的適應(yīng)度。
優(yōu)選的,每次方向修正操作只產(chǎn)生一維子代。
優(yōu)選的,所述當滿足修正條件,則利用縱向交叉操作,修正所述第一狼群更新方向,得到修正后的中庸狼群的過程,包括:
對所述第一狼群中每個個體的維執(zhí)行歸一化操作;
對所述第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足修正條件的配對維進行修正,得到修正后中庸狼個體標量的維,當不滿足所述修正條件,則不進行修正;
對所述修正后中庸狼個體標量的維進行反歸一化操作,得到所述修正后的中庸狼群。
優(yōu)選的,所述對所述第一狼群中每個個體的維執(zhí)行歸一化操作的過程,包括:
利用歸一化公式,對所述第一狼群中每個個體的維執(zhí)行歸一化操作;其中,所述歸一化公式為:
式中,D為維數(shù),為狼的第d維變量,為歸一化后所對應(yīng)的標量,max(d)和min(d)分別為所述中庸狼群中第d維變量的上限和下限。
優(yōu)選的,所述對所述第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足修正條件的配對維進行修正,得到修正后中庸狼個體標量的維的過程,包括:
利用修正公式,對第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足服從正態(tài)分布的隨機參數(shù)rand小于預(yù)設(shè)修正概率pv的每一配對維進行修正,得到修正后中庸狼個體標量的維;其中,隨機參數(shù)rand為0到1的隨機數(shù),所述修正公式為:
式中d1,d2∈(1,D),r為0到1的隨機數(shù),為中庸狼個體標量的第d1維,和分別為個體標量的d1和d2維。
優(yōu)選的,所述對所述修正后中庸狼個體標量的維進行反歸一化操作,得到所述修正后的中庸狼群的過程,包括:
利用反歸一化公式,對所述修正后中庸狼個體標量的維進行反歸一化操作,得到所述修正后的中庸狼群;其中,所述反歸一化公式為:
式中,為修正后的中庸狼個體的第d維,為中庸狼個體標量的第d維。
本發(fā)明還公開了一種工程參數(shù)尋優(yōu)系統(tǒng),包括:
目標函數(shù)構(gòu)建模塊,用于預(yù)先構(gòu)建與預(yù)設(shè)工程問題對應(yīng)的目標函數(shù);其中,所述目標函數(shù)對應(yīng)的解為d維的解,d為正整數(shù);
目標函數(shù)計算模塊,用于在滿足所述目標函數(shù)的約束條件的前提下,利用新型灰狼算法對所述目標函數(shù)求解;
其中,所述目標函數(shù)計算模塊包括:
狼群預(yù)設(shè)子模塊,用于預(yù)設(shè)狼群;其中,所述狼群包括M個個體,所述狼群中每一個個體均構(gòu)成所述目標函數(shù)的一個解,M為正整數(shù);
狼群迭代子模塊,用于對所述狼群進行S次迭代更新,得到更新后的狼群,S為正整數(shù);
參數(shù)確定子模塊,用于從所述更新后的狼群中篩選出全局最優(yōu)個體,并將所述全局最優(yōu)個體所對應(yīng)的解確定為所述預(yù)設(shè)工程問題的最優(yōu)工程參數(shù);
其中,所述狼群迭代子模塊對所述狼群進行任一次迭代更新的過程,包括:對所述狼群進行更新,得到中庸狼群,對所述狼群和所述中庸狼群中每個個體進行適應(yīng)度計算,從所述狼群中的個體和一一對應(yīng)的所述中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,當滿足修正條件,則利用縱向交叉操作,修正所述第一狼群更新方向,得到修正后的中庸狼群,對所述第一狼群和所述修正后的中庸狼群中每個個體進行適應(yīng)度計算,從所述第一狼群中的個體和一一對應(yīng)的所述修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
優(yōu)選的,所述狼群迭代子模塊,包括:
歸一化單元,用于對所述第一狼群中每個個體的維執(zhí)行歸一化操作;
修正單元,用于對所述第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足修正條件的配對維進行修正,得到修正后中庸狼個體標量的維,當不滿足所述修正條件,則不進行修正;
反歸一化單元,用于對所述修正后中庸狼個體標量的維進行反歸一化操作,得到所述修正后的中庸狼群。
本發(fā)明中,工程參數(shù)尋優(yōu)方法包括:預(yù)先構(gòu)建與預(yù)設(shè)工程問題對應(yīng)的目標函數(shù);其中,目標函數(shù)對應(yīng)的解為d維的解,d為正整數(shù);在滿足目標函數(shù)的約束條件的前提下,利用新型灰狼算法對目標函數(shù)求解;其中,利用新型灰狼算法對目標函數(shù)求解具體過程包括:預(yù)設(shè)狼群;其中,狼群包括M個個體,狼群中每一個個體均構(gòu)成目標函數(shù)的一個解,M為正整數(shù);對狼群進行S次迭代更新,得到更新后的狼群,S為正整數(shù);從更新后的狼群中篩選出全局最優(yōu)個體,并將全局最優(yōu)個體所對應(yīng)的維確定為預(yù)設(shè)工程問題的最優(yōu)工程參數(shù);其中,對狼群進行任一次迭代更新的過程,包括:對狼群進行更新,得到中庸狼群,對狼群和中庸狼群中每個個體進行適應(yīng)度計算,從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,當滿足修正條件,則利用縱向交叉操作,修正第一狼群更新方向,得到修正后的中庸狼群,對第一狼群和修正后的中庸狼群中每個個體進行適應(yīng)度計算,從第一狼群中的個體和一一對應(yīng)的修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群??梢姡景l(fā)明在對狼群更迭過程中,還加入了競爭策略,即在更新后,計算更新前狼群和更新后狼群一一對應(yīng)的個體之間的適應(yīng)度,且適應(yīng)度高的個體才會保留下來,避免了采用更新后產(chǎn)生的偏離個體,使狼群始終保持自身歷史最優(yōu)位置,有效提高算法的收斂速度,同時,還利用縱橫交叉算法中的縱向交叉操作,對狼群進行方向修正,避免狼群出現(xiàn)嚴重的位置偏差,使狼群具備自主修正前進方向,能夠向獵物聚集,協(xié)助部分維擺脫維局部最優(yōu)困境,避免狼群陷入局部最優(yōu)的可能性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種工程參數(shù)尋優(yōu)方法流程圖;
圖2為本發(fā)明實施例提供的新型灰狼優(yōu)化算法的位置更新過程示意圖;
圖3為本發(fā)明實施例提供的一種工程參數(shù)尋優(yōu)系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例公開了一種工程參數(shù)尋優(yōu)方法,參見圖1所示,該方法包括:
步驟S11:預(yù)先構(gòu)建與預(yù)設(shè)工程問題對應(yīng)的目標函數(shù);其中,目標函數(shù)對應(yīng)的解為d維的解,d為正整數(shù)。
本發(fā)明實施例中,上述預(yù)設(shè)工程問題所對應(yīng)的工程領(lǐng)域有很多種,包括電力工程、生物工程、人工智能、航天工程等。例如,在電力工程領(lǐng)域,如何計算水火發(fā)電系統(tǒng)中包含多個發(fā)電機組的火電廠的最小系統(tǒng)燃料費用,針對該工程問題,可以構(gòu)建系統(tǒng)燃料費用與火電廠出力之間的函數(shù)關(guān)系,從而得到相應(yīng)的目標函數(shù),并且需要增加各種約束條件,以防止出現(xiàn)脫離實際應(yīng)用情況的結(jié)果,例如,系統(tǒng)功率平衡約束、水量平衡約束、水電站出力約束、火電廠的出力約束等各種約束條件,可以理解的是,上述目標函數(shù)中火電廠出力是目標函數(shù)的自變量,也即是相應(yīng)工程問題中需要尋優(yōu)的工程參數(shù),上述目標函數(shù)中的系統(tǒng)燃料費用則是目標函數(shù)的因變量。
另外,需要說明的是,本發(fā)明實施例中,假設(shè)目標函數(shù)中自變量的個數(shù)為d個,則該目標函數(shù)所對應(yīng)的解便為d維的解,也即,該目標函數(shù)所對應(yīng)的解中包括d個優(yōu)化參數(shù)。
具體的,目標函數(shù)的設(shè)計結(jié)構(gòu)可以為下式:
目標函數(shù):miny=f(x);
約束條件:
式中,miny為最優(yōu)解,f(x)為目標函數(shù),為優(yōu)化問題的決策向量,Ω為可行區(qū)域,S為搜索空間,gi(x)≤0為第i個不等式約束,hj(x)=0為第j個等式約束,I,J分別為不等式和等式約束的個數(shù)。
步驟S12:在滿足目標函數(shù)的約束條件的前提下,利用新型灰狼算法對目標函數(shù)求解。
本發(fā)明實施例中的新型灰狼算法是基于現(xiàn)有的灰狼算法改進而來,仍保留有狼個體α領(lǐng)導(dǎo)整個狼群,主要負責(zé)狩獵過程的決策制定,狼個體β位于狼群的第二階層,主要負責(zé)協(xié)助α做決策,狼個體δ位于狼群的第三階層,主要負責(zé)偵查、警戒、打圍、看守,剩余狼群為ω位于最底層,服從于其它高階層狼的命令,并開展有關(guān)的群體狩獵行動的基本結(jié)構(gòu)。且通過對狼個體位置的不斷更新,狼個體會逐漸靠近最優(yōu)解,即狼個體的最終位置便是全局最優(yōu)解。
可以理解的是,通過查找到全局最優(yōu)個體,也就能夠得知個體的位置,即具體的解,從而得出預(yù)設(shè)工程問題的最優(yōu)工程參數(shù)。
其中,利用新型灰狼算法對目標函數(shù)求解具體過程包括步驟S121至步驟S123:
步驟S121:預(yù)設(shè)狼群;其中,狼群包括M個個體,狼群中每一個個體均構(gòu)成目標函數(shù)的一個解,M為正整數(shù)。
其中,預(yù)設(shè)與目標函數(shù)相應(yīng)的狼群,狼群的個體數(shù)M可以根據(jù)實際應(yīng)用需求進行設(shè)定,例如,設(shè)定狼群包括100個個體。
具體的,預(yù)設(shè)狼群后利用距離向量公式計算狼個體與獵物之間的距離,利用位置計算公式使狼個體α、β、δ引導(dǎo)其余個體ω向獵物移動;其中,
距離向量公式為:
位置計算公式為:
式中,t為當前狼群代數(shù),為狼與獵物之間的距離向量;和為擺動因子向量,為獵物當前位置,即全局最優(yōu)解向量,為狼群所在位置,即潛在解向量。和的值由公式擺動因子計算公式計算得到;其中,
擺動因子計算公式為:
式中,和為取值范圍為[0,1]的隨機向量,向量的值隨迭代次數(shù)由2線性遞減到0。
步驟S122:對狼群進行S次迭代更新,得到更新后的狼群,S為正整數(shù)。
其中,對狼群進行任一次迭代更新的過程,包括:對狼群進行更新,得到中庸狼群,對狼群和中庸狼群中每個個體進行適應(yīng)度計算,從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,當滿足修正條件,則利用縱向交叉操作,采取方向修正操作,修正第一狼群更新方向,得到修正后的中庸狼群,對第一狼群和修正后的中庸狼群中每個個體進行適應(yīng)度計算,從第一狼群中的個體和一一對應(yīng)的修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
需要說明的是,上述狼群迭代次數(shù)S可以根據(jù)實際應(yīng)用需求進行設(shè)定,例如可以設(shè)定為100。
本發(fā)明實施例中,迭代過程中包括灰狼算法的包圍和捕獵過程,例如,一次迭代后將得到第二狼群的位置,進入下一次迭代,從第二狼群中選出α、β和δ,指引第二狼群包圍獵物,再利用競爭策略和方向修正操作,協(xié)助狼群找到最優(yōu)位置,得到更新后的第二狼群,再利用更新后的第二狼群進行迭代,以此往復(fù),直到停止迭代。
步驟S123:從更新后的狼群中篩選出全局最優(yōu)個體,并將全局最優(yōu)個體所對應(yīng)的解確定為預(yù)設(shè)工程問題的最優(yōu)工程參數(shù)。
具體的,當達到最大迭代次數(shù)后,將輸出更新后的狼群,即最優(yōu)第二狼群,通過從更新后的狼群中,篩選出全局最優(yōu)個體,將全局最優(yōu)個體的位置,即全局最優(yōu)個體所對應(yīng)的解,確定為預(yù)設(shè)工程問題的最優(yōu)工程參數(shù)。
可見,本發(fā)明實施例在對狼群更迭過程中,還加入了競爭策略,即在更新后,計算更新前狼群和更新后狼群一一對應(yīng)的個體之間的適應(yīng)度,且適應(yīng)度高的個體才會保留下來,避免了采用更新后產(chǎn)生的偏離個體,使狼群始終保持自身歷史最優(yōu)位置,有效提高算法的收斂速度,同時,還利用縱橫交叉算法中的縱向交叉操作,對狼群進行方向修正,避免狼群出現(xiàn)嚴重的位置偏差,使狼群能夠自主修正前進狼群的方向,能夠向獵物聚集,協(xié)助部分維擺脫維局部最優(yōu)困境,避免狼群陷入局部最優(yōu)的可能性。
本發(fā)明實施例公開了一種具體的工程參數(shù)尋優(yōu)方法,相對于上一實施例,本實施例對技術(shù)方案作了進一步的說明和優(yōu)化。具體的:
上一實施例步驟S122中,對狼群進行任一次迭代更新的過程,包括:對狼群進行更新,得到中庸狼群,對狼群和中庸狼群中每個個體進行適應(yīng)度計算,從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,當滿足修正條件,則利用縱向交叉操作,修正第一狼群更新方向,得到修正后的中庸狼群,對第一狼群和修正后的中庸狼群中每個個體進行適應(yīng)度計算,從第一狼群中的個體和一一對應(yīng)的修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
本發(fā)明實施例中,上述對狼群進行任一次迭代更新的過程,具體包括:下面步驟S21至步驟S24:
步驟S21:對狼群進行更新,得到中庸狼群。
具體的,將α、β、δ和ω的位置代入距離向量公式和位置計算公式,以為計算出中庸狼位置做準備;其中,
距離向量公式為:
位置計算公式為:
式中,和分別為ω狼與α、β和δ之間的距離向量,和分別為α、β和δ的擺動因子向量,和分別為α、β和δ的目標位置,和分別為α、β和δ當前位置,為當前狼群所在位置,位置更新過程如圖2所示。
再利用更新公式,對狼群進行更新,得到中庸狼群;其中,
更新公式為:
式中,為中庸狼個體。
步驟S22:對狼群和中庸狼群中每個個體進行適應(yīng)度計算,從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群。
需要說明的是,中庸狼群相對于狼群更新前是位置發(fā)生改變的狼群,并沒有改變個體其他的屬性,因此,中庸狼群中的個體與更新前狼群中的個體保持著一一對應(yīng)關(guān)系,由于單純的加入隨機變量而更新的位置并不一定是最優(yōu)的,因此,采用競爭策略,利用目標函數(shù),對狼群和中庸狼群中每個個體進行適應(yīng)度計算,利用篩選公式從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群;其中,
篩選公式為:
式中,為中庸狼群中的個體,為第一狼群中的個體,為狼群中的個體,為中庸狼群中的個體的適應(yīng)度,為狼群中的個體的適應(yīng)度。
例如,狼群中第10個狼個體當前位置為5,狼群中第15個狼個體當前位置為14,更新后第10個狼個體和第15個狼個體改變其位置,并作為第10個中庸狼在中庸狼群中位置變更為9和第15個中庸狼在中庸狼群中位置變更為18,計算更新前后的適應(yīng)度,假設(shè)計算出的適應(yīng)度值為成本,位置為5時成本為20,位置為14時成本為40,位置為9時成本為30,位置為18時成本為35,第10個狼個體與其作為中庸狼時的位置的成本之間進行比較,選出成本最低的進行保留,第15個狼個體與其作為中庸狼時的位置的成本之間進行比較,選出成本最低的進行保留,因此,保留狼群中第10個狼個體的位置和中庸狼群中第15個中庸狼的位置,并作為第一狼群中的個體。
步驟S23:當滿足修正條件,則利用縱向交叉操作,修正第一狼群更新方向,得到修正后的中庸狼群的過程具體包括:步驟S231至S233。
步驟S231:對第一狼群中每個個體的維執(zhí)行歸一化操作。
具體的,利用歸一化公式,對第一狼群中每個個體的維執(zhí)行歸一化操作;其中,
歸一化公式為:
式中,D為維數(shù),為狼的第d維變量,為歸一化后所對應(yīng)的標量,max(d)和min(d)分別為狼群中第d維變量的上限和下限。
步驟S232:對第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足修正條件的配對維進行修正,得到修正后中庸狼個體標量的維,當不滿足修正條件,則不進行修正。
具體的,利用修正公式,對第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足服從正態(tài)分布的隨機參數(shù)rand小于預(yù)設(shè)修正概率pv的配對維進行修正,得到修正后中庸狼個體標量的維,對服從正態(tài)分布的隨機參數(shù)rand大于等于預(yù)設(shè)修正概率pv的配對維不進行修正,防止破壞正常的維;其中,隨機參數(shù)rand為0到1的隨機數(shù),
修正公式為:
式中d1,d2∈(1,D),r為0到1的隨機數(shù),為中庸狼個體標量的第d1維,和分別為個體標量的d1和d2維。
例如,一個個體中有10個維,1號到10號,隨機兩兩不重復(fù)配對,得到1號與3號、2號與6號、4號與5號、7號與10號和8號與9號五對維,即,第一對到第五對,五個配對維,判斷與每個配對維相應(yīng)的隨機參數(shù)rand是否小于預(yù)設(shè)修正概率pv,如,第一對、第三對和第四對各自的隨機參數(shù)rand小于預(yù)設(shè)修正概率pv,則將第一對、第三對和第四對維代入修正公式,對1號或3號、4號或5號和7號或10號進行修正,即,對第一對、第三對和第四對中各自的一個維,如,對第一對中的1號維、第三對中的5號維和第四對中的10號維進行修正,其中,第二對與第五對各自的隨機參數(shù)rand大于等于預(yù)設(shè)修正概率pv,則不用進行修正。
需要說明的是,每次方向修正操作只產(chǎn)生一維子代,利于協(xié)助部分維擺脫維局部最優(yōu)的同時避免破壞正常維,當然根據(jù)實際應(yīng)用需求,也可以產(chǎn)生多維子代,并從中進行篩選。
步驟S233:對修正后中庸狼個體標量的維進行反歸一化操作,得到修正后的中庸狼群。
具體的,利用反歸一化公式,對修正后中庸狼個體標量的維進行反歸一化操作,修正后中庸狼個體標量的維變?yōu)樾拚笾杏估莻€體的維,得到修正后的中庸狼群;其中,
反歸一化公式為:
式中,為修正后的中庸狼個體的第d維,為中庸狼個體標量的第d維。
步驟S24:對第一狼群和修正后的中庸狼群中每個個體進行適應(yīng)度計算,從第一狼群中的個體和一一對應(yīng)的修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
可以理解的是,修正前后也將得到兩個不同位置的狼群,因此,利用篩選公式,從第一狼群中的個體和一一對應(yīng)的修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
相應(yīng)的,本發(fā)明實施例還公開了一種工程參數(shù)尋優(yōu)系統(tǒng),參見圖3所示,該系統(tǒng)包括:
目標函數(shù)構(gòu)建模塊11,用于預(yù)先構(gòu)建與預(yù)設(shè)工程問題對應(yīng)的目標函數(shù);其中,目標函數(shù)對應(yīng)的解為d維的解,d為正整數(shù);
目標函數(shù)計算模塊12,用于在滿足目標函數(shù)的約束條件的前提下,利用新型灰狼算法對目標函數(shù)求解;
其中,目標函數(shù)計算模塊12包括:
狼群預(yù)設(shè)子模塊,用于預(yù)設(shè)狼群;其中,狼群包括M個個體,狼群中每一個個體均構(gòu)成目標函數(shù)的一個解,M為正整數(shù);
狼群迭代子模塊,用于對狼群進行S次迭代更新,得到更新后的狼群,S為正整數(shù);
參數(shù)確定子模塊,用于從更新后的狼群中篩選出全局最優(yōu)個體,并將全局最優(yōu)個體所對應(yīng)的解確定為預(yù)設(shè)工程問題的最優(yōu)工程參數(shù);
其中,狼群迭代子模塊對狼群進行任一次迭代更新的過程,包括:對狼群進行更新,得到中庸狼群,對狼群和中庸狼群中每個個體進行適應(yīng)度計算,從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群,當滿足修正條件,則利用縱向交叉操作,修正第一狼群更新方向,得到修正后的中庸狼群,對第一狼群和修正后的中庸狼群中每個個體進行適應(yīng)度計算,從第一狼群中的個體和一一對應(yīng)的修正后的中庸狼群的個體之間篩選出適應(yīng)度最高的第二組M個個體,得到第二狼群。
可見,本發(fā)明實施例在對狼群更迭過程中,還加入了競爭策略,即在更新后,計算更新前狼群和更新后狼群一一對應(yīng)的個體之間的適應(yīng)度,且適應(yīng)度高的個體才會保留下來,避免了采用更新后產(chǎn)生的偏離個體,使狼群始終保持自身歷史最優(yōu)位置,有效提高算法的收斂速度,同時,還利用縱橫交叉算法中的縱向交叉操作,對狼群進行方向修正,避免狼群出現(xiàn)嚴重的位置偏差,使狼群能夠自主修正前進方向,能夠向獵物聚集,協(xié)助部分維擺脫維局部最優(yōu)困境,避免狼群陷入局部最優(yōu)的可能性。
具體的,上述狼群迭代子模塊,可以包括更新單元、篩選單元、歸一化單元、修正單元和反歸一化單元:
更新單元,用于利用更新公式,對狼群進行更新,得到中庸狼群;其中,
更新公式為:
式中,為中庸狼個體,為α狼,為β狼,為δ狼。
篩選單元,用于利用目標函數(shù),對狼群和中庸狼群中每個個體進行適應(yīng)度計算,利用篩選公式從狼群中的個體和一一對應(yīng)的中庸狼群的個體之間篩選出適應(yīng)度最高的第一組M個個體,得到第一狼群;其中,
篩選公式為:
式中,為中庸狼群中的個體,為第一狼群中的個體,為狼群中的個體,為中庸狼群中的個體的適應(yīng)度,為狼群中的個體的適應(yīng)度。
歸一化單元,對第一狼群中每個個體的維執(zhí)行歸一化操作。
修正單元,用于對第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足修正條件的配對維進行修正,得到修正后中庸狼個體標量的維,當不滿足修正條件,則不進行修正。
反歸一化單元,用于對修正后中庸狼個體標量的維進行反歸一化操作,得到修正后的中庸狼群。
其中,上述歸一化單元,具體用于利用歸一化公式,對第一狼群中每個個體的維執(zhí)行歸一化操作;其中,
歸一化公式為:
式中,D為維數(shù),為狼的第d維變量,為歸一化后所對應(yīng)的標量,max(d)和min(d)分別為狼群中第d維變量的上限和下限。
上述修正單元,具體用于利用修正公式,對第一狼群中個體的所有維進行隨機兩兩不重復(fù)配對,并對滿足服從正態(tài)分布的隨機參數(shù)rand小于預(yù)設(shè)修正概率pv的配對維進行修正,得到修正后中庸狼個體標量的維;其中,隨機參數(shù)rand為0到1的隨機數(shù),
修正公式為:
式中d1,d2∈(1,D),r為0到1的隨機數(shù),為中庸狼個體標量的第d1維,和分別為個體標量的d1和d2維。
其中,每次方向修正操作只產(chǎn)生一維子代。
上述反歸一化單元,具體用于利用反歸一化公式,對修正后中庸狼個體標量的維進行反歸一化操作,得到修正后的中庸狼群;其中,
反歸一化公式為:
式中,為修正后的中庸狼個體的第d維,為中庸狼個體標量的第d維。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種工程參數(shù)尋優(yōu)方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。