伍曉龍,楊 悅,盧慧敏
(海軍大連艦艇學院,遼寧 大連 116018)
火力分配是兵力對抗的核心內容,構建合理科學的火力分配模型以及尋求相應的求解方法十分關鍵。該類問題屬于經典的多目標規(guī)劃問題,解決該類問題的方法一般有神經網絡算法[1]、動態(tài)規(guī)劃法[2]和遺傳算法[3-4]等。但在兵力對抗中,戰(zhàn)場實時因素考慮較多,實際火力打擊策略往往不能夠按照預期進行,在火力打擊的過程中,誤差是不可避免的。謝峰[3]采用并列式遺傳算法,提高了搜索的速度;曲相宇[4]對遺傳算法中的選擇排序環(huán)節(jié)進行了創(chuàng)新,能夠更好地判斷策略的優(yōu)劣。上述文獻中均假設火力單元彈藥充足,但是實際中火力單元彈藥儲備是有限的,火力單元在攔截目標時可能存在失誤的情況,目標的適應度函數不能很好地反映存在失誤的情況下火力打擊分配策略的優(yōu)劣。本文考慮誤差因素,提出一種結合容錯控制的火力分配最優(yōu)化策略,在保證整體策略的最優(yōu)化的同時,能通過自適應容錯控制律,實現整體策略的容錯度最大化。
火力分配應充分考慮各種武器的毀傷效率、目標的易損性和毀傷等級。現代戰(zhàn)爭中,既要考慮打擊目標的毀傷程度,又需要綜合考慮攔截目標的威脅程度,以此來判斷火力打擊的優(yōu)先等級[5]。除此之外,考慮火力單元彈藥儲備是有限的,火力單元未能攔截目標等實際情況,故火力分配策略上存在一定失誤概率。
假設m個艦艇組成的編隊(m個火力單元組成的火力單元集)對n批目標進行攔截。在攔截前已經對各批目標的價值、目標的威脅度、各個火力單元對攔截各批目標的射擊有利程度、各個火力單元對攔截目標的命中概率做了量化處理,并且各個火力單元的彈藥儲備已知。第j批目標對第i個火力單元的價值評估為wij,第j批目標對第i個火力單元威脅評估值為tij,第i個火力單元對第j批攔截目標射擊有利程度估計值為pij,第i個火力單元對第j個攔截目標的攔截概率為qij。
因此效益值為:
cij=wijpijqij
(1)
eij=tij(1-qij)pij
(2)
式中,cij為第i個火力單元攔截第j批目標時的收益大小;eij為第i個火力單元攔截第j批目標時的威脅程度大小。
1.2.1 高威脅目標優(yōu)先攻擊原則
在火力對抗過程中,保證我方艦艇作戰(zhàn)能力,實現持續(xù)作戰(zhàn)是一個關鍵的問題。因此,當出現高威脅目標時,編隊將進行優(yōu)先打擊。
打擊優(yōu)先級與威脅程度關系如下:
(3)
對于高威脅目標,將由射擊有利程度最高的艦艇進行打擊。
1.2.2 高效益目標集火攻擊原則
在火力對抗過程中,在火力盈余的情況下針對高效益目標采取集火攻擊原則,對于高效益目標評價標準如下:
(4)
集火攻擊均是在火力盈余的情況下進行考慮的內容,因此定義高效益目標與一般效益目標如下:
當A>2.0時,為高價值目標,對于該目標分配3個火力單元,一般而言,高價值目標個數不超過總目標個數的10%。
當2.0≥A>1.5時,為中價值目標,對于該目標分配2個火力單元,一般而言,中價值目標個數不超過總目標個數的15%。
其余目標為一般價值目標,對于該目標分配1個火力單元。
1.2.3 整體分配最優(yōu)原則
分配目標時應當充分考慮火力打擊的整體協(xié)同優(yōu)勢,使整體的打擊效果達到最佳的同時,也要保證整體受到的威脅程度最小。
艦艇火力分配原則應滿足:
1)對敵火力打擊效益值最大;
2)我方受到威脅程度最小。
可建立如下多目標規(guī)劃問題:
(5)
式中,vij=1為第i個火力單元對第j批目標進行攔截,vij=0為第i個火力單元未對第j批目標進行攔截。
限制條件為:
(6)
(7)
式(6)表示每批目標分配M個火力單元,式(7)表示每個火力單元最多只能射擊Si批目標。
該問題是多目標優(yōu)化問題,考慮攔截概率,通常采用平均最優(yōu)分配方法,得到平均的最優(yōu)值。受攔截概率的影響,實際情況與理想方法會有一定偏差,本文考慮攔截概率的影響,在部分火力單元未完成攔截任務時,能夠及時采取反應,最大程度降低失誤帶來的損失。
火力打擊單元的火力打擊分配方案在進化算法中可以視作一個基因,在容錯控制系統(tǒng)中可以視作一個執(zhí)行器,例如一艘艦艇計劃攻擊序列1和序列3的目標,則其對應的火力分配策略為[1 3],如果由于失誤導致該艘艦艇未能打擊序列3的目標,則認為該艘艦艇的第2個火力打擊單元發(fā)生失誤(序列3位于策略的第2位)。
以此類推,若第i個火力打擊單元發(fā)生失誤,可以視為第i個執(zhí)行器發(fā)生故障。
針對容錯控制系統(tǒng):
(8)
第i個執(zhí)行器故障形式為
ui=σiμci
(9)
式中,ui為第i個執(zhí)行器實際輸出,μci為第i個執(zhí)行器的理想控制輸入,0≤σi≤1為執(zhí)行器失效的程度。
針對火力分配的實際情況,制訂如下容錯控制原則:
1)第i個執(zhí)行器發(fā)生故障時,只能從第i+1個執(zhí)行器及以后進行補償,即當某個火力打擊單元發(fā)生故障時,調用其他火力打擊單元進行補償。
2)為避免失誤過多打亂原本的作戰(zhàn)計劃,盡可能通過提高單個執(zhí)行器補償幅度進行容錯控制,即通過提高單個火力單元的作戰(zhàn)效能進行補償,而非過多改變原有計劃。
火力分配問題屬于決策優(yōu)化問題,在進行火力分配時,需要根據各火力單元以及攔截目標的具體情況進行決策。實際戰(zhàn)場中攔截失誤是經常出現的,因此火力分配策略在滿足毀傷效能最優(yōu)化的同時,也需要保證較大的容錯度,具有較大容錯度的火力分配策略更加符合戰(zhàn)場需要。
本文構建的基于容錯控制的火力分配策略,是結合分布式遺傳進化原理和自適應容錯控制理論的分配策略。種群在各自環(huán)境中得到進化的優(yōu)秀子代種群合并后,會產生容錯度和適應值都較高的下一代。將每一種體能分配策略視作一個系統(tǒng),制定相應的容錯控制律,評估系統(tǒng)在出現誤差時的恢復與補償情況。接下來給出具體算法。
編碼是遺傳空間到問題空間的映射?;鹆Υ驌糁?艦艇需要進行火力分配的火力單元較多,為了能夠更加清晰地反映火力分配方案,本文采用十進制編碼方式,染色體的長度由艦艇的具體火力單元數量決定,基因則代表火力分配方案。例如3個艦艇分別具有不同數量的火力單元,數量分別為1、2、3,當有4個攔截目標時,染色體編碼為[1 2 0 0 4 3]代表一種火力分配方式,第1艘艦艇的火力單元為[1],即第1艘艦艇的第1個火力單元打擊序列1的攔截目標,第2艘艦艇的火力單元為[2 0],即第2艘艦艇的第1個火力單元打擊序列為2的攔截目標,第2個火力單元沒有打擊目標,第3艘艦艇的火力單元為[0 4 3],即第3艘艦艇的第1個火力單元沒有打擊目標,第2個火力單元打擊序列為4的攔截目標,第3艘艦艇的第3個火力單元打擊序列為3的攔截目標。
根據目標函數類別進行分組,產生相應的子種群,使各子種群能夠同步進行尋找最優(yōu)解。本文主要根據打擊效益和威脅程度進行尋優(yōu),因此將初始種群分成兩個子種群。
本文采用隨機多點間基因互換進行交叉,有效提高算法收斂的速度。對于產生的個體,直接用子代替代父代,容易出現局部過早收斂的情況。本文引入模擬退火算法進行改進,通過合理的降溫途徑,在迭代的前中期保留一定的“潛力解”,一定程度上提升了算法全局搜索能力,避免產生局部最優(yōu)解[6]。
傳統(tǒng)的遺傳算法一般采用固定變異概率,本文為了增大搜索范圍,減少搜索時間,采用可變的自適應概率變異方法。在迭代的初期具有較大的變異概率,保證個體的多樣性;在迭代后期具有較小的變異概率,保證算法盡快收斂[7]。自適應變異概率公式為
(10)
式中,Pk表示第k代變異概率;Pmax和Pmin分別表示最大和最小變異概率;Kmax表示最大迭代次數。
為防止當前群體的最優(yōu)個體在下一代丟失,并且增加遺傳算法的收斂速度,將上一代群體中的最優(yōu)個體不進行交叉變異操作直接遺傳到下一代。本文采用自適應的精英策略,在迭代的初期,精英個體保留數量較少,在迭代的后期,精英個體保留的數量會增多[8]。自適應精英策略的保留公式為
(11)
式中,Jk表示第k代精英個體的保留個數;Jmax和Jmin分別表示最大和最小變異概率;Kmax表示最大迭代次數。
當遺傳算法確定初步最優(yōu)策略后,可以將火力部署策略視作完整系統(tǒng),攔截失誤可以視作對系統(tǒng)產生的擾動。通過制定容錯控制律,盡可能將擾動所帶來的損失降到最小,同時將補償代價降到最低[9]。
為適當簡化模型,做如下假設:
1)每次實驗出現至多兩次失誤;
2)失誤概率能夠根據實際情況具體給出,在整體建模過程中不再變化;
3)優(yōu)先選擇空余且效益值和威脅值最接近失誤單元的火力單元。
制定容錯控制律[10]如下:
Δm=ma-mb
(12)
(13)
式中,Δm表示出現失誤時,理想情況與實際情況差值;ma表示理想情況下適應值;mb表示實際情況適應值;Δ(wijxij)表示第i個火力單元攔截第j個目標時,后續(xù)執(zhí)行器與失誤執(zhí)行器差值,式(13)表示第k個執(zhí)行器失誤時,后續(xù)執(zhí)行器補償情況。
當制定初始最優(yōu)策略后,會進行100次容錯實驗,以此評估策略的優(yōu)劣,同時得到相應的補償方案。具體的算法流程圖見圖1。
圖1 算法流程圖Fig.1 Algorithm flow chart
為了驗證模型的可靠性和合理性,假設我方艦艇數量為7艘,每艘艦艇各有兩個火力單元,敵方需要攔截的目標有10個,將有4個單元的火力盈余,我方艦艇對各目標的射擊有利程度、威脅程度、目標價值、攔截概率如表1~表4所示。
表1 射擊有利程度Tab.1 Shooting advantage
表2 威脅程度Tab.2 Threat level
表3 目標價值Tab.3 Target value
表4 攔截概率Tab.4 Interception probability
對上述信息進行分析處理,得到目標的打擊次序為[4 9 8 1 5 3 2 6 10 7],其中效益目標為5和3。
采用分布式遺傳算法求解該問題,遺傳算法中個體數量為100,將種群分為兩個子種群,最大遺傳次數為100次,采用多點隨機交叉,初始交叉概率為0.85,初始退火溫度為1 000度,最大變異概率為0.1,最小變異概率為0.01,最大精英個體保留個數為10個,最小精英個體保留個數為5個。
迭代100次后,我方收益—迭代次數函數圖見圖2,威脅程度—迭代次數函數圖見圖3,我方凈收益—迭代函數圖見圖4,最終種群函數值變化見圖5。圖2、圖3、圖4中,種群在86代后能夠迭代到最優(yōu)值且趨于穩(wěn)定,其中目標收益最大值為34 125,威脅程度最小值為4 847,凈收益最大值為29 278。由圖5可以看出,最終種群中個體完全相同,達到了目標收益最大值和威脅程度最小值。
圖2 收益—迭代函數圖Fig.2 Revenue iteration function
圖3 威脅程度—迭代函數圖Fig.3 Threat level-iterative function
圖4 凈收益—迭代函數圖Fig.4 Net income iterative function
圖5 個體函數值變化圖Fig.5 Individual function value change
初步得到目標分配方案如表5所示。
表5 目標分配方案Tab.5 Target allocation scheme
得到初步方案后,分別考慮攔截失誤一次和兩次的情況,以此來驗證容錯控制的可靠性。
存在一次失誤時,進行100次重復實驗,進行容錯控制之后,收益前后對比圖見圖6,威脅前后對比圖見圖7,分析可得,容錯控制能夠最大程度地減少收益損失,最小程度地提升威脅程度,能夠體現容錯控制的效果較好。
圖6 一次失誤時容錯控制后目標收益圖Fig.6 Target income after fault-tolerant control in case of one fault
圖7 一次失誤時容錯控制后威脅程度圖Fig.7 Threat degree diagram after fault tolerance control in case of one fault
存在兩次失誤時,進行100次重復實驗,進行容錯控制之后,收益前后對比圖見圖8,威脅前后對比圖見圖9,分析可得,容錯控制后能夠保證前后目標收益差值最小,前后威脅程度差值最小,也反映了容錯控制效果較好。
圖8 兩次失誤時容錯控制后目標收益圖Fig.8 Target income diagram after fault-tolerant control in case of two faults
圖9 兩次失誤時容錯控制后威脅程度圖Fig.9 Threat degree after fault tolerance control in case of two faults
本文結合遺傳算法與容錯控制理論對火力打擊問題進行求解,該算法的優(yōu)點在于考慮了攔截失誤的情況,能夠更好地反映戰(zhàn)場真實情況。在遺傳算法中結合了模擬退火算法和精英策略,大大增強了算法的高效性和收斂性。最后的仿真結果表明,該算法可靠有效,對解決火力分配問題具有一定的實際意義。