王洋 楊亮 溫雅 趙秋月 安琪


摘?要:在某型部隊中,利用編組ID來標識不同節點的身份。生成編組ID主要有兩個難點:一是某型部隊身份難以直接確認(因為編組數據中包括所有部隊的信息,某型部隊沒有特殊標識);二是編組ID與現有編組數據之間沒有直接對應的關系。本文提出一種自動生成某型部隊編組ID的方法,一是利用遞歸算法尋找出某型部隊,二是利用現有編組數據之間的相對關系來生成編組ID。通過實例驗證,本文方法大大提高了生成編組ID的效率和穩定性。
關鍵詞:編組ID;自動生成
某型部隊中,利用編組ID來標識本節點的身份。編組ID由八位十六進制數組成,前四位目前設置為“0000”,第五位表示車輛類型,如果本級節點是部隊節點,則用0表示;第六、七位分別為營、連號;第八位為車號,如果本級節點是部隊節點,則用0表示。生成編組ID主要有兩個難點:一是編組數據中某型部隊沒有特殊標識,需要通過其他方法來篩選;二是編組ID與編組數據之間沒有直接對應的關系,難以直接生成。之前的方法生成編組ID時,是通過人工干預的方法對編組數據中的編組數據B(以下用CSB表示)進行修改,使之與編組ID具有一一對應的關系。這種方法的缺點是耗時比較長,往往需要幾十分鐘的時間;另外,這種方法局限性太大,人工干預多,要求操作人員按照事先規定的規則去修改編組數據,不符合部隊的實際情況。基于此,本文提出一種自動生成某型部隊編組ID的方法,提高生成編組ID的效率和穩定性。
1 自動篩選某型部隊算法
由于編組ID是針對某型部隊設置的,所以首先需要從編組數據中篩選出某型部隊,確定某型部隊身份的依據是該部隊里面是否包含某幾型車輛。然而,某幾型車輛不一定直接掛在營級節點下面,而是可能掛在指揮所、連級、排級、班級節點下面,所以難以直接確定某型部隊的身份。針對這種情況,本文使用遞歸算法來對編組數據進行篩選,獲取某型部隊:
步驟一:從編組數據中篩選出營級部隊的編組數據A(以下用CSA表示),作為初始CSA;
步驟二:讀取編組數據,獲取初始CSA的下級車輛CSA集合,[A1,A2,...,Ai,...,AM],其中1SymbolcB@
iSymbolcB@
M,Ai表示第i個CSA;
步驟三:判斷集合大小是否大于0,如果等于0,則函數返回false;如果大于0,則跳到步驟四;
步驟四:初始化i=1;
步驟五:判斷iSymbolcB@
M,如果是,跳到步驟六;如果不滿足,跳到步驟七;
步驟六:判斷Ai對應的車是否為某幾型車輛;如果是,則返回true;如果不是,則i=i+1,跳到步驟五;
步驟七:根據初始CSA獲取其對應的CSB;
步驟八:根據CSB獲取下級部隊CSB集合,[B1,B2,...,Bj,...,BN],其中1SymbolcB@
jSymbolcB@
N,Bj表示第j個CSB;
步驟九:判斷集合大小是否大于0,如果等于0,則函數返回false;如果大于0,則跳到步驟十;
步驟十:根據Bj獲取其對應的CSA,并跳到步驟一。
至此,可以獲取到編組數據中所有的某型部隊營級節點,即初始CSA對應的節點。
2 自動生成編組ID方法
由于編組ID與現有編組數據之間沒有直接對應的關系,難以直接給出,本文利用CSB之間的相對關系和車輛與部隊節點的隸屬關系來生成編組ID。CSB的特點是:下級節點的CSB是在上級節點CSB的基礎上加上兩位數字生成,同級節點的CSB后兩位是從“01”開始遞增的。由于本營下面的車輛節點并不一定都是某幾型車輛,所以不能簡單地利用CSB的后兩位來表示車號。編組ID是針對某型部隊的部隊節點和車輛節點生成的。獲取到某型部隊營級節點后,本文根據編組數據自動生成編組ID,方法如下:
步驟一:按照遍歷的順序對某型營級部隊進行編號,營號從1開始遞增,如一營編組ID為“00000100”;
步驟二:獲取一營的下級車輛,編組ID根據車輛類型依次從1開始遞增,如一營下面某個車的編組ID為“00004101”;
步驟三:獲取一營下面各連級部隊,依據是連級部隊的CSB是在營級部隊CSB的基礎上加上兩位數字生成的,按照CSB由小到大的順序為各連生成編組ID,其連號是從一開始遞增,如一營一連編組ID為“00000110”;
步驟四:獲取各連下面的車輛,包括排、班下面的車輛,判斷該車輛是否為某幾型車輛,如果是則按順序為該車輛生成編組ID,如一營一連下面某個車的編組ID為“00001111”;
步驟五:對其它營按照步驟二到步驟四的順序進行遍歷,為各連、各車輛生成編組ID。
3 算法驗證
利用本文算法編寫程序,調用名錄接口將編組ID添加到名錄自定義屬性中,便于查看和后續調用。經過實例驗證,本文程序運行的時間為0.979秒,大大提高了生成編組ID的效率。如圖2所示,“XX車”節點序號為1的自定義屬性項為編組ID,其屬性值為“00001111”,符合預期的結果。另外,名錄中其它各節點的編組ID屬性與預期的結果完全一致,從而驗證了本文方法的可靠性。
4 結論
針對某型部隊編組ID難以直接生成的問題,提出一種自動篩選某型部隊節點、并根據編組數據之間的相對關系來生成編組ID的方法。通過調用名錄接口增加自定義屬性,驗證了本文方法的可靠性。