孟慶林,陳 健,毛建舟
(海軍大連艦艇學(xué)院,遼寧 大連 116018)
目前,案例推理技術(shù)已經(jīng)逐步應(yīng)用于艦艇編隊作戰(zhàn)決策系統(tǒng)設(shè)計,它能夠很好地處理海上作戰(zhàn)指揮過程中的不良結(jié)構(gòu)決策問題,為艦艇編隊作戰(zhàn)決策提供了新思路。但是,將歷史案例直接應(yīng)用于決策問題時還存在不適宜的情況,如何將案例檢索中相似度不高的案例調(diào)整為適合當(dāng)前態(tài)勢的決策是案例調(diào)整的關(guān)鍵。目前,案例調(diào)整的主要方法分為3種:(1)基于統(tǒng)計型的調(diào)整方法[1],存在調(diào)整能力有限,誤差過大的問題;(2)案例推理和規(guī)則推理相結(jié)合的調(diào)整方法[2-3],大量規(guī)則由領(lǐng)域?qū)<抑贫?,存在不夠客觀、規(guī)則庫龐大等問題;(3)基于機器學(xué)習(xí)的調(diào)整方法[4-6],樣本需求大、計算量大,且僅能處理數(shù)值型數(shù)據(jù)。鑒于海上編隊作戰(zhàn)決策具有態(tài)勢屬性多、數(shù)據(jù)類型豐富的特點,使用以上方法不能很好地解決編隊作戰(zhàn)案例的調(diào)整問題。
本文運用數(shù)據(jù)挖掘中多值關(guān)聯(lián)規(guī)則算法挖掘作戰(zhàn)案例中的潛在知識,建立相應(yīng)的關(guān)聯(lián)規(guī)則庫,根據(jù)編隊作戰(zhàn)特點制定消解沖突規(guī)則的方法,解決了案例調(diào)整時的規(guī)則沖突問題,避免了領(lǐng)域?qū)<以O(shè)置決策規(guī)則偏主觀、工程量大的問題,也彌補了機器學(xué)習(xí)類方法僅能調(diào)整數(shù)值型數(shù)據(jù)的局限。通過仿真實驗,證明該方法是有效的。
案例表示是案例推理的基礎(chǔ),編隊作戰(zhàn)案例形式如表1所示,{C1,C2,…,Ch}為歷史案例庫,Co為目標案例,也即待決策的問題;P={P1,P2,…,Pn},為編隊作戰(zhàn)案例的態(tài)勢屬性;S={S1,S2,…,Sm}為編隊作戰(zhàn)案例的決策屬性。Ci={P,S}={xi1,xi2,…,xin;yi1,yi2,…,yim}表示某一個完整的作戰(zhàn)案例,xin為第i個案例中第n個態(tài)勢屬性,yim為第i個案例中第m個決策屬性,xin、yim可以是具體屬性值也可以是具體屬性的分類。態(tài)勢屬性主要為艦艇類型、艦艇數(shù)量、編隊類型,決策屬性主要為編隊前出接敵的展開方式、攻擊目標、編隊發(fā)射導(dǎo)彈數(shù)量等。
表1 編隊作戰(zhàn)案例
關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘中的經(jīng)典算法,它能很好地發(fā)現(xiàn)數(shù)據(jù)之間的潛在關(guān)系。如果能挖掘編隊作戰(zhàn)案例中態(tài)勢屬性和決策屬性之間的關(guān)系,就能利用挖掘的知識為編隊作戰(zhàn)決策提供依據(jù),同時也可用于調(diào)整編隊作戰(zhàn)案例。
R.Agrawal提出關(guān)聯(lián)規(guī)則并創(chuàng)立了經(jīng)典的Apriori算法[7],為數(shù)據(jù)挖掘奠定了理論基礎(chǔ)。
關(guān)聯(lián)規(guī)則的核心是從大量非相關(guān)數(shù)據(jù)中挖掘數(shù)據(jù)中的潛在知識,它是逐步掃描滿足支持度和置信度閾值的迭代算法。其主要分為2步:(1)通過掃描、計算、產(chǎn)生頻繁項集、連接及剪枝等步驟產(chǎn)生候選項集,進而尋找所需的頻繁項集,重復(fù)上述步驟,直到不能產(chǎn)生更大的頻繁項集為止;(2)產(chǎn)生關(guān)聯(lián)規(guī)則結(jié)果,對于每個頻繁項集,計算其置信度,輸出大于最小置信度閾值的關(guān)聯(lián)規(guī)則。
關(guān)聯(lián)規(guī)則的邏輯形式為X?Y。
支持度為屬性X在數(shù)據(jù)庫中出現(xiàn)的頻率:
Dsupport(X)=P(X)
(1)
置信度(信任度)為屬性Y在屬性X的條件下出現(xiàn)的頻率:
(2)
提升度用于判斷挖掘的規(guī)則是否有用,大于1時,認為關(guān)聯(lián)規(guī)則X?Y可信度較高:
(3)
多值關(guān)聯(lián)規(guī)則(Q-Apriori)是在Apriori算法上的延伸,由于Apriori算法主要用于挖掘布爾型關(guān)聯(lián)規(guī)則[8],對于數(shù)據(jù)集中每種屬性含有不同數(shù)值時,Apriori算法則無法處理,一般會將多值數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù),再使用Apriori算法。在編隊作戰(zhàn)案例中,每種態(tài)勢屬性可能有不同的值,顯然是多值數(shù)據(jù),如果將多值數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù),勢必會導(dǎo)致頻繁項集的數(shù)量呈指數(shù)增加,進而加大計算量。因此,重點是將多值關(guān)聯(lián)規(guī)則改進為適合編隊作戰(zhàn)的案例。
在編隊作戰(zhàn)案例中,多值數(shù)據(jù)存在明顯的從屬關(guān)系、因果關(guān)系,并且絕大多數(shù)屬性值不大于5、分類屬性可列舉且不大于10,例如編隊中同種軍艦的數(shù)量、編隊的類型?;谏鲜鎏攸c,無需將多值數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù),而是在Apriori算法的基礎(chǔ)上,通過優(yōu)化確定頻繁項集的剪枝環(huán)節(jié),減少大量非必要的運算,實現(xiàn)挖掘多值數(shù)據(jù)之間的關(guān)聯(lián)規(guī)則。
在挖掘關(guān)聯(lián)規(guī)則時,會形成大量頻繁項集,由于相同屬性的不同數(shù)值構(gòu)成的頻繁項集無意義、只含有條件屬性或者決策屬性的頻繁項集也無意義,所以在剪枝環(huán)節(jié)中刪除上述可能的候選頻繁項集,減少生成頻繁項集的數(shù)量,避免無用的運算。例如候選頻繁項集:{驅(qū)逐艦-2,驅(qū)逐艦-1,導(dǎo)彈發(fā)射-8},因同一候選頻繁項集中,同種屬性包含了不同值,在案例中不可能存在,它是支持度為0的無效候選集,應(yīng)刪除。
此外,由于導(dǎo)彈發(fā)射數(shù)量比較離散,不利于挖掘{態(tài)勢屬性}?{導(dǎo)彈發(fā)射數(shù)量}的關(guān)聯(lián)規(guī)則,因此,需將導(dǎo)彈發(fā)射數(shù)量(決策屬性)進行等距轉(zhuǎn)換,從而挖掘到更加全面的關(guān)聯(lián)規(guī)則。等距轉(zhuǎn)換公式為:
(4)
改進的多值關(guān)聯(lián)規(guī)則算法流程如圖1所示。
圖1 多值關(guān)聯(lián)規(guī)則流程圖
編隊作戰(zhàn)案例調(diào)整分為3步,如圖2所示。(1)編隊作戰(zhàn)案例庫中挖掘關(guān)聯(lián)規(guī)則(第2節(jié)),建立相應(yīng)的規(guī)則庫;(2)依據(jù)當(dāng)前態(tài)勢,檢索案例庫,得到最相似的案例,判斷相似度是否大于閾值,大于閾值時,直接使用檢索的案例作為當(dāng)前態(tài)勢的解決方案;小于閾值時,進入案例調(diào)整階段;(3)依據(jù)當(dāng)前態(tài)勢遍歷已挖掘的規(guī)則庫,將與當(dāng)前態(tài)勢相匹配的規(guī)則用以調(diào)整案例,當(dāng)匹配的規(guī)則存在沖突時,根據(jù)編隊作戰(zhàn)特點制定相應(yīng)的消解方法,從而解決了規(guī)則沖突問題,保障案例調(diào)整的可靠性。關(guān)聯(lián)規(guī)則對案例的調(diào)整原則:和當(dāng)前態(tài)勢相匹配的規(guī)則生成相應(yīng)的決策,將該決策替換原案例中相應(yīng)的決策,對原案例中未調(diào)整的部分保留。
圖2 案例調(diào)整過程
基于案例推理的編隊作戰(zhàn)決策,首先就是案例檢索,案例檢索的閾值為0.9,保證能夠檢索到足夠相似的案例,單個屬性的相似度計算公式為:
(5)
式中:xhi為第h個案例中的i個屬性值;xoi為當(dāng)前態(tài)勢的i個屬性值。
全局相似度計算公式為:
(6)
式中:Ch,Co分別表示歷史案例和目標案例;wi為對應(yīng)特征屬性的權(quán)重,和為1;Ds(Ch,Co)為全局相似度,值越大,案例相似度越高。
在利用挖掘的關(guān)聯(lián)規(guī)則制定決策時,關(guān)聯(lián)規(guī)則之間可能存在沖突,使得無法制定有效的決策。為了保障決策的可靠性,需要進一步消解規(guī)則之間的沖突。
3.2.1 關(guān)聯(lián)規(guī)則沖突情況
同種決策屬性存在決策的具體值不同的情況,這就造成了規(guī)則沖突,例如:
規(guī)則1表示決策屬性D1屬性值為1,規(guī)則2表示決策屬性D1屬性值為2。當(dāng)條件同時滿足規(guī)則1和規(guī)則2時,結(jié)果卻產(chǎn)生了沖突。為了保證決策的可靠性,制定了符合編隊作戰(zhàn)決策的沖突規(guī)則消解方法。
3.2.2 沖突關(guān)聯(lián)規(guī)則的具體解決方法
在海上編隊作戰(zhàn)時,遵守一個戰(zhàn)斗原則:集中核心力量消滅敵方核心兵力部署。此外,研究發(fā)現(xiàn)我方兵力與兵力展開類型呈正相關(guān),敵方兵力與我方?jīng)Q定的攻擊目標和導(dǎo)彈發(fā)射數(shù)量呈正相關(guān)?;谏鲜?點原因,現(xiàn)做出消解沖突規(guī)則的方法。
方法1:關(guān)聯(lián)規(guī)則的優(yōu)先級與規(guī)則中態(tài)勢屬性的作戰(zhàn)力量優(yōu)先級相對應(yīng)(海上作戰(zhàn)力量的排序:航母>驅(qū)逐艦>護衛(wèi)艦>導(dǎo)彈艇>作戰(zhàn)支援艦)。例如存在A1>A2>A3的優(yōu)先級順序,則3.2.1小節(jié)中的沖突規(guī)則就可以確定使用規(guī)則1,棄用規(guī)則2。
方法2:用含我方兵力態(tài)勢屬性的規(guī)則推導(dǎo)我方兵力展開類型,用含敵方兵力態(tài)勢屬性的規(guī)則推導(dǎo)發(fā)射導(dǎo)彈數(shù)量和攻擊目標,并且是多屬性推導(dǎo)單個決策。
本文選取了35個編隊作戰(zhàn)案例,其中30個案例用于挖掘關(guān)聯(lián)規(guī)則,另5個用于測試案例調(diào)整的精度。如表2所示,其中字母表示態(tài)勢屬性,數(shù)值表示相應(yīng)屬性的數(shù)量或?qū)傩缘念愋汀?/p>
表2 艦艇編隊作戰(zhàn)案例
我方兵力:A:航母,B:驅(qū)逐艦,C:護衛(wèi)艦,D:導(dǎo)彈艇,E:作戰(zhàn)支援艦,F(xiàn):直升機。
敵方兵力:a:航母,b:驅(qū)逐艦,c:護衛(wèi)艦,d:導(dǎo)彈艇,e:作戰(zhàn)支援艦,f:直升機,h:編隊類型。
艦艇編隊類型可分為單橫隊、單縱隊、V字隊形、左右梯形、交錯隊形、楔形隊形,表中分別用1、2、3、4、5、6表示。
決策屬性:Q:集群1,q:集群2,G:集群1導(dǎo)彈攻擊,g:集群2導(dǎo)彈攻擊,M:攻擊目標。
編隊在海上對敵攻擊時,一般分為2個集群兵力展開??梢园凑?:航-驅(qū)(航母-驅(qū)逐艦為主的集群兵力展開)、2:航-護、3:航-導(dǎo)、4:航-作、5:驅(qū)-護、6:驅(qū)-導(dǎo)、7:驅(qū)-作、8:護-導(dǎo)、9:護-作、10:導(dǎo)-作為主的集群進行兵力展開。
攻擊目標通常選擇敵方核心力量,這里用相應(yīng)的數(shù)字代替,1:航母,2:驅(qū)逐艦,3:護衛(wèi)艦,4:航-驅(qū)(航母和驅(qū)逐艦),5:航-護,6:驅(qū)-護,7:航-驅(qū)-護,8:驅(qū)-驅(qū),9:護-護。
對海武器:YJ-18反艦導(dǎo)彈和YJ-83反艦導(dǎo)彈,每個集群的載彈量肯定能支撐一場戰(zhàn)斗。對海攻擊采用飽和式打擊方式,只需1枚導(dǎo)彈命中目標,對目標也能造成毀滅性的打擊。
為了從案例庫中挖掘相對全面的規(guī)則,經(jīng)過反復(fù)實驗后,將Q-Apriori程序中的最小支持度設(shè)置為0.133(4/30)、最小置信度為0.5,得到的關(guān)聯(lián)規(guī)則效果最好。
為了使讀者更好地明白本文案例調(diào)整的原理,本文給出了測試案例③的調(diào)整過程和結(jié)果。
通過案例檢索得到最相似的案例為16,相似度僅為0.835 2,低于相似度閾值0.9,所以歷史案例16的作戰(zhàn)方案不能直接使用,需要對作戰(zhàn)方案進行調(diào)整。
用測試案例③的態(tài)勢屬性遍歷規(guī)則庫,可以得到如表3所示的關(guān)聯(lián)規(guī)則。
表3 與態(tài)勢匹配的關(guān)聯(lián)規(guī)則
根據(jù)3.2節(jié)沖突規(guī)則的消解方法,可以生成的決策為Q2(集群1:航母-護衛(wèi)艦為主)、q5(集群2:驅(qū)逐艦-護衛(wèi)艦為主)、G9(集群1發(fā)射導(dǎo)彈數(shù)量:9枚)、g9(集群2發(fā)射導(dǎo)彈數(shù)量:9枚)、M8(攻擊目標:驅(qū)逐艦-驅(qū)逐艦)。將生成的決策替換歷史案例16的決策,案例調(diào)整完成,調(diào)整前后的結(jié)果對比如表4所示。對比測試案例③,經(jīng)過調(diào)整后的決策方案和測試案例的決策方案非常接近,證明此方法對編隊作戰(zhàn)案例調(diào)整有效。
表4 案例調(diào)整前后對比
最后將調(diào)整后的案例用于實際決策,指揮決策內(nèi)容如表5所示。表中的海區(qū)和各階段時刻需要根據(jù)實際情況制定。
表5 編隊作戰(zhàn)決策
為了衡量本文方法的調(diào)整精度,引入平均絕對誤差百分比(MAPE),計算數(shù)值型數(shù)據(jù)的調(diào)整精度:
(7)
針對非數(shù)值型數(shù)據(jù),定義如下計算精度的公式:
(8)
總體調(diào)整精度公式:
(9)
由上述5個測試案例,再利用本文所提的案例調(diào)整方法和調(diào)整精度公式繪制了5個測試案例的調(diào)整精度圖,如圖3所示。由圖3可知,案例的調(diào)整精度可以保持在0.8左右,調(diào)整精度相對較高。
圖3 調(diào)整精度
本文采用多值關(guān)聯(lián)規(guī)則的方法挖掘編隊作戰(zhàn)案例中的潛在知識,用關(guān)聯(lián)規(guī)則去調(diào)整案例,并解決了案例調(diào)整時的規(guī)則沖突問題,保證了案例調(diào)整精度。通過仿真實驗,證明該方法對海上編隊作戰(zhàn)案例的調(diào)整有效。如果經(jīng)過案例調(diào)整后的決策還不能滿足指揮員的要求,那就需要指揮員憑借自身作戰(zhàn)經(jīng)驗進行調(diào)整,制定決策。