溫 新,顧 玥
(1.北京航空航天大學(xué) 自動化科學(xué)與電氣工程學(xué)院·北京·100191;2.上海航天控制技術(shù)研究所·上海·201109)
利用太空衛(wèi)星觀測地面是獲取地面信息的重要手段。隨著科學(xué)技術(shù)的發(fā)展,軍事、經(jīng)濟等領(lǐng)域和各個行業(yè)對航空、航天技術(shù)的需求不斷增加。由于衛(wèi)星地球觀測的范圍廣,時間性強,并且對地理和國界沒有限制,衛(wèi)星對地球觀測的關(guān)注和需求已越來越多。
衛(wèi)星遙感器和地面接收站為衛(wèi)星地球觀測任務(wù)提供了極大的便利。與此同時,地面目標(biāo)的復(fù)雜性和對地球觀測精度要求的提高也對衛(wèi)星地球觀測任務(wù)構(gòu)成了巨大挑戰(zhàn)。因此,如何最大限度地挖掘資源價值,充分利用各種資源獲取最大效益,已成為衛(wèi)星任務(wù)規(guī)劃系統(tǒng)中的一個重要問題。根據(jù)遙感觀測任務(wù)的需求,衛(wèi)星任務(wù)規(guī)劃需要在約束條件下分配衛(wèi)星資源和地面站資源。因此,衛(wèi)星任務(wù)規(guī)劃的目的是為資源分配和活動安排制定最佳的解決方案,使其成為可滿足觀察需求的最優(yōu)解。
Mohaed研究了Spot5衛(wèi)星的日常調(diào)度問題,并通過遺傳算法直接解決了基本問題。Baek應(yīng)用了一種新的遺傳算法模擬了實際的衛(wèi)星任務(wù)調(diào)度問題[1]。上述算法可用于解決實際的衛(wèi)星任務(wù)規(guī)劃問題,但其主要考慮的是固定地面目標(biāo),仍然缺乏對移動目標(biāo)的觀測方法。同時,任務(wù)沖突的處理沒有與遺傳算法進行有效的結(jié)合,這導(dǎo)致了算法的效率低下,不利于衛(wèi)星的任務(wù)規(guī)劃。
本文考慮了用于移動目標(biāo)觀測的衛(wèi)星任務(wù)規(guī)劃,以克服上述缺點。首先,提出了一種改進的長短期記憶神經(jīng)網(wǎng)絡(luò)(Modified Long Short-Term Memory,M-LSTM)移動目標(biāo)軌跡預(yù)測算法,以獲取運動目標(biāo)在未來的信息;隨后,利用獲得的信息構(gòu)建了相應(yīng)的任務(wù)規(guī)劃模型,并設(shè)計了約束滿足型遺傳算法(Constraint Satisfaction Genetic Algorithm,CSGA),以解決該問題并獲得任務(wù)規(guī)劃結(jié)果;同時,本文使用了Python環(huán)境和STK工具模擬和驗證了所設(shè)計的算法。
移動目標(biāo)觀測需要預(yù)測目標(biāo)的軌跡和位置,這需要從大量的歷史軌跡數(shù)據(jù)中挖掘出潛在的規(guī)律。深度學(xué)習(xí)是近年來流行的人工智能算法,它具有大量的權(quán)重矩陣和復(fù)雜的參數(shù),可用于擬合大數(shù)據(jù)之間的對應(yīng)關(guān)系。因此,本文利用深度學(xué)習(xí)中的長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)算法解決了軌跡預(yù)測問題。針對本文研究問題的數(shù)據(jù)特點,對傳統(tǒng)的LSTM算法進行了改進,以適應(yīng)大量數(shù)據(jù)的模型。本文主要從兩方面進行了改進:動態(tài)調(diào)整學(xué)習(xí)率和進行多層次訓(xùn)練,并對傳統(tǒng)的LSTM模型結(jié)構(gòu)進行了調(diào)整,形成了M-LSTM軌跡預(yù)測算法。
軌跡預(yù)測模型的結(jié)構(gòu)如圖1所示。整個航跡預(yù)測模型由四部分組成:輸入層、LSTM層、Dense層和輸出層。輸入層是一個簡單的輸入節(jié)點,其主要功能是將運動目標(biāo)的經(jīng)度時間序列和緯度時間序列輸入到軌跡預(yù)測模型中,其內(nèi)部沒有任何運算;LSTM層是整個軌跡預(yù)測模型的核心,其包括多層LSTM單元結(jié)構(gòu)。LSTM層包括輸入門、輸出門和遺忘門,它們的功能是選擇或遺忘輸入層中的輸入時間序列,以達到長時間序列預(yù)測的目的;Dense層和輸出層是常見的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其主要功能是將軌跡預(yù)測結(jié)果的特征整合到LSTM層中,并輸出軌跡預(yù)測結(jié)果。
圖1 軌跡預(yù)測模型Fig.1 The track prediction model
損失函數(shù)(也被稱為目標(biāo)函數(shù))由圖1中的變量表示。損失函數(shù)用于評估軌跡預(yù)測模型中預(yù)測軌跡序列與實際軌跡序列之間的擬合程度。在求解LSTM算法的過程中,神經(jīng)網(wǎng)絡(luò)可通過損失函數(shù)不斷擬合軌跡預(yù)測結(jié)果。在該軌跡預(yù)測算法模型中,將運動目標(biāo)的經(jīng)度時間序列和緯度時間序列混合在一起進行預(yù)測。因此,損失函數(shù)可以均方誤差的形式進行定義。損失函數(shù)可用如下方式表示
(1)
M-LSTM航跡預(yù)測算法訓(xùn)練的主要目的是通過不斷更新權(quán)重矩陣來提高預(yù)測航跡序列與真實航跡序列之間的擬合程度。模型的訓(xùn)練以神經(jīng)網(wǎng)絡(luò)中的反向傳播思想為基礎(chǔ),擬合程度可根據(jù)損失函數(shù)的大小進行評定。
M-LSTM軌跡預(yù)測算法模型的訓(xùn)練過程主要包括三個部分:前向傳播、反向傳播和梯度更新。
根據(jù)1.1節(jié)中的軌跡預(yù)測算法模型,輸入數(shù)據(jù)需要被分為訓(xùn)練集和測試集。在執(zhí)行訓(xùn)練時,軌跡預(yù)測模型的輸入為訓(xùn)練集中的訓(xùn)練軌跡序列。在第一次正向傳播之后,可獲得訓(xùn)練集的預(yù)測軌道序列。損失函數(shù)可用于進行軌跡預(yù)測模型的反向傳播和梯度更新,由此可以提高訓(xùn)練集中的預(yù)測軌跡序列與真實軌跡序列之間的擬合程度。當(dāng)擬合程度足夠好時,將測試集中的軌跡序列代入經(jīng)過訓(xùn)練的軌跡預(yù)測模型,可獲得整個算法的最終預(yù)測軌跡序列。
(2)
(3)
輸入門、遺忘門和輸出門的前向計算可以用如下公式表示=σ
(,)=σ
(-1++)σ
(,)=σ
(-1++)σ
(,)σ
(-1++)(4)
式中,、、、、、分別是對應(yīng)的權(quán)重矩陣。、、分別表示、、的偏置項。,、,、,分別表示t
時刻、、的線性輸出。σ
表示激活函數(shù),如下所示(5)
LSTM層輸出軌跡狀態(tài)的獲取需要首先獲得LSTM單元的軌跡狀態(tài),兩者可以表示為(6)
式中,和-1分別表示t
和t
-1時刻的LSTM單位軌跡狀態(tài),°表示矢量之間對應(yīng)元素的相乘。LSTM層的反向傳播過程是誤差項沿與時間相反的方向傳遞的過程。每個參數(shù)的誤差項的計算如下式所示
(7)
k
的公式如下所示(8)
為了達到軌跡預(yù)測的目的,需要不斷更新LSTM軌跡預(yù)測模型中的權(quán)重矩陣,以不斷提高預(yù)測軌跡序列與真實軌跡序列之間的擬合程度。對于模型中的每個參數(shù),它們的梯度表示每個時刻的梯度之和。梯度更新的計算可以簡化為式(9)
(9)
式中,表示的權(quán)重矩陣,表示的權(quán)重矩陣,表示偏置項。為了提高預(yù)測精度,可以采用動態(tài)調(diào)整學(xué)習(xí)率的方法。學(xué)習(xí)率在梯度下降法中即為步長η
(10)
使用單一的學(xué)習(xí)率易導(dǎo)致學(xué)習(xí)率在訓(xùn)練后期相對較大,進而造成準(zhǔn)確率抖動,無法獲得更優(yōu)良的預(yù)測模型,因此有必要在訓(xùn)練過程中隨著訓(xùn)練次數(shù)增加而減小學(xué)習(xí)率。訓(xùn)練初期的損失函數(shù)很大,需要更大的學(xué)習(xí)率以加快訓(xùn)練。訓(xùn)練后期的損失函數(shù)變化很小,需要使用更小的學(xué)習(xí)率,以防止準(zhǔn)確率來回抖動。經(jīng)過實驗驗證,本文采用的等距下降法可對學(xué)習(xí)率進行調(diào)整,得到的預(yù)測效果最佳。等距下降法的具體方法為:每經(jīng)過50輪的學(xué)習(xí)步長,學(xué)習(xí)率減小至上一輪的50%。
同樣地,為了提高預(yù)測精度,可采用多層次訓(xùn)練的方法。將搭建好的神經(jīng)網(wǎng)絡(luò)模型反復(fù)訓(xùn)練3次,每次訓(xùn)練時將由上一次模型訓(xùn)練而得到的最佳權(quán)值矩陣加以保存,重新設(shè)置模型初始學(xué)習(xí)率,并將其加載到新的模型中進行訓(xùn)練。由于加載了之前訓(xùn)練結(jié)果的優(yōu)良特征,就不需要從零開始訓(xùn)練神經(jīng)網(wǎng)絡(luò)。采用這種學(xué)習(xí)方法,不需要在短時間內(nèi)修改過多的權(quán)重,只需進行微調(diào)便可獲得更為精確的學(xué)習(xí)模型,從而提高預(yù)測的準(zhǔn)確率。
(1)任務(wù)描述
在獲得移動目標(biāo)的預(yù)測軌跡之后,衛(wèi)星任務(wù)規(guī)劃可以描述為:在遙感設(shè)備(資源集合M
)數(shù)量有限的前提下,在指定的時間內(nèi)安排了n
個點的目標(biāo)觀測任務(wù)的執(zhí)行方案。移動目標(biāo)衛(wèi)星觀測具有時間跨度大、觀測持續(xù)時間短、觀測次數(shù)少的特點。由于資源能力、用戶要求和調(diào)度時間的限制,所有可見時間窗口有可能未被完全安排。每個可見時間窗口都有其相應(yīng)的權(quán)重,表示該可見時間窗口中觀測任務(wù)完成時的可用收益。如果不能完全安排所有可見時間窗口,則必須生成總收益較大的方案。
最佳的任務(wù)規(guī)劃方案應(yīng)滿足以下條件:
1)每一個活動只能在自己的滿足約束條件的時間窗口內(nèi)被執(zhí)行;否則,認為該活動未被執(zhí)行;
2)每一個活動執(zhí)行只能占用滿足其要求的資源中的一個資源,且執(zhí)行過程不能被中斷;
3)每一個資源在任何時候都只能同時執(zhí)行一個活動;
4)所安排執(zhí)行的活動的總權(quán)值最大。
(2)約束條件描述
根據(jù)第(1)節(jié)中的任務(wù)描述,移動目標(biāo)觀測的衛(wèi)星任務(wù)規(guī)劃需要滿足以下約束:
1)可見性約束
由于移動目標(biāo)的觀測特性,所有衛(wèi)星觀測活動都需要在衛(wèi)星與移動目標(biāo)之間的可見時間窗口內(nèi)被執(zhí)行,并且要執(zhí)行的觀測任務(wù)必須在初始任務(wù)序列中。公式表示如下
task
∈{w
,w
,…,w
}(11)
式中,task
表示要執(zhí)行的觀測任務(wù),n
表示觀測時間窗口的編號,w
表示初始任務(wù)序列中的第i
個可見時間窗口,w
可以用下式描述w
={[wb
,wf
],target
}(12)
式中,wb
和wf
分別是該可見時間窗口的開始時間和結(jié)束時間,target
表示第k
個移動目標(biāo)的信息。2)可見時間窗口的時間約束
考慮到有效載荷的使用約束條件和衛(wèi)星平臺約束條件,只有持續(xù)時間大于T
分鐘的可見時間窗口才能被視為有效可見時間窗口。此約束可由以下公式描述|wf
-wb
|≥T
(13)
3)衛(wèi)星傳感器約束
衛(wèi)星只有一個觀察傳感器。該衛(wèi)星只能執(zhí)行側(cè)擺和俯仰機動,并且在一個時間段內(nèi)只能觀察到一個有效目標(biāo)。該約束可以由下式描述
(14)
4)觀測任務(wù)次數(shù)約束
考慮到任務(wù)要求和衛(wèi)星執(zhí)行能力,觀察任務(wù)的數(shù)量存在最大數(shù)目限制。該約束可由下式描述
tasknum
≤task
_size
(15)
式中,tasknum
表示已執(zhí)行任務(wù)的總數(shù),task
_size
表示觀察任務(wù)的最大數(shù)量。(3)目標(biāo)函數(shù)
最優(yōu)化規(guī)劃的目標(biāo)函數(shù)可以根據(jù)任務(wù)要求給出。根據(jù)以上描述,移動目標(biāo)觀測任務(wù)規(guī)劃的目標(biāo)是該方案的總收益最大化。因此,目標(biāo)函數(shù)可由下式表示
(16)
s.t.|wf
-wb
|≥T
(17)
tasknum
≤task
_size
(18)
(19)
式中,F
(X
)表示任務(wù)規(guī)劃方案X
的總收益值。c
(w
)表示可見時間窗口w
的權(quán)重。u
(w
)表示w
在該方案中是否被執(zhí)行,u
(w
)可由下式表示(20)
根據(jù)上一節(jié)描述的移動目標(biāo)衛(wèi)星任務(wù)規(guī)劃模型,需要根據(jù)模型的特征設(shè)計相應(yīng)的任務(wù)計劃算法。遺傳算法當(dāng)前被廣泛應(yīng)用于各個領(lǐng)域,并且很適合解決這類優(yōu)化問題。由于任務(wù)的復(fù)雜性,需要對傳統(tǒng)的遺傳算法進行改進,以滿足與移動目標(biāo)觀測相對應(yīng)的約束和沖突任務(wù)處理問題,從而可以獲得最優(yōu)解。主要的改進為設(shè)計及加入了沖突消除算子,并設(shè)計了相應(yīng)的選擇算子。
(1)編碼方式
DNA編碼是遺傳算法需要首先解決的問題。由于僅存在被執(zhí)行或未被執(zhí)行兩種任務(wù)觀測狀態(tài),因此最終期望的任務(wù)規(guī)劃方案是與時間序列相關(guān)的執(zhí)行序列。本文結(jié)合上一節(jié)所提到的目標(biāo)函數(shù),以可見時間窗口為單位對初始任務(wù)序列進行了編碼,編碼結(jié)構(gòu)如圖2所示
圖2 DNA編碼結(jié)構(gòu)Fig.2 The DNA encoding structure
(2)適應(yīng)度函數(shù)
適應(yīng)度函數(shù)可用于評估個體的收益值,以指導(dǎo)遺傳算法中的對優(yōu)良個體的選擇。根據(jù)第(1)節(jié)所述的目標(biāo)函數(shù),適應(yīng)度函數(shù)可以表示為下式
(21)
式中,pop
表示種群中的第j
個個體。(3)種群初始化
采用隨機生成方法初始化種群。每個DNA都是在DNA長度相同且種群大小恒定的條件下隨機產(chǎn)生的,種群大小為pop
_size
。(4)沖突消除算子
根據(jù)第(1)節(jié)描述的移動目標(biāo)衛(wèi)星任務(wù)規(guī)劃模型,每種資源一次只能執(zhí)行一項觀察活動。因此,由于時間窗口存在沖突,有些任務(wù)無法同時被完成。如果最終個體在DNA中的基因位置上存在時間沖突,則該個體是不可行的方案。因此,必須消除個體沖突的基因位,并獲得盡可能無沖突的最終可行方案。結(jié)合移動目標(biāo)衛(wèi)星觀測的特點,專門設(shè)計了沖突消除算子來處理時間窗口沖突,以提高效率和得到最終可行的求解結(jié)果。將沖突消除算子的結(jié)果嵌入選擇算子中,判斷時間窗口是否存在沖突的標(biāo)準(zhǔn)如下所示
wf
≥wb
≥wb
orwf
≥wf
≥wb
(22)
沖突消除算子可以表示為偽代碼1中所示的偽代碼
偽代碼1:沖突消除算子Input: The initial task sequence X={w1,w2,…,wn}Output: Conflict task sequence C= {(m1,n1),(m2,n2),…,(mk,nk)}1: function conflict (n, X)2: C=?3: for i in (1,2,…,n):4: for j in (1,2,…,n):5: if wfj≥wbi≥wbj:6: C add (wi,wj);7: else if wfj≥wfi≥wbj:8: C add (wi,wj);9: for every (wi,wj) in C:10: check for duplicate combinations of (wi,wj) in C;11: delete duplicate;12: return C
(5)選擇算子
選擇算子從整個種群中選擇更好的個體,并將其保留到下一代,這些個體用于指導(dǎo)整個種群的進化方向。本文采用輪盤賭選擇法,每個個體被選中的概率與其適應(yīng)度函數(shù)的值呈正比。選擇函數(shù)可以表示為
(23)
式中,P
(pop
)表示個體pop
被選中的概率。為了滿足移動目標(biāo)衛(wèi)星觀測的特點和約束,本文設(shè)計了一種獨特的選擇算子??稍谶x擇算子中執(zhí)行約束計算和處理,并在該算子中導(dǎo)入沖突消除算子的計算結(jié)果以處理沖突。由此,可以準(zhǔn)確地選擇滿足約束條件且無沖突的個體。
選擇算子可以表示為偽代碼2中所示的偽代碼。
(6)遺傳算子
遺傳算子基本采用傳統(tǒng)遺傳算法進行操作,交叉算子使用在任務(wù)級別的單點交叉點。將交叉概率設(shè)置為α
,只有滿足交叉概率的個體才能進行交叉操作。變異算子使用基本位置變異法。設(shè)定變異概率為β
,并對滿足變異概率的單個基因位置進行變異操作。DNA復(fù)制采用了兩代競爭法。每次生成子代個體時,都要比較子代和父代個體之間的適應(yīng)度函數(shù)值,更為優(yōu)秀的個體將被保留在種群中。偽代碼2:選擇算子Input: Population pop, The maximum tasks number task_size, The minimum observation time Tmin, Conflict task sequence C, Fitness function F(x)Output: The new population pop_new1: function selection (pop,task_size, Tmin,F(x),C)2: for i in (1,2,…,pop_size):3: for j in (1,2,…,n):4: if wfpopij-wbpopij
仿真是在Python環(huán)境中采用STK工具執(zhí)行的。本文定義了具有三種移動目標(biāo)的場景,以測試本文提出的算法的效率。該場景開始于2016.01.01.00:00:00,結(jié)束于2016.12.31.23:59:59,仿真參數(shù)如表1、表2、表3和表4所示。衛(wèi)星俯仰角范圍為-60°~60°,衛(wèi)星側(cè)擺角范圍為-20°~20°。當(dāng)衛(wèi)星位于被觀測目標(biāo)上方且被觀測目標(biāo)的太陽高度角大于5°時,衛(wèi)星處于可觀測時間。
表1 移動目標(biāo)參數(shù)Tab.1 Moving targets information
表2 M-LSTM算法參數(shù)Tab.2 M-LSTM algorithm parameters
表3 CSGA算法參數(shù)Tab.3 CSGA algorithm parameters
表4 衛(wèi)星參數(shù)Tab.4 The satellite parameters
仿真結(jié)果包含了M-LSTM軌跡預(yù)測結(jié)果和CSGA任務(wù)規(guī)劃結(jié)果。
(1)軌跡預(yù)測結(jié)果
軌跡預(yù)測結(jié)果和軌跡預(yù)測誤差如圖3、圖4所示。
圖3 軌跡預(yù)測結(jié)果Fig.3 The track prediction results
(a)采用M-LSTM算法的仿真結(jié)果
圖3展示了STK中的所有軌跡預(yù)測結(jié)果。圖4為用等步長采樣法對所有三種目標(biāo)進行的軌跡預(yù)測誤差,圖4(a)為采用M-LSTM算法的仿真結(jié)果,圖4(b)為采用普通LSTM算法的仿真結(jié)果。圖4(a)顯示,大多數(shù)軌跡點的誤差值都在40km之內(nèi)。經(jīng)計算,當(dāng)衛(wèi)星觀測拍攝視場的半徑為40 km時,圖4(a)中每個目標(biāo)的預(yù)測精度如下:目標(biāo)A為86.8%,目標(biāo)B為94.5%,目標(biāo)C為94.0%,整體精度為91.9%。圖4(b)顯示,軌跡點的誤差值分布較為分散,誤差較大的點眾多。經(jīng)計算,當(dāng)衛(wèi)星觀測拍攝視場的半徑為40 km時,圖4(b)中每個目標(biāo)的預(yù)測精度如下:目標(biāo)A為56.3%,目標(biāo)B為67.6%,目標(biāo)C為63.5%,整體精度為62.8%。當(dāng)衛(wèi)星在圖4中的采樣點時刻觀測船只目標(biāo)時,只要預(yù)測點與真實目標(biāo)位置的距離在40km之內(nèi),衛(wèi)星按照預(yù)測點對目標(biāo)進行觀測,就可以在觀測視場內(nèi)拍攝到預(yù)期目標(biāo),這樣就完成了對目標(biāo)的觀測,表示預(yù)測成功。通過對比仿真可以看出,M-LSTM算法較普通LSTM算法在很大程度上提升了算法精度,達到了預(yù)期效果。由于目前大多數(shù)觀測衛(wèi)星的拍攝視場半徑都達到了40km,由此可見預(yù)測效果非常出色。
(2)任務(wù)規(guī)劃結(jié)果
在獲得了第(1)節(jié)所述的移動目標(biāo)軌跡預(yù)測結(jié)果后,移動目標(biāo)任務(wù)規(guī)劃的部分結(jié)果如表5所示。
表5 任務(wù)規(guī)劃結(jié)果(部分)Tab.5 Mission planning results (partial)
任務(wù)規(guī)劃的仿真結(jié)果如表5所示,該方案的適應(yīng)度函數(shù)值為4096。根據(jù)此模型計算得出的最大適應(yīng)度函數(shù)值為4240,因此收益百分比為96.6%。經(jīng)過對比仿真,在此場景下應(yīng)用普通遺傳算法進行求解存在大量沖突時間窗口,觀測數(shù)目也不滿足要求,收益百分比普遍低于50%。由此可見,CSGA算法的效果更加優(yōu)良。
由于求解過程具備不確定性和波動性,可采用多次仿真取平均值的方法獲得更加準(zhǔn)確的結(jié)果。本文進行了100次蒙特卡洛仿真實驗,基本參數(shù)如表4所示,結(jié)果如圖5所示。
圖5 蒙特卡洛仿真實驗結(jié)果Fig.5 Monte Carlo simulation experiments results
如圖5所示,100次實驗結(jié)果的適應(yīng)度函數(shù)值主要集中在4000~4100,平均值為4057.59。因此,收益百分比已達到95.7%。仿真結(jié)果表明,該算法可以很好地解決該問題。
本文提出了將M-LSTM算法和CSGA算法進行結(jié)合來實現(xiàn)移動目標(biāo)觀測的衛(wèi)星任務(wù)規(guī)劃的可行方案,所提出的算法解決了預(yù)測移動目標(biāo)信息以及衛(wèi)星觀測任務(wù)規(guī)劃的問題。仿真結(jié)果表明,M-LSTM算法可預(yù)測出較好的結(jié)果、誤差較小,而CSGA算法適用于任務(wù)計劃且收益率很高。綜上所述,本文提出的模型和算法具有較強的實際應(yīng)用價值。