丁立超,黃 楓,潘 偉
(陸軍炮兵防空兵學院士官學校,遼寧沈陽 110867)
炮兵火力分配是研究如何合理地下達炮兵射擊任務(wù),在最短時間內(nèi)對敵方進行最大打擊的過程。在這一過程中,炮兵火力是一定的,彈藥補給是一定的,物質(zhì)基礎(chǔ)是一定的,如何安排火力分配問題就變成約束條件下最優(yōu)化問題[1]。
由于混沌優(yōu)化算法的隨機性可以克服遺傳算法容易陷入局部最優(yōu)解的問題,其遍歷性可以改善遺傳算法的全局搜索能力。所以,將混沌優(yōu)化算法與遺傳算法相結(jié)合可以實現(xiàn)優(yōu)勢互補,提高遺傳算法的局部搜索能力,避免出現(xiàn)局部最優(yōu)解,有效避免遺傳算法“早熟”問題。文獻[2]系統(tǒng)論述了Logistic 映射性能,認為Logistic 映射對遺傳算法初始群體算法較為有效。文獻[3]對比了三種混沌映射,分別是Logistic 映射、Cat映射和Tent 映射,對它們的遍歷性、初值敏感性和Lyapunov指數(shù)等方面進行了分析,得出Cat映射更適合于為遺傳算法產(chǎn)生初始值。文獻[4]把混沌擾動加入到遺傳操作的交叉算子和變異算子中,提出了混沌交叉算子和混沌變異算子。文獻[5]提出了遺傳操作結(jié)束產(chǎn)生子代個體之后,在群體中添加混沌擾動,以期通過混沌擾動產(chǎn)生的個體中有更優(yōu)秀的個體出現(xiàn),加快尋優(yōu)進化速度,減少尋優(yōu)進化代數(shù),提高遺傳算法的搜索效率。
本文正是基于上述研究,把混沌變量應(yīng)用到遺傳算法中,構(gòu)建了一種基于改進混沌遺傳算法的炮兵火力分配新方法。
炮兵火力分配有諸多考慮因素,根據(jù)任務(wù)不同分配原則也會存在差異,但就普遍情況來看,以下指標必須保證。(1)最理想的打擊效果;(2)最重要的射擊目標;(3)同一時刻只能打擊一個目標,即同一時刻每個火力單位只能攻擊一個目標;(4)不同時刻,相同的火力單位可以攻擊不同目標,即從第二輪攻擊之后的多輪攻擊可以更改打擊目標;(5)當敵少我多時,火力單元優(yōu)先打擊價值高的目標;(6)以上假設(shè)無條件成立。
(1)目標分配變量:xij
假設(shè)需打擊目標數(shù)目為n,我方的火力單位數(shù)目為m,第i個炮兵火力單位對第j個需打擊目標記為xij,于是可以得到
(2)目標價值變量:vj
(3)火力單位相關(guān)矩陣為
矩陣中uij表示匹配系數(shù)。
(4)目標價值矩陣:Vij
Vij表示第i個炮兵火力單位對第j個需打擊目標的價值矩陣,Vij表示為
(5)射擊毀傷概率:fij
其中,0≤fij≤1,fij為第i個炮兵火力單位對第j個需打擊目標的毀傷概率。當fij為0時,則表明沒有打擊行為。
(6)最優(yōu)火力選擇模型
在編碼方式上本文采用實數(shù)編碼[6]。傳統(tǒng)的二進制編碼,染色體的長度與解向量是一一對應(yīng)的,一個基因?qū)?yīng)一個解向量的分量。實數(shù)編碼在基因型空間和表現(xiàn)型空間中是一致的,可以避免編碼解碼帶來的計算誤差和時間浪費。另外,實數(shù)編碼在不犧牲計算精度的前提下擴大了編碼范圍,對于具有約束條件的優(yōu)化問題最為有效。
遺傳算法來源于達爾文的生物進化論,本身對自然界和外部環(huán)境要求較低,一切最優(yōu)化的評價標準和判斷方法只需要計算適應(yīng)度函數(shù)就可以得出。因此,適應(yīng)度函數(shù)的選擇恰當與否,決定了算法在優(yōu)化時效率上的高低。對于經(jīng)典遺傳算法的適應(yīng)度函數(shù),在搜索初期,對于突出個體無法進行,導致突出個體把整個搜索過程帶入局部最優(yōu)而無法突破;在搜索后期,適應(yīng)度函數(shù)高度一致,交叉和變異無力跳出局部范圍,導致算法陷入局部最優(yōu)。這主要是由于適應(yīng)度函數(shù)直接被選中作為目標函數(shù),雖然它們能夠直接表現(xiàn)出對優(yōu)化變量的適應(yīng)性,但帶來上述缺陷也是必然的。
對于炮兵火力分配的染色體適應(yīng)度函數(shù),應(yīng)該綜合考慮需打擊目標和現(xiàn)有火力單位的情況來確定,因此適應(yīng)度函數(shù)選擇公式(6)中最優(yōu)火力選擇模型作為目標函數(shù),然后對目標函數(shù)進行如下改進,得到新的適應(yīng)度函數(shù),即
其中,F(xiàn)為改進后的適應(yīng)度函數(shù)值,f(X)為目標函數(shù)值,λ為特定參數(shù)。
經(jīng)典遺傳算法操作使用的是輪盤賭選擇,這種方式簡單而且容易提取適應(yīng)度函數(shù)值高的個體。但這種方式也有缺點,就是當種群中出現(xiàn)突出個體時,極易使搜索陷入局部最優(yōu)解,而且由于適應(yīng)值函數(shù)值高的個體選擇性強,會更多地遺傳到下一代,于是在交叉操作時,兩個相同的個體容易產(chǎn)生無用的交叉操作,這樣便降低了搜索的效率。本文在輪盤賭選擇的基礎(chǔ)之上,提出了“輪盤賭+微變異”。所謂的“微變異”是指,將復(fù)制之后的個體,進行小概率的變異,變異方式為添加混沌擾動。這樣做在一定程度上減少了由于選擇操作帶來的“早熟”,同時也降低了相同個體之間交叉的概率?!拔⒆儺悺庇上率酱_定,即
其中,X′n為新的個體,Xn為當前個體,β為混沌擾動算子,α為人工退化的影響因子,size為種群規(guī)模,L為個體長度。
本文基于文獻[7],提出一種改進的自適應(yīng)交叉算子,該算子滿足搜索算法的兩個趨勢。一是隨著進化進程的推進,算法需要快速收斂,全局搜索的需求降低,此時的交叉算子應(yīng)逐漸減??;二是對于適應(yīng)度函數(shù)值高于當代平均適應(yīng)度函數(shù)值的個體(假設(shè)優(yōu)化問題求最大值),說明該個體因優(yōu)秀更需要被保留,此時的交叉算子也應(yīng)該逐漸減小。因此,改進的自適應(yīng)交叉算子既與進化的代數(shù)有關(guān),又與相應(yīng)代中的適應(yīng)度函數(shù)值有關(guān);既要增加個體的多樣性,又要利于快速搜索尋求到最優(yōu)解。
本文改進的自適應(yīng)交叉算子如下:
其中,f= max (fn,fn+1),交叉算子最大值、最小值分別為Pcmax= 0.9,Pcmin= 0.6,ρ=Pcmax-Pcmin。
交叉方式為
其中,γ為系統(tǒng)產(chǎn)生的(0,1)之間隨機數(shù)。
本文提出的改進自適應(yīng)變異算子的思路與上述改進自適應(yīng)交叉算子一致,也是既考慮了進化代數(shù)的影響,又考慮了個體適應(yīng)度函數(shù)值的大小。與進化代數(shù)有關(guān)是指由于到了搜索后期,主要是防止陷入局部最優(yōu)解,此時的變異算子應(yīng)隨著代數(shù)的增加而逐漸加大,以便搜索算法能跳出局部最優(yōu)。與個體適應(yīng)度函數(shù)值有關(guān)是指當大于平均適應(yīng)度函數(shù)值時,加大變異算子,這樣就增加了個體的多樣性,解決了算法后期搜索乏力的問題。基于經(jīng)典實數(shù)遺傳算法中的變異算子,本文提出了改進自適應(yīng)變異算子,即
其中,變異算子最大值、最小值分別為Pmmax= 0.01
參數(shù)變異方式為
其中,β為混沌系統(tǒng)產(chǎn)生的(0,1)之間隨機數(shù)。
經(jīng)過遺傳操作之后,對種群中適應(yīng)度函數(shù)值高的個體進行保留,對低的個體進一步進行混沌優(yōu)化處理。這樣做可以增加種群基因多樣性,使種群不易陷入局部最優(yōu)解。同時,添加混沌優(yōu)化可能使個體更加接近最優(yōu)解,也減少了進化的代數(shù)。本文采取的混沌優(yōu)化迭代公式為Tent映射,該映射公式如下:
公式(13)中的ν在(1,2) 之間時,Tent 具有混沌效應(yīng),而且混沌效果隨著ν增加而增強,故本文將ν設(shè)置為2 - 10-5(對Tent 迭代公式計算10000 次,記錄每個點所在位置)。
混沌優(yōu)化的添加方式如式(14)所示:
其中,Xmax,Xmin分別表示個體上限和下限。
以經(jīng)典遺傳算法的流程為基本流程,對種群選擇操作后最好的個體進行混沌“微變異”優(yōu)化,以防止早期就出現(xiàn)適應(yīng)度函數(shù)值高的個體而導致整個種群形成局部最優(yōu),再以改進自適應(yīng)交叉算子和變異算子進行遺傳操作,以防止算法進化初期停滯不前,進化后期卻陷入局部最優(yōu)而快速收斂的缺點,為了實現(xiàn)混沌優(yōu)化,此處引入種群早熟判定標志ε。
經(jīng)計算第t代種群適應(yīng)度函數(shù)的平均值為,其中為第t代種群中第i個個體的適應(yīng)度函數(shù)值,N為種群規(guī)模。最優(yōu)個體的適應(yīng)值函數(shù)值為,所有大于的個體適應(yīng)值函數(shù)值再求平均值得到。令
因此,ε小于某一閾值ε*時,種群中最大適應(yīng)度個體與大于種群平均適應(yīng)度個體的平均值接近,也就是說,個體的適應(yīng)度值存在高度一致性,此時存在早熟風險。
算法具體實現(xiàn)流程如下:
Step1設(shè)定初始參數(shù):種群規(guī)模N,混沌優(yōu)化步長的調(diào)節(jié)參數(shù)φ,最大進化代數(shù)G;
Step2計算種群中每個個體的適應(yīng)度函數(shù)值及對應(yīng)的早熟判定標志ε;
Step3條件判斷,當ε≤ε*且進化代數(shù)大于最大進化代數(shù)的一半,則對種群進行混沌優(yōu)化;否則,轉(zhuǎn)Step4執(zhí)行。
Step4選擇操作:根據(jù)式(8)完成混沌“微變異”計算;
Step5根據(jù)式(9-10)計算改進自適應(yīng)交叉概率和改進自適應(yīng)變異概率;
Step6進行遺傳操作;
Step7判斷是否滿足終止條件,不滿足轉(zhuǎn)Step2;否則算法終止,返回當前最優(yōu)解。
當滿足最大遺傳代數(shù)G或者適應(yīng)度函數(shù)值小于一個適當小的正數(shù)e時,遺傳操作終止。
停止遺傳操作后,適應(yīng)度函數(shù)值最大的染色體即為所求的解,其對應(yīng)的即是炮兵火力分配優(yōu)化方案。
假設(shè)需打擊目標數(shù)為6,我方炮兵火力單位為4。需打擊的6個目標分別為支撐點(j1,j2)、指揮所(j3)、輕型坦克(j4)、地面雷達站(j5),車載自行火炮(j6)。根據(jù)目標的重要程度,車載自行火炮需要3 個火力單位進行打擊,其他需打擊目標只需要1個火力單位。
利用文獻[8]提供的數(shù)據(jù),可以得到表1和表2。
表1 目標價值系數(shù)表Tab.1 Target value coefficient table
表2 火力目標相關(guān)矩陣Tab.2 Fire target correlation matrix
表1-2 中i,j分別表示我方火力單位和敵方目標。根據(jù)公式V(m×n)=U(m×n)· diag(Vt),計 算 出 目 標 價 值矩陣V(m×n)。
根據(jù)式(5)計算可得到表3。
表3 毀傷概率矩陣Tab.3 Damage probability matrix
其中,i,j分別表示我方火力單位和敵方目標。
采用本文提出的混沌遺傳算法,經(jīng)過計算得到如下仿真結(jié)果,如表4所示。
表4 仿真結(jié)果Tab.4 Simulation result
從仿真結(jié)果可以看出,炮兵部隊要完成此次任務(wù),需分兩輪進行攻擊,第一輪攻擊對象為目標j1和目標j6,第二輪攻擊對象為目標j2、j3、j4、j5。該結(jié)果是綜合了目標的性質(zhì)、目標價值和毀傷概率等綜合因素的最優(yōu)結(jié)果,與實際情況相符,證明了算法的有效性。
炮兵火力分配是一種約束條件下的最優(yōu)化求解過程,是炮兵戰(zhàn)術(shù)行動的核心部分,關(guān)系到炮兵能否完成賦予的打擊任務(wù)。雖然經(jīng)過多年發(fā)展,方法眾多,但各種方法各有利弊,都無法保證可以得到最優(yōu)方案?;诟倪M混沌遺傳算法的炮兵火力分配模型,既利用了混沌算子的隨機性和遍歷性,又利用了遺傳算法的全局搜索能力,克服經(jīng)典遺傳算法易陷入局部最優(yōu)解的局限性,為解決炮兵火力分配問題提供新思路,對于炮兵作戰(zhàn)的火力規(guī)劃,快速得到較優(yōu)的火力分配方案,提供了可靠的手段。