呂曉峰 楊東澤 劉 瑜 王 理 孟祥玉
(1.海軍航空大學(xué) 煙臺 264001)(2.中國人民解放軍91954部隊 永州 425000)(3.中國人民解放軍92635部隊 青島 266000)
艦載機彈藥調(diào)度演示系統(tǒng)是指根據(jù)艦載機彈藥保障需求生成彈藥調(diào)度方案并以可視化的形式展示,其中主要功能為生成并展示彈藥調(diào)度方案,也是目前艦載機彈藥保障相關(guān)專業(yè)訓(xùn)練的重點內(nèi)容。
在大型艦船的實際彈藥保障中,會根據(jù)彈藥的存放要求和艙室的布局將彈藥存放于不同艙室,通過升降機將彈藥從艙室轉(zhuǎn)運至甲板,其中存在不同的艙室會使用同一部升降機轉(zhuǎn)運,這里將同一升降阱道下的所有艙室劃分為一個艙群。在確定艦載機彈藥保障需求后,理論上所需的彈藥可來自符合其需求任意艙室,可以由符合條件的任意升降機轉(zhuǎn)運。因此隨著艦載機彈藥保障需求的增大,彈藥保障方案將呈指數(shù)級增長,無法依靠人工計算方案[1],需通過軟件解決調(diào)度方案生成問題。
系統(tǒng)的目標(biāo)是在用戶進行彈藥的存儲和出庫工作時為其提供數(shù)據(jù)匯總和輔助決策等功能,并能夠輔助調(diào)度人員計算彈藥的調(diào)度方案,同時將彈藥保障方案以可視化的形式進行展示。
系統(tǒng)基于Qt Creator 5.0 開發(fā)平臺,底層支撐技術(shù)為C++語言和SQLite 數(shù)據(jù)庫等,前端以Qt 為主,還包括QCustomPlot等圖形化組件[2~3]。
Qt Creator 可以跨Linux(32 位及64 位)、Mac OS X 以及Windows等多個平臺運行,其可通過C++代碼編輯器快速編寫代碼,并且可提供代碼的靜態(tài)檢驗功能[4~6];集成特定于Qt 的功能,并集成了Qt Designer 可視化布局和格式構(gòu)建器[7];采用了面向?qū)ο蟮脑O(shè)計方案,良好的封裝機制使得其模塊化程度很高,可重用性好,對用戶開發(fā)較為方便[8~9]。
系統(tǒng)的功能需求如下:
1)根據(jù)彈藥保障需求可迅速準(zhǔn)確地計算出各個型號彈藥的調(diào)度方案,為用戶提供輔助決策的功能,縮短調(diào)度方案生成的時間。
2)具備良好的交互性和和易操作性,系統(tǒng)不需安裝即可運行,方便用戶使用,盡量減少用戶的培訓(xùn)時間,并保證系統(tǒng)穩(wěn)定的運行。
3)具備良好的可擴展性,可通過對數(shù)據(jù)庫的更新及擴充來實現(xiàn)系統(tǒng)功能的擴展,并根據(jù)后續(xù)需求進一步增加系統(tǒng)功能。
系統(tǒng)共包含6 個模塊,分別是存儲管理、制定方案、導(dǎo)入方案、匯總查詢、基礎(chǔ)數(shù)據(jù)管理和生成向?qū)K,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
1)存儲管理。存儲管理模塊包括存儲方案導(dǎo)入和存儲方案制定,可導(dǎo)入已有的存儲方案或者制定全新的存儲方案,為制定方案提供依據(jù)。
2)制定方案。制定方案模塊包括制定艙群方案和艙室方案,制定方案是系統(tǒng)的主要功能,依據(jù)現(xiàn)有的存儲方案,通過用戶請求給出定位到艙群或艙室的參考方案,主要包括方案準(zhǔn)備、方案制訂、方案管理等功能模塊,并以圖形化顯示艙群方案,如甘特圖。
3)導(dǎo)入方案。導(dǎo)入方案模塊包括導(dǎo)入艙群方案和艙室方案,主要是由用戶導(dǎo)入已有的艙群方案或艙室方案的報表,為用戶提供參考。
4)匯總查詢。匯總查詢模塊包括艙群方案查詢、艙室方案查詢和消耗匯總查詢,可以根據(jù)方案的時間和摘要等條件查詢艙群方案或艙室方案,方便用戶管理。
5)基礎(chǔ)數(shù)據(jù)管理?;A(chǔ)數(shù)據(jù)管理模塊包括彈藥類型管理、彈藥運輸時間和艙群運力信息,方便調(diào)度人員對彈型運送時間、艙群運力信息、彈型信息、模塊信息、角色信息和權(quán)限信息進行管理。
6)生成向?qū)АI上驅(qū)K是對主要功能模塊進行整合,采用向?qū)巾撁孢M行順序操作,引導(dǎo)用戶依次進行導(dǎo)入存儲方案、制定艙群方案、制定艙室方案和匯總查詢。
本文運用UML 時序圖從動態(tài)角度對軟件生成調(diào)度方案時對象之間的交互關(guān)系進行描述[10],如圖2所示,顯示了用戶與軟件交互,并按照順序顯示了用戶與軟件之間消息的發(fā)送與接收,清晰地表達了各個對象之間的關(guān)系[11~13]。
圖2 系統(tǒng)主要功能時序圖
系統(tǒng)在計算彈藥調(diào)度方案時首先需建立艦載機彈藥調(diào)度數(shù)學(xué)模型,本模型要解決的問題是基于一定的約束條件,求得以最短的時間完成艦載機彈藥保障任務(wù)對應(yīng)的調(diào)度。因此令目標(biāo)函數(shù)為
式中Tfinish為整個調(diào)度任務(wù)完成所需的時間,Ti為第i個艙群所提供的所有彈藥運送至甲板所需的時間,M為艙群個數(shù)。
約束條件包括:
式(2)表示各個艙群提供的彈藥數(shù)量須等于任務(wù)所需的各型號的彈藥數(shù)量,式中bj為第j型彈藥的需求量,xij為第i個艙群提供第j型彈藥的數(shù)量,N為彈藥類型數(shù);式(3)表示庫存約束,即對于各個艙群的各型彈藥,其方案數(shù)量不能超過儲存數(shù)量,式中aij為第i個艙群存放j型彈藥的數(shù)量。式(4)表示彈藥保障時間取值約束,本文將調(diào)度時間分為庫內(nèi)轉(zhuǎn)運時間和升降機轉(zhuǎn)運時間,其中對于庫內(nèi)轉(zhuǎn)運時間只在轉(zhuǎn)運首批次彈藥時進行考慮,第一批次之后庫內(nèi)轉(zhuǎn)運與升降機轉(zhuǎn)運是同時進行的,且?guī)靸?nèi)轉(zhuǎn)運所需時間小于升降機轉(zhuǎn)運時間。式中tmn為第m個升降機轉(zhuǎn)運第n型彈藥所需時間,t'mn為第m個艙群在庫內(nèi)轉(zhuǎn)運第n型彈藥所需時間轉(zhuǎn)運時間,tmnh為第m個升降機轉(zhuǎn)運第n型彈藥的第h批次時的時間函數(shù)。
系統(tǒng)中計算彈藥調(diào)度方案所使用的算法是混合粒子群算法,采用了基于遺傳算法改進的離散粒子群算法求解彈藥調(diào)度方案,該算法有效地結(jié)合了遺傳算法與粒子群算法的優(yōu)點,計算速度快并且全局搜索能力較強,可根據(jù)對粒子適應(yīng)度值的評價選擇更優(yōu)的方案[14~17],算法步驟如下:
Step 1:設(shè)定粒子群算法基本參數(shù)。
Step 2:對當(dāng)前的粒子種群進行初始化。
Step 3:計算適應(yīng)度值,根據(jù)適應(yīng)度值決定是否更新全局最優(yōu)解和個體最優(yōu)解。
Step 4:分別將粒子與個體最優(yōu)解、全局最優(yōu)解進行交叉,計算適應(yīng)度值,更新全局最優(yōu)解和個體最優(yōu)解。
Step 5:對粒子進行變異,計算適應(yīng)度值,若適應(yīng)度值更優(yōu),則更新全局最優(yōu)解、個體最優(yōu)解和適應(yīng)度值。
Step 6:記錄當(dāng)前全局最優(yōu)解和適應(yīng)度值。
Step 7:判斷是否達到算法的結(jié)束條件,若達到則結(jié)束循環(huán),輸出最優(yōu)解和適應(yīng)度值,否則返回Step 4。
圖3 混合離散粒子群算法流程圖
本軟件中彈藥調(diào)度方案的生成是系統(tǒng)的主要部分,其中用戶可先選擇本次彈藥保障任務(wù)對應(yīng)的存儲方案,再輸入各型彈藥需求,最終可得到彈藥保障方案并進行可視化展示。
打開軟件之后,通過輸入用戶名和密碼登錄軟件,登陸成功后進入軟件主界面,如圖4所示。該界面按照軟件功能設(shè)計有存儲管理、制定方案、導(dǎo)入方案、匯總查詢、報表管理、用戶管理、基礎(chǔ)數(shù)據(jù)、日志管理和生成向?qū)K,本文著重介紹制定方案模塊。
圖4 軟件主界面
制定方案模塊是根據(jù)用戶輸入的各型彈藥保障需求調(diào)用智能算法生成艙群方案與艙室方案。該模塊功能實現(xiàn)如下,進入“制定方案”模塊用戶可根據(jù)彈藥存儲情況導(dǎo)入已有的存儲方案,該界面用戶可通過下拉菜單選擇彈藥類型并輸入數(shù)量,并且可以添加不同的彈藥類型。彈藥需求輸入完成后,即可生成艙群彈藥調(diào)度方案,如圖6所示,進入“艙室方案”即可展示各個艙群下對應(yīng)艙室的彈藥調(diào)度方案,如圖7所示。
圖6 艙群彈藥調(diào)度方案
圖7 艙室彈藥調(diào)度方案
在生成彈藥調(diào)度方案后便可查看甘特圖,如圖8所示,在圖中可清楚地看出各型彈藥在各個艙群的調(diào)度方案,同時可顯示各個艙群調(diào)度彈藥所需時間,其中各個艙群最長的工作時間即為本次任務(wù)所需時間。
圖8 艙群彈藥調(diào)度方案甘特圖
運用UML 時序圖建立了軟件動態(tài)模型,并設(shè)計混合離散粒子群算法計算彈藥調(diào)度方案,最后運用C++語言基于Qt Creator 5.0 開發(fā)平臺開發(fā)系統(tǒng)。該系統(tǒng)通過選擇高效的艦載機彈藥調(diào)度方案,不僅能夠縮短彈藥保障方案生成的時間,為調(diào)度人員提供輔助決策功能,同時也提高了相關(guān)專業(yè)人員對艦載機彈藥調(diào)度的熟練程度和操作水平,加深了對艦載機彈藥調(diào)度方案的理解。