本發(fā)明涉及衛(wèi)星技術(shù)領(lǐng)域,特別是涉及一種面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法。
背景技術(shù):
對地觀測衛(wèi)星(earthobservationsatellite,eos)作為主要的太空觀測平臺,能夠通過星載照相機對地面目標(biāo)進(jìn)行成像,并通過星地鏈路將所拍攝的照片發(fā)回地面。對地觀測衛(wèi)星具有視場寬,不受國界線限制等特點,得到越來越多國家的青睞,成為太空信息的主要來源。隨著衛(wèi)星技術(shù)的發(fā)展,衛(wèi)星圖像在國民經(jīng)濟(jì)發(fā)展、人道主義救援和軍事活動等領(lǐng)域發(fā)揮了越來越重要的作用,衛(wèi)星成像需求也因此與日俱增,對地觀測衛(wèi)星的調(diào)度成為制約衛(wèi)星效能發(fā)揮的關(guān)鍵,衛(wèi)星調(diào)度問題也吸引了越來越多研究者的注意。此處的“衛(wèi)星調(diào)度”主要包括確定衛(wèi)星在什么時刻、以什么模式、對什么任務(wù)進(jìn)行多長時間的觀測,并在什么時刻進(jìn)行什么任務(wù)的數(shù)據(jù)傳輸?shù)?,在滿足預(yù)先設(shè)置的各種約束的條件下,使得衛(wèi)星的觀測收益最大。
敏捷對地觀測衛(wèi)星(agileearthobservationsatellite,aeos)是新一代的對地觀測衛(wèi)星,本文中均簡稱為“敏捷衛(wèi)星”。相比傳統(tǒng)的對地觀測衛(wèi)星,敏捷衛(wèi)星具有三個方向的自由度,除了側(cè)擺之外,敏捷衛(wèi)星還具備俯仰和偏航能力,這使得敏捷衛(wèi)星能夠在過頂目標(biāo)之前或之后對目標(biāo)進(jìn)行成像,進(jìn)而使得衛(wèi)星對地面目標(biāo)的可見時間窗口大大延長,因而敏捷衛(wèi)星的觀測能力得到了極大提高,能夠遂行很多復(fù)雜任務(wù),如條帶拼接和立體成像等,同時也使敏捷衛(wèi)星調(diào)度問題變得更加復(fù)雜,其原因在于:敏捷衛(wèi)星對地面目標(biāo)的可見時間大于觀測所需要的時間,因此只要剩余時間足夠衛(wèi)星完成成像過程,成像活動可以在目標(biāo)可見時間窗口的任意時刻開始。同時,對敏捷衛(wèi)星而言,從上一任務(wù)完成到后一任務(wù)執(zhí)行前,需要一定的姿態(tài)調(diào)整與穩(wěn)定時間。不同的成像開始時間意味著不同的觀測角度,導(dǎo)致衛(wèi)星與上一任務(wù)的轉(zhuǎn)換時間改變,因此敏捷衛(wèi)星調(diào)度問題是一個具有時間依賴特性的調(diào)度問題。
敏捷衛(wèi)星成像調(diào)度問題已經(jīng)被證明是一個np-hard的組合優(yōu)化問題。國內(nèi)外針對敏捷衛(wèi)星的成像調(diào)度,采取的研究方法多為混合啟發(fā)式方法。當(dāng)前的研究主要分為兩個角度,第一為最大化成像排序問題(maximumshotsequencingproblem,msp),主要目的是將成像任務(wù)在幾個連續(xù)的成像軌道中調(diào)度,通常一個任務(wù)可以對應(yīng)多個時間窗;第二種為最大化成像軌道排序問題(maximumshotorbitsequencingproblem,msop),通常只處理一個軌道,每個成像任務(wù)只有一個時間窗。
針對msp問題,liao和yang提出一種滾動調(diào)度框架以處理天氣的不確定性,采用拉格朗日松弛和線性搜索技術(shù)進(jìn)行求解。dilkina研究了問題的局部優(yōu)化求解方法,包括模擬退火、爬山法和車輪法等,并得出帶有約束船舶的基于排序的搜索算法,該算法對于敏捷衛(wèi)星成像調(diào)度具有最好的效果。habet等人將問題建模為約束規(guī)劃問題,該模型有兩個目標(biāo)函數(shù),其一為最大化成像收益,其二為最小化任務(wù)之間的轉(zhuǎn)換時間總和,并提出一種禁忌搜索算法進(jìn)行求解。grasset-bourdel提出一種前向年代記算法,并設(shè)計了四個決策層確保生成解的可行性。生成解的過程中,如果違反了約束,采用回溯的方法解決。bianchessi和righini研究了cosmo-skymed星座的調(diào)度問題。為了確保算法在多平臺的可用性,他們提出一種帶有前瞻和回溯能力的確定構(gòu)造算法。bianchessi等擴(kuò)展了cordeau和laporte的研究,解決了多星多軌道的敏捷衛(wèi)星調(diào)度問題。整個調(diào)度過程分為三個階段,后兩階段采用禁忌搜索算法。采用列生成算法保證用戶的最大效用。tangpattanakul等提出一種有偏隨機遺傳算法解決多目標(biāo)的敏捷衛(wèi)星調(diào)度問題,最大化成像收益,同時確保不同用戶之間的收益比較均衡。
針對msop問題的研究目前比較有限。lemaitre等對敏捷衛(wèi)星成像調(diào)度問題進(jìn)行了定義,并提出了約束規(guī)劃和局部搜索兩種算法。cordeau和laporte將敏捷衛(wèi)星調(diào)度問題轉(zhuǎn)化為帶時間窗口的車輛路徑問題(vehicleroutingproblemwithtimewindows,vrptw),提出一種禁忌搜索算法進(jìn)行求解,該算法的主要思想是將現(xiàn)有解朝著鄰域中的最優(yōu)解轉(zhuǎn)移,同時維護(hù)一個已訪問解的禁忌列表,以防止算法出現(xiàn)循環(huán),同時在目標(biāo)函數(shù)中引入一個懲罰因子,以松弛成像時間窗口約束。
綜上所述,目前的技術(shù)對敏捷衛(wèi)星調(diào)度問題的不足主要體現(xiàn)在:
(1)現(xiàn)有技術(shù)中,大多將敏捷衛(wèi)星姿態(tài)轉(zhuǎn)換時間簡化為固定時間,對于敏捷衛(wèi)星的時間依賴特性的研究不夠深入,沒有最大化發(fā)揮敏捷衛(wèi)星的機動能力。
(2)現(xiàn)有技術(shù)中的算法,均是針對小規(guī)模算例進(jìn)行的,針對大規(guī)模算例的算法效率有待提高。
(3)現(xiàn)有技術(shù)中的msop問題由于只處理一個軌道,與事實并不相符。實際上敏捷衛(wèi)星調(diào)度問題需要解決的是同時優(yōu)化多個軌道的msp問題,其復(fù)雜程度相比msop問題大大提高。
(4)現(xiàn)有針對敏捷衛(wèi)星調(diào)度技術(shù)中,國外研究較為領(lǐng)先,國內(nèi)尚屬起步階段,對于我國敏捷衛(wèi)星調(diào)度的研究較為有限。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法來克服或至少減輕現(xiàn)有技術(shù)的上述缺陷中的至少一個。
為實現(xiàn)上述目的,本發(fā)明提供一種面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法,所述面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法包括如下步驟:
step1,建立敏捷衛(wèi)星調(diào)度問題的約束滿足模型;
step2,進(jìn)行算法參數(shù)初始化;根據(jù)step1中約束滿足模型求解初始解:利用貪婪規(guī)則,將約束滿足模型中的任務(wù)按照優(yōu)先級排列,在優(yōu)先級相同的情形下優(yōu)先選取成像時間窗口早的任務(wù),生成可行初始解s0,計算其收益為r0,并令初始解s0為當(dāng)前解sc和最優(yōu)解sb;
step3,在當(dāng)前解sc的鄰域內(nèi)進(jìn)行調(diào)整,得到新解s’c調(diào)整方法具體包括:
step31,選取一個刪除算子,在當(dāng)前解sc的鄰域內(nèi)進(jìn)行破壞操作:根據(jù)所選擇的刪除算子定義的選擇規(guī)則刪除當(dāng)前解sc中的部分任務(wù),得到破壞解,并將被刪除的任務(wù)存入需求銀行;
step32,選取一個插入算子,在破壞解的鄰域內(nèi)進(jìn)行修復(fù)操作:根據(jù)所選擇的插入算子定義的選擇規(guī)則在需求銀行中選擇部分任務(wù),在破壞解中插入,得到修復(fù)解,該修復(fù)解為新解s’c;
step4,計算新解s’c的收益r’c,如果新解s’c的收益r’c相比當(dāng)前解sc的收益rc有所提高,則令新解s’c為當(dāng)前解sc,新解s’c的收益r’c為當(dāng)前解sc的收益;否則,采用模擬退火機制判定是否接受新解s’c為當(dāng)前解sc,同時相應(yīng)更新當(dāng)前解sc和當(dāng)前解的收益rc;如果新解s’c的收益r’c相比最優(yōu)解sb的收益rb有所提高,則令新解s’c為最優(yōu)解sb,新解s’c的收益r’c為最優(yōu)解sb的收益rb;
step5,基于step4中計算的結(jié)果,更新step3中所選取的全部算子的分?jǐn)?shù);并在每個包含預(yù)設(shè)次數(shù)的迭代的階段結(jié)束后,根據(jù)在此階段的表現(xiàn),更新step3中所選取的全部算子的權(quán)重以及初始化step3中所選取的全部算子的分?jǐn)?shù);
step6,如果滿足終止條件,輸出最優(yōu)解和最優(yōu)解的收益值,否則執(zhí)行step3。
進(jìn)一步地,step1中的敏捷衛(wèi)星調(diào)度模型具體為:
s.t.
hi+di+trans(i,i+1)≤hi+1(5)
上述各公式中:
公式(1)是目標(biāo)函數(shù),所有觀測任務(wù)的優(yōu)先級之和,xij是一個布爾變量,該變量表示任務(wù)ti的第j個窗口是否被調(diào)度方案選取,若選取,則為1,否則為0;
約束(2)表示每個任務(wù)只能至多被觀測一次;
約束(3)和約束(4)中sti*為選取觀測的可見時間窗口的開始時間,eti*為選取觀測的可見時間窗口的結(jié)束時間,dli表示任務(wù)的規(guī)定最晚觀測時間;
約束(5)定義了兩個任務(wù)之間的姿態(tài)轉(zhuǎn)換時間trans(i,i+1),前一任務(wù)觀測結(jié)束加姿態(tài)轉(zhuǎn)換時間不能晚于后一觀測任務(wù)的開始;
約束(6)給出了xij取值的條件,當(dāng)窗口被包含在調(diào)度方案中,則取值為1,否則為0,tobs為輸出的觀測任務(wù)集合,owi為任務(wù)ti的觀測時間窗口;
約束(7)給出了姿態(tài)轉(zhuǎn)換時間的計算方法,其中δg為相鄰兩個任務(wù)觀測姿態(tài)角的變化值,v1~v4則定義了不同角度變化下的四種姿態(tài)調(diào)整速度;
約束(8)代表衛(wèi)星的存儲約束,|rk|代表衛(wèi)星第k個軌道進(jìn)行成像的數(shù)目,m為每個軌道可以進(jìn)行觀測的最大時長。
進(jìn)一步地,step31中,刪除算子包括:
隨機刪除算子:從當(dāng)前解中隨機選取q個任務(wù)刪除;
基于優(yōu)先級的刪除算子:從當(dāng)前解中選取q個優(yōu)先級最低的任務(wù)刪除;
基于可見機會的刪除算子:從當(dāng)前解中選取q個觀測機會多的任務(wù)刪除,觀測機會由任務(wù)的可見時間窗口的數(shù)量決定;
基于沖突度的刪除算子:刪除q個沖突度最高的任務(wù),任務(wù)的沖突度定義為與任務(wù)的當(dāng)前觀測窗口交叉的其他任務(wù)可見時間窗口的數(shù)目;
批量刪除算子1:該算子將一次性選取多個具有某種共同屬性的任務(wù)刪除,這里定義為刪除處于同一軌道的任務(wù),軌道的選取依賴于該軌道已安排任務(wù)的優(yōu)先級之和,優(yōu)先級小的軌道中的任務(wù)將被首先刪除,直至滿足q個任務(wù);
批量刪除算子2:算子將一次性選取多個具有某種共同屬性的任務(wù)刪除,這里定義為刪除處于同一軌道的任務(wù),軌道的選取依賴于軌道上已安排任務(wù)的數(shù)量,優(yōu)先刪除具有最小已安排任務(wù)數(shù)量的軌道中的任務(wù)。
進(jìn)一步地,step32中,插入算子包括:
貪婪插入算子:為了最大化收益,該算子每次從任務(wù)銀行中選取優(yōu)先級最大的任務(wù),并嘗試插入;
最少可見機會插入算子:優(yōu)先選取觀測機會少的任務(wù),并嘗試插入;
最小沖突度插入算子:優(yōu)先插入沖突度小的任務(wù),這種任務(wù)將引入盡可能少的沖突到新解中。
進(jìn)一步地,step5中,對所選取算子的分?jǐn)?shù)進(jìn)行更新的方法包括:
τi=τi+δ1:如果達(dá)到新的全局最優(yōu)解;
τi=τi+δ2:如果新解沒有被采納,但好于當(dāng)前解,差于最優(yōu)解;
τi=τi+δ3:如果新解差于當(dāng)前解,但新解被采納;
τi=τi+δ4:如果新解沒有被采納;
其中,τi指的是算子當(dāng)前的分?jǐn)?shù),δ1、δ2、δ3和δ4分別指的是根據(jù)四種不同表現(xiàn),給對所選取的算子的分?jǐn)?shù)的增量,δ1>δ2>δ3>δ4。
進(jìn)一步地,step5中,對算子權(quán)重進(jìn)行更新的方法包括:
其中,λ∈[0,1],是一個控制常數(shù),表示算子權(quán)重對于每個階段算子表現(xiàn)變化的敏感程度;
nd和nr分別代表了兩類算子的個數(shù);在第一個階段內(nèi),由于算子的沒有歷史權(quán)重,所有的權(quán)重初始化為1,算子隨機進(jìn)行選取,但在前20次迭代內(nèi),必須使全部算子至少被選中過一次;
每次迭代需要選出一對刪除算子和插入算子,采用輪盤賭機制對刪除算子進(jìn)行選取,采用下式計算算子被選中的概率:
其中ωj代表更新過的算子權(quán)重;
采用模擬退火機制對沒有提高收益的新解進(jìn)行采納的判斷:令t溫度系數(shù)為,rc為當(dāng)前解sc的收益值,當(dāng)r’c>rc時,則新解s’c被采納;否則,根據(jù)以下概率采納s’c:
每一次迭代,采用模擬退火標(biāo)準(zhǔn)調(diào)整溫度值t;第n次迭代時溫度值tn=ctn-1,其中c為退火系數(shù);為了確保退火過程緩慢和平穩(wěn),初始溫度設(shè)置為:
本發(fā)明針對敏捷衛(wèi)星調(diào)度問題(agilesatelliteschedulingproblem,assp)的時間依賴特性,以最大化觀測目標(biāo)的收益為目標(biāo),構(gòu)建了assp的約束滿足模型,并提出了基于自適應(yīng)大鄰域搜索(adaptivelargeneighborhoodsearch,alns)的求解框架,生成無沖突的調(diào)度方案。alns算法的優(yōu)勢在于,綜合了變鄰域結(jié)構(gòu)和大鄰域結(jié)構(gòu)的優(yōu)勢:對于大部分的優(yōu)化問題,都可以確定一系列的啟發(fā)式規(guī)則,這些規(guī)則構(gòu)成了alns的核心部分的算子。每種算子對應(yīng)一類鄰域結(jié)構(gòu),通過衡量算子表現(xiàn)調(diào)整算子被選中的概率,從而改變搜索的鄰域結(jié)構(gòu),提高算法的收斂特性;由于大鄰域具有多樣性,算法可以以一種結(jié)構(gòu)化的方式探索大部分的解空間,得到的解具有更高的魯棒性,不容易陷入局部最優(yōu)。
附圖說明
圖1是本發(fā)明所提供的面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法一優(yōu)選實施方式的流程示意圖。
圖2a是利用本發(fā)明提供的alns算法和現(xiàn)有的aco算法的任務(wù)采取區(qū)域分布模式時任務(wù)完成率的曲線對比示意圖。
圖2b是利用本發(fā)明提供的alns算法和現(xiàn)有的aco算法的任務(wù)采取全球分布模式時任務(wù)完成率的曲線對比示意圖。
圖3a是利用本發(fā)明提供的alns算法和現(xiàn)有的aco算法的任務(wù)采取區(qū)域分布模式時任務(wù)收益率的曲線對比示意圖。
圖3b是利用本發(fā)明提供的alns算法和現(xiàn)有的aco算法的任務(wù)采取全球分布模式時任務(wù)收益率的曲線對比示意圖。
具體實施方式
在附圖中,使用相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。
在本發(fā)明的描述中,術(shù)語“中心”、“縱向”、“橫向”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明保護(hù)范圍的限制。
相對于急劇增長的用戶需求,敏捷衛(wèi)星的觀測能力還是有限的,因而敏捷衛(wèi)星調(diào)度問題是一個過度訂閱問題,為了最大化系統(tǒng)的效能,以最大化觀測任務(wù)的收益為優(yōu)化目標(biāo)。
本實施例提出的面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法包括后文提及的alns算法,alns算法本質(zhì)上是一個基于多鄰域結(jié)構(gòu)的局部搜索框架,是對大鄰域搜索算法的改進(jìn)。根據(jù)經(jīng)驗,鄰域較小則容易陷入局部最優(yōu)解,鄰域越大,能夠搜索到的局部最優(yōu)解越好,也就能使最終解更精確。但鄰域的增大會導(dǎo)致每次迭代的時間延長。因此大鄰域搜索需要有效的鄰域搜索方法。大鄰域搜索算法通過對解的破壞操作和修復(fù)操作在解的鄰域中進(jìn)行搜索,在該框架下不同算子通過競爭調(diào)整當(dāng)前解,算子多為一些簡單而快速的啟發(fā)式規(guī)則,因此計算時間短。每次迭代中,當(dāng)前解中的大部分任務(wù)被修改,破壞算子與插入算子一起生成新的解,破壞算子用以刪除當(dāng)前解中的任務(wù),插入算子用以插入新的任務(wù)。
本實施例提供的alns在大鄰域搜索算法的基礎(chǔ)上引入了自適應(yīng)層,使算法在算子選取上具有一定的智能性。alns算法的基本框架如圖1所示,內(nèi)循環(huán)基于模擬退火機制。每次循環(huán)迭代中,分別選取一個破壞算子和一個插入算子,由自適應(yīng)層根據(jù)算子在之前迭代中的表現(xiàn)控制算子被選取的概率。為最優(yōu)解的搜索貢獻(xiàn)更大的算子被賦予更高的分?jǐn)?shù),從而提高它在接下來的迭代中被選中的概率,算子的選取采用輪盤賭方法。新的解如果滿足了一定的接受條件,則被接受。經(jīng)過一定次數(shù)的迭代后,所有算子的分?jǐn)?shù)被重置,重新計算被選中的概率。整個流程不斷迭代,直到滿足終止條件。
因此,面向敏捷衛(wèi)星調(diào)度的自適應(yīng)大鄰域搜索方法包括如下步驟:
step1,建立敏捷衛(wèi)星調(diào)度問題的約束滿足模型。
在日常的衛(wèi)星運控中,需要考慮很多包括與資源相關(guān)、用戶需求以及運行管理相關(guān)的約束,為了簡化問題,突出研究重點,本實施例只考慮與資源以及與時序相關(guān)的幾個關(guān)鍵約束。區(qū)域目標(biāo)已經(jīng)被分解為衛(wèi)星一次過境可以拍攝的多個條帶,若一次過境無法完成,則任務(wù)失?。恍l(wèi)星的電量充足;沒有考慮衛(wèi)星任務(wù)的回傳;存儲約束用每個軌道進(jìn)行成像的最長時間表示;環(huán)境方面,可見時間窗口位于地影區(qū)時無法成像。
本實施例中的約束滿足模型可以簡化為:給定任務(wù)集合t,第i個任務(wù)ti∈t都包含優(yōu)先級pi和持續(xù)時間di,任務(wù)ti的可見時間窗口集合為twi。本實施例需要確定每個任務(wù)ti的開始時間hi,以最大化可被觀測的任務(wù)的優(yōu)先級之和。約束滿足模型的輸出為一個帶有時間和觀測角度的任務(wù)序列。約束滿足模型具體如下:
s.t.
hi+di+trans(i,i+1)≤hi+1(5)
上述各公式中:
公式(1)是目標(biāo)函數(shù),所有觀測任務(wù)的優(yōu)先級之和。公式(1)中:1個任務(wù)ti具有多個可見時間窗口,xij是一個布爾變量,該變量表示任務(wù)ti的第j個窗口是否被調(diào)度方案選取,若選取,則為1,否則為0。
約束(2)表示每個任務(wù)ti只能至多被觀測一次,每個任務(wù)具有多個窗口,至多被選取一次,因此,對于一個任務(wù)ti,只能有一個窗口對應(yīng)的xij等于1,其余都為0。
約束(3)和約束(4)中sti*為選取觀測的可見時間窗口的開始時間,eti*為選取觀測的可見時間窗口的結(jié)束時間,dli表示任務(wù)的規(guī)定最晚觀測時間。因此,約束(3)和約束(4)表示任務(wù)的觀測時段必須落在其可見時間窗口內(nèi),同時不能晚于任務(wù)的規(guī)定最晚觀測時間。
約束(5)定義了兩個任務(wù)之間的姿態(tài)轉(zhuǎn)換時間trans(i,i+1),前一任務(wù)觀測結(jié)束加姿態(tài)轉(zhuǎn)換時間不能晚于后一觀測任務(wù)的開始,即兩個相鄰任務(wù)的時間間隔必須滿足任務(wù)間的姿態(tài)轉(zhuǎn)換時間。
約束(6)給出了xij取值的條件,當(dāng)窗口被包含在調(diào)度方案中,則取值為1,否則為0,其中tobs為輸出的觀測任務(wù)集合,owi為任務(wù)ti的觀測時間窗口,即任務(wù)ti的觀測時段。
約束(7)給出了姿態(tài)轉(zhuǎn)換時間的計算方法,其中δg為相鄰兩個任務(wù)觀測姿態(tài)角的變化值,v1~v4則定義了不同角度變化下的四種姿態(tài)調(diào)整速度。
約束(8)代表衛(wèi)星的存儲約束,其中|rk|代表衛(wèi)星第k個軌道進(jìn)行成像的數(shù)目,m為每個軌道可以進(jìn)行觀測的最大時長。
step2,首先將算法中涉及的參數(shù)進(jìn)行初始化;根據(jù)step1中的模型求解初始解,具體包括:
step21,利用貪婪規(guī)則,將約束滿足模型中的任務(wù)按照優(yōu)先級排列,在優(yōu)先級相同的情形下優(yōu)先選取成像時間窗口早的任務(wù),生成可行初始解s0。
step22,利用生成的可行初始解s0,通過輸入上述公式(1),可以計算得到初始解s0的收益為r0。
step23,令初始解s0為當(dāng)前解sc和最優(yōu)解sb,即令sc←s0,sb←s0。
step3,在當(dāng)前解sc的鄰域內(nèi)進(jìn)行調(diào)整,得到新解s’c。
該步驟中,新解通過一系列的破壞和修復(fù)鄰域操作而得到,為了將alns算法運用于本問題,本步驟分別設(shè)計了鄰域搜索中的破壞操作和修復(fù)操作方法,每種方法都包含了多種操作算子,這些算子決定了解在其鄰域中可行的變化,新解通過這些算子的迭代操作而獲得。
step3中的“在當(dāng)前解的鄰域內(nèi)進(jìn)行調(diào)整得到新解”的方法具體包括:
step31,選取一個刪除算子,在當(dāng)前解sc的鄰域內(nèi)進(jìn)行破壞操作:根據(jù)所選擇的刪除算子定義的選擇規(guī)則刪除當(dāng)前解sc中的部分任務(wù),得到破壞解,并將被刪除的任務(wù)存入需求銀行;其中,刪除算子是用于從當(dāng)前解中選取一定數(shù)量的任務(wù)進(jìn)行刪除,進(jìn)而允許新的任務(wù)的插入,所有被刪除的任務(wù)被存入到需求銀行中,需求銀行中的所有任務(wù)都可以被插入到被破壞的解中。step31中的刪除算子包括:
隨機刪除算子:從當(dāng)前解中隨機選取q個任務(wù)刪除。
基于優(yōu)先級的刪除算子:從當(dāng)前解中選取q個優(yōu)先級最低的任務(wù)刪除。
基于可見機會的刪除算子:從當(dāng)前解中選取q個觀測機會多的任務(wù)刪除,觀測機會由任務(wù)的可見時間窗口的數(shù)量決定。
基于沖突度的刪除算子:刪除q個沖突度最高的任務(wù),任務(wù)的沖突度定義為與任務(wù)的當(dāng)前觀測窗口交叉的其他任務(wù)可見時間窗口的數(shù)目。
批量刪除算子1:該算子將一次性選取多個具有某種共同屬性的任務(wù)刪除,這里定義為刪除處于同一軌道的任務(wù),軌道的選取依賴于該軌道已安排任務(wù)的優(yōu)先級之和,優(yōu)先級小的軌道中的任務(wù)將被首先刪除,直至滿足q個任務(wù)。
批量刪除算子2:算子將一次性選取多個具有某種共同屬性的任務(wù)刪除,這里定義為刪除處于同一軌道的任務(wù),軌道的選取依賴于軌道上已安排任務(wù)的數(shù)量,優(yōu)先刪除具有最小已安排任務(wù)數(shù)量的軌道中的任務(wù)。
step32,選擇一個插入算子,在破壞解的鄰域內(nèi)做修復(fù)操作:根據(jù)所選擇的插入算子定義的選擇規(guī)則,在需求銀行中選擇部分任務(wù),并將之插入在破壞解中,得到修復(fù)解,該修復(fù)解為新解s’c。
該步驟中,插入算子與刪除算子相反,插入算子是從需求銀行中選取任務(wù),并將其插入到由step31得到的破壞解中,以實現(xiàn)解的修復(fù),進(jìn)而生成新解。step32中的插入算子包括:
貪婪插入算子:為了最大化收益,該算子每次從任務(wù)銀行中選取優(yōu)先級最大的任務(wù),并嘗試插入。
最少可見機會插入算子:優(yōu)先選取觀測機會少的任務(wù),并嘗試插入。
最小沖突度插入算子:優(yōu)先插入沖突度小的任務(wù),這種任務(wù)將引入盡可能少的沖突到新解中。
step4,通過將step3計算得到的新解s’c輸入上述公式(1),可以計算得到新解s’c的收益r’c,比較新解s’c的收益r’c與當(dāng)前解sc的收益rc和最優(yōu)解sb的收益rb,具體如下:
如果新解s’c的收益r’c相比當(dāng)前解sc的收益rc有所提高,則令新解s’c為當(dāng)前解sc,新解s’c的收益r’c為當(dāng)前解sc的收益,即sc←s’c,rc←r’c。
如果新解s’c的收益r’c相比當(dāng)前解sc的收益rc并沒有提高,則采用模擬退火機制判定是否接受新解s’c為當(dāng)前解sc,在采用模擬退火機制判定接受新解為當(dāng)前解的情形下,相應(yīng)更新當(dāng)前解sc和當(dāng)前解的收益rc。如果判定不接受新解為當(dāng)前解的情形下,則舍棄掉新解,當(dāng)前解保持不變,下一次迭代還是在當(dāng)前解鄰域內(nèi)調(diào)整。
如果新解s’c的收益r’c相比最優(yōu)解sb的收益rb有所提高,則令新解s’c為最優(yōu)解sb,新解s’c的收益r’c為最優(yōu)解sb的收益rb,即令sb←s’c,rb←r’c;“最優(yōu)解”可以理解為到目前為止,算法通過輸入上述公式(1)計算得到的收益最大的解。
step5,基于step4中計算的結(jié)果,更新step3中所選取的全部算子的分?jǐn)?shù);并在每個包含預(yù)設(shè)次數(shù)(比如下文出現(xiàn)的
算子的權(quán)重包括兩個方面:一部分繼承自歷史階段,一部分來源于當(dāng)前階段算子的分?jǐn)?shù)。
為了保證本發(fā)明方法的搜索效率,該步驟設(shè)置了自適應(yīng)層。為了實現(xiàn)算子的自適應(yīng)選取,為每個算子都設(shè)置一個分?jǐn)?shù)和權(quán)重,并將根據(jù)算子在搜索過程中的表現(xiàn)更新每個算子的分?jǐn)?shù)和權(quán)重,在迭代中能夠得到全局最優(yōu)解或者較優(yōu)解的算子將會獲得更高的分?jǐn)?shù),進(jìn)而在下階段迭代中被選中的概率將更高。本發(fā)明方法對于算子的選擇是基于輪盤賭的選取機制,保證搜索效率高的算子,能夠更多地被采用。
本發(fā)明方法令每
一旦一個算子被選中,則該算子的分?jǐn)?shù)根據(jù)以下的公式進(jìn)行更新:
τi=τi+δ1:如果達(dá)到新的全局最優(yōu)解。
τi=τi+δ2:如果新解沒有被采納,但好于當(dāng)前解,差于最優(yōu)解。
τi=τi+δ3:如果新解差于當(dāng)前解,但新解被采納。
τi=τi+δ4:如果新解沒有被采納。
其中,τi指的是算子當(dāng)前的分?jǐn)?shù)。δ1、δ2、δ3和δ4分別指的是根據(jù)四種不同表現(xiàn),給對所選取的算子的分?jǐn)?shù)的增量,δ1>δ2>δ3>δ4。
在每個階段結(jié)束后,對算子的權(quán)重進(jìn)行更新的方法包括:
其中,λ∈[0,1],是一個控制常數(shù),表示算子權(quán)重對于每個階段算子表現(xiàn)變化的敏感程度。nd代表刪除算子的個數(shù),nr代表插入算子的個數(shù)。
在第一個階段內(nèi),由于算子的沒有歷史權(quán)重,所有的權(quán)重初始化為1,算子隨機進(jìn)行選取,但在前20次迭代內(nèi),必須使全部算子至少被選中過一次。
每次迭代需要選出一對刪除算子和插入算子,采用輪盤賭機制對刪除算子進(jìn)行選取,采用下式計算算子被選中的概率:
其中ωj代表更新過的算子權(quán)重;
采用模擬退火機制對沒有提高收益的新解進(jìn)行采納的判斷:令t溫度系數(shù)為,rc為當(dāng)前解sc的收益值,當(dāng)r’c>rc時,則新解s’c被采納;否則,根據(jù)以下概率采納s,c:
每一次迭代,采用模擬退火標(biāo)準(zhǔn)調(diào)整溫度值t;第n次迭代時溫度值tn=ctn-1,其中c為退火系數(shù);為了確保退火過程緩慢和平穩(wěn),初始溫度設(shè)置為:
step6,如果滿足終止條件,輸出最優(yōu)解和最優(yōu)解的收益值,否則執(zhí)行step3。該步驟中的“終止條件”有兩個:1,達(dá)到設(shè)定的最大迭代次數(shù)。2,所有任務(wù)都成功調(diào)度。該步驟中達(dá)到其中任一終止條件即可。
利用本發(fā)明提供給的alns對結(jié)果進(jìn)行分析,分析過程如下:
采用c#語言在visualstudio2013中構(gòu)建模型和算法,并在intelcorei51.70hz,8gbram的筆記本電腦中進(jìn)行實驗。
共設(shè)計了兩類不同任務(wù)分布模式的15個算例用以測試alns算法的適用性,第一類算例中的任務(wù)采取區(qū)域分布模式,目標(biāo)點的位置分布在我國經(jīng)緯范圍內(nèi),任務(wù)數(shù)量最少為50個,使用c-50表示,每次增加25個任務(wù),最多為200個任務(wù)(c-200);第二類算例中的任務(wù)采取全球分布模式,目標(biāo)點隨機分布在全球,任務(wù)最少為50個(w-50),每次增加50個,最多為400個任務(wù)(w-400)。
為了突出alns的算法性能,同時采用標(biāo)準(zhǔn)蟻群算法(antcolonyoptimization,aco)對問題進(jìn)行了求解。算法的參數(shù)配置方面,alns算法迭代次數(shù)為5000次,每次迭代刪除任務(wù)比例為10%,每
表1alns與aco算法求解結(jié)果對比
主要從任務(wù)完成率、收益率以及計算時間三個指標(biāo)對算法的性能進(jìn)行評價。任務(wù)完成率指的是進(jìn)行觀測的任務(wù)占全部具有可見時間窗口的任務(wù)的百分比,任務(wù)收益率指的是全部已經(jīng)觀測任務(wù)的收益之和占全部具有可見時間窗口的任務(wù)優(yōu)先級之和的百分比。表1中已經(jīng)將兩種算法中較優(yōu)的結(jié)果用加粗標(biāo)出。
從表1可以明顯看出,alns在大多數(shù)的算例中,任務(wù)的完成率、收益率和計算時間都要優(yōu)于aco。區(qū)域分布模式下,alns算法的完成率約比aco算法的完成率高30%~50%,而收益率則高出aco算法約20%~40%,而計算時間則要快2~3倍。在全球分布模式下,alns在任務(wù)數(shù)量較少時的各項指標(biāo)均優(yōu)于aco算法,但差距并不明顯,當(dāng)任務(wù)數(shù)量增對達(dá)到200以上時,alns表現(xiàn)出了強大的優(yōu)越性,在僅僅比aco算法使用多10%左右的時間下,取得了高20%以上的高完成率與高收益率。
aco算法之所以在任務(wù)數(shù)量增大時表現(xiàn)下降,是因為將螞蟻數(shù)量限制在30個,導(dǎo)致任務(wù)數(shù)量增多時,難以找到較優(yōu)解,這也是aco算法在任務(wù)數(shù)量增大時耗時小于alns的原因,理論上如果加大螞蟻數(shù)量,得到的任務(wù)完成率與收益率會更高,計算時間也會大大提高。但盡管螞蟻數(shù)量較少,aco算法仍然消耗了大量的計算時間,同時,在任務(wù)數(shù)量較少時,也沒有體現(xiàn)出優(yōu)越性。
圖2a、圖2b和圖3a、圖3b展示的是兩種算法在兩種分布模型下完成任務(wù)數(shù)量和獲得收益的對比情況??梢钥闯?,兩種算法在隨著任務(wù)數(shù)量增大的情況下,任務(wù)的完成數(shù)量和收益值的增長速度變慢,逐漸出現(xiàn)飽和現(xiàn)象。但無論從任務(wù)數(shù)量還是獲得收益來看,alns算法都比aco都具有更好的性能。
因此,綜合上述結(jié)果,alns在兩種分布模式下以及各種任務(wù)數(shù)量下,均表現(xiàn)出較強的搜索效率,在利用更少的時間的情況下取得了更高的完成率與收益率。
敏捷衛(wèi)星作為新一代對地觀測衛(wèi)星,具有三個方向的自由度,使得衛(wèi)星對底面目標(biāo)的可見時間窗口大大延長,因而觀測能力得到極大提高,能夠完成更多復(fù)雜任務(wù),但也使得其任務(wù)調(diào)度問題成為具有時間依賴性的復(fù)雜組合優(yōu)化問題。
針對敏捷衛(wèi)星對地觀測任務(wù)調(diào)度中的時間依賴問題,本實施例提出一種自適應(yīng)大鄰域搜索算法進(jìn)行求解。共設(shè)計了6種刪除算子及3種插入算子進(jìn)行鄰域搜索。仿真實驗中共生成了兩種分布模式下的15組算例,并與蟻群算法求解進(jìn)行比較。實驗結(jié)果表明,在兩種分布模式下,alns均能在使用更少時間得到更優(yōu)的解,證明了算法的有效性。
最后需要指出的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。