本發(fā)明涉及航空航天技術(shù)領(lǐng)域,尤其涉及一種基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法。
背景技術(shù):
啟發(fā)式算法是一種基于直觀或經(jīng)驗(yàn)構(gòu)造的近似算法,在可接受的花費(fèi)(如計(jì)算時(shí)間、占用空間等)下給出待解決組合優(yōu)化問題每一個(gè)實(shí)例的一個(gè)可行解,該可行解與最優(yōu)解的偏離程度不一定事先可以預(yù)計(jì)。啟發(fā)式算法通??梢苑譃橐徊剿惴?,改進(jìn)算法,數(shù)學(xué)規(guī)劃方法,解空間松弛算法和現(xiàn)代優(yōu)化算法等。針對(duì)啟發(fā)式算法,實(shí)際問題特征的抽取,求解的經(jīng)驗(yàn)和規(guī)則是其關(guān)鍵所在。在衛(wèi)星任務(wù)規(guī)劃問題中,任務(wù)安排具有較大的不確定性,受到能量約束與存儲(chǔ)約束等使用約束的影響,前面任務(wù)的安排對(duì)后續(xù)任務(wù)能否安排影響很大,特別是由于衛(wèi)星本身的能量是一個(gè)連續(xù)的不斷變化的量,時(shí)間不同做出動(dòng)作所消耗的存儲(chǔ)和能量都不同,每個(gè)動(dòng)作所消耗的能量難以量化,基于循環(huán)迭代的尋優(yōu)方法很難應(yīng)用于衛(wèi)星的調(diào)度?,F(xiàn)有技術(shù)中,采用基于時(shí)序的方式,強(qiáng)調(diào)進(jìn)行前瞻。在考慮安排當(dāng)前任務(wù)時(shí),每次前瞻若干步長(zhǎng)的任務(wù),在前瞻步長(zhǎng)之內(nèi)檢測(cè)任務(wù)與前瞻的任務(wù)是否沖突,決定當(dāng)前任務(wù)是否安排,確定當(dāng)前任務(wù)安排之后再安排衛(wèi)星定向的動(dòng)作(對(duì)日定向、對(duì)地定向)。該前瞻啟發(fā)式規(guī)劃算法的主要思想為:每次安排任務(wù)時(shí)只考慮當(dāng)前任務(wù)的取舍,安排當(dāng)前任務(wù)時(shí)前瞻一定步長(zhǎng)的任務(wù),如果這幾個(gè)任務(wù)與當(dāng)前任務(wù)存在沖突,則按照一定的規(guī)則取舍當(dāng)前任務(wù),每安排一個(gè)任務(wù)檢查前后兩個(gè)已安排任務(wù)之間是否能夠安排對(duì)日定向和對(duì)地定向。算法主要流程如下:Step1:在對(duì)本周期的所有任務(wù)進(jìn)行預(yù)處理之后,獲取本規(guī)劃周期的元任務(wù)信息及上周期已觀測(cè)未回傳任務(wù)信息;Step2:按照開始時(shí)間早的順序排列元任務(wù)(若兩個(gè)元任務(wù)的開始時(shí)間相同,則把結(jié)束時(shí)間早的元任務(wù)排在前面),形成元任務(wù)列表,設(shè)定前瞻(LOOKAHEAD)的最大步長(zhǎng)MaxLength;Step3:按順序選取當(dāng)前任務(wù),根據(jù)用戶偏好把放在合適的位置,檢查是否任務(wù)已經(jīng)執(zhí)行完畢,如果是轉(zhuǎn)則Step8,判斷當(dāng)前任務(wù)其后的前瞻任務(wù)是否存在嚴(yán)格沖突,直到找到一個(gè)與無嚴(yán)格沖突或者達(dá)到最大步長(zhǎng)限制;Step4:按照規(guī)則決定當(dāng)前任務(wù)是否安排觀測(cè),如果安排轉(zhuǎn)Step5,否則轉(zhuǎn)Step3;Step5:檢查電量及儲(chǔ)約束,計(jì)算姿態(tài)轉(zhuǎn)換時(shí)間,滿足則安排當(dāng)前任務(wù),轉(zhuǎn)Step6,否則轉(zhuǎn)Step3;Step6:把放入回傳窗口隊(duì)列,等待下一個(gè)回傳窗口按照一定規(guī)則回傳該任務(wù);Step7:檢查與之前任務(wù)之間能否安排對(duì)日定向或者對(duì)地定向活動(dòng),滿足時(shí)間要求則安排對(duì)日或?qū)Φ囟ㄏ?;轉(zhuǎn)Step3;Step8:檢查回傳隊(duì)列中是否還有已安排觀測(cè)沒有安排回傳的任務(wù),若有則輸出給仿真管控,滾動(dòng)到下一個(gè)周期進(jìn)行調(diào)度,輸出最終調(diào)度結(jié)果。在Step3中,若采取的成像策略是成像數(shù)量?jī)?yōu)先,則每次安排任務(wù)時(shí),把任務(wù)安排在最大時(shí)間窗口的最前點(diǎn);若采取的成像策略是成像質(zhì)量?jī)?yōu)先,則每次安排任務(wù)時(shí),把觀測(cè)任務(wù)安排在成像質(zhì)量最佳的時(shí)間點(diǎn);若成像策略是綜合效益優(yōu)先,如果時(shí)間與后續(xù)任務(wù)的最佳成像時(shí)間點(diǎn)不沖突,則任務(wù)安排在成像質(zhì)量最佳的時(shí)間點(diǎn),如果時(shí)間與后續(xù)任務(wù)的最佳成像時(shí)間點(diǎn)存在交錯(cuò),則把當(dāng)前任務(wù)安排在其最早成像時(shí)間點(diǎn),保證后續(xù)任務(wù)安排在其最佳成像時(shí)間點(diǎn)。在前瞻啟發(fā)算法中,當(dāng)前任務(wù)的取舍規(guī)則至關(guān)重要,因?yàn)樗鼪Q定了最終任務(wù)規(guī)劃方案的優(yōu)劣。簡(jiǎn)單地依據(jù)當(dāng)前任務(wù)優(yōu)先級(jí)與前瞻步長(zhǎng)內(nèi)后續(xù)任務(wù)優(yōu)先級(jí)之間的關(guān)系進(jìn)行取舍存在著明顯的缺陷,即使在僅考慮時(shí)間窗口的情況下,上述任務(wù)取舍規(guī)則仍不能保證方案的最優(yōu)性。因此,提供一種高效準(zhǔn)確的啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法是本領(lǐng)域技術(shù)人員亟需解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種高效準(zhǔn)確的啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法,對(duì)于某一次前瞻操作,假設(shè)當(dāng)前待規(guī)劃的任務(wù)是,當(dāng)前規(guī)劃時(shí)刻為,求解目標(biāo)是以優(yōu)先級(jí)之和為評(píng)價(jià)指標(biāo)從任務(wù)集中找出一個(gè)最優(yōu)任務(wù)規(guī)劃方案,然后判斷是否在此方案中,并依次判斷它的取舍問題;首先用表示以為開始規(guī)劃時(shí)刻、任務(wù)集中最優(yōu)規(guī)劃方案的優(yōu)先級(jí)之和,其中、都是正整數(shù),從而將求解目標(biāo)轉(zhuǎn)化為求及其對(duì)應(yīng)的規(guī)劃方案,具體步驟如下:Step1:設(shè)置循環(huán)變量,代表當(dāng)前待處理的任務(wù)是;已安排任務(wù)優(yōu)先級(jí)之和為;已規(guī)劃序列;當(dāng)前規(guī)劃時(shí)刻;Step2:對(duì)于當(dāng)前任務(wù),為判斷它是否應(yīng)當(dāng)安排,按如下步驟找出其對(duì)應(yīng)的前瞻子任務(wù)集合中的最優(yōu)規(guī)劃序列:Step2.1:按照公式和計(jì)算矩陣的邊界值,其中,是最優(yōu)前瞻任務(wù)規(guī)劃方案對(duì)應(yīng)的任務(wù)優(yōu)先級(jí)之和;Step2.2:按照公式計(jì)算矩陣的所有其它元素值,每個(gè)單元只計(jì)算一次;Step2.3:根據(jù)矩陣中的信息,用回退法求對(duì)應(yīng)的規(guī)劃方案;Step3:如果包含在規(guī)劃序列中,則,,;Step4:如果,則轉(zhuǎn)向Step2;否則算法結(jié)束,即為規(guī)劃結(jié)果。與現(xiàn)有技術(shù)相比,本發(fā)明所提供的基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法,具有以下優(yōu)點(diǎn):1、采用動(dòng)態(tài)規(guī)劃(DynamicProgramming,簡(jiǎn)稱DP)算法,以優(yōu)先級(jí)之和為評(píng)價(jià)指標(biāo)從任務(wù)集中找出一個(gè)最優(yōu)任務(wù)規(guī)劃方案,然后判斷是否在此方案中,并依次判斷它的取舍問題,且每次前瞻操作都按照上述動(dòng)態(tài)規(guī)劃的策略進(jìn)行任務(wù)取舍,從而,不僅可以保證問題解的全局最優(yōu)性,而且可通過避免重復(fù)計(jì)算來提高求解的效率;2、每一次前瞻操作的計(jì)算開銷不超過,其中為最后一個(gè)任務(wù)的結(jié)束時(shí)間與當(dāng)前規(guī)劃開始時(shí)間之差,可以簡(jiǎn)單稱之為規(guī)劃周期,對(duì)于整個(gè)任務(wù)集,由于總?cè)蝿?wù)數(shù)為,則找出最優(yōu)前瞻任務(wù)規(guī)劃方案的時(shí)間復(fù)雜度為,因此,采用動(dòng)態(tài)規(guī)劃方法,最優(yōu)前瞻規(guī)劃的計(jì)算開銷隨前瞻步長(zhǎng)K、規(guī)劃周期、總?cè)蝿?wù)數(shù)都成線性增長(zhǎng),由于規(guī)劃周期一般不超過一天即86400秒,所以上述時(shí)間復(fù)雜度是可以接收的,達(dá)到了使其針對(duì)前瞻步長(zhǎng)K不敏感的目的。綜上所述,本發(fā)明所提供的基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法,具有高效準(zhǔn)確的優(yōu)點(diǎn)。具體實(shí)施方式本發(fā)明的目的是提供一種高效準(zhǔn)確的啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法。為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面對(duì)本發(fā)明進(jìn)行詳細(xì)描述,本部分的描述僅是示范性和解釋性,不應(yīng)對(duì)本發(fā)明的保護(hù)范圍有任何的限制作用。在一種實(shí)施例中,本發(fā)明提供一種基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法,對(duì)于某一次前瞻操作,假設(shè)當(dāng)前待規(guī)劃的任務(wù)是,當(dāng)前規(guī)劃時(shí)刻為,求解目標(biāo)是以優(yōu)先級(jí)之和為評(píng)價(jià)指標(biāo)從任務(wù)集中找出一個(gè)最優(yōu)任務(wù)規(guī)劃方案,然后判斷是否在此方案中,并依次判斷它的取舍問題;首先用表示以為開始規(guī)劃時(shí)刻、任務(wù)集中最優(yōu)規(guī)劃方案的優(yōu)先級(jí)之和,其中、都是正整數(shù),從而將求解目標(biāo)轉(zhuǎn)化為求及其對(duì)應(yīng)的規(guī)劃方案,具體步驟如下:Step1:設(shè)置循環(huán)變量,代表當(dāng)前待處理的任務(wù)是;已安排任務(wù)優(yōu)先級(jí)之和為;已規(guī)劃序列;當(dāng)前規(guī)劃時(shí)刻;Step2:對(duì)于當(dāng)前任務(wù),為判斷它是否應(yīng)當(dāng)安排,按如下步驟找出其對(duì)應(yīng)的前瞻子任務(wù)集合中的最優(yōu)規(guī)劃序列:Step2.1:按照公式和計(jì)算矩陣的邊界值,其中,是最優(yōu)前瞻任務(wù)規(guī)劃方案對(duì)應(yīng)的任務(wù)優(yōu)先級(jí)之和;Step2.2:按照公式計(jì)算矩陣的所有其它元素值,每個(gè)單元只計(jì)算一次;Step2.3:根據(jù)矩陣中的信息,用回退法求對(duì)應(yīng)的規(guī)劃方案;Step3:如果包含在規(guī)劃序列中,則,,;Step4:如果,則轉(zhuǎn)向Step2;否則算法結(jié)束,即為規(guī)劃結(jié)果。與現(xiàn)有技術(shù)相比,本實(shí)施例所公開的基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法,具有以下優(yōu)點(diǎn):1、采用動(dòng)態(tài)規(guī)劃(DynamicProgramming,簡(jiǎn)稱DP)算法,以優(yōu)先級(jí)之和為評(píng)價(jià)指標(biāo)從任務(wù)集中找出一個(gè)最優(yōu)任務(wù)規(guī)劃方案,然后判斷是否在此方案中,并依次判斷它的取舍問題,且每次前瞻操作都按照上述動(dòng)態(tài)規(guī)劃的策略進(jìn)行任務(wù)取舍,從而,不僅可以保證問題解的全局最優(yōu)性,而且可通過避免重復(fù)計(jì)算來提高求解的效率;2、每一次前瞻操作的計(jì)算開銷不超過,其中為最后一個(gè)任務(wù)的結(jié)束時(shí)間與當(dāng)前規(guī)劃開始時(shí)間之差,可以簡(jiǎn)單稱之為規(guī)劃周期,對(duì)于整個(gè)任務(wù)集,由于總?cè)蝿?wù)數(shù)為,則找出最優(yōu)前瞻任務(wù)規(guī)劃方案的時(shí)間復(fù)雜度為,因此,采用動(dòng)態(tài)規(guī)劃方法,最優(yōu)前瞻規(guī)劃的計(jì)算開銷隨前瞻步長(zhǎng)K、規(guī)劃周期、總?cè)蝿?wù)數(shù)都成線性增長(zhǎng),由于規(guī)劃周期一般不超過一天即86400秒,所以上述時(shí)間復(fù)雜度是可以接收的,達(dá)到了使其針對(duì)前瞻步長(zhǎng)K不敏感的目的。綜上所述,本實(shí)施例所提供的基于動(dòng)態(tài)規(guī)劃的前瞻啟發(fā)式衛(wèi)星任務(wù)規(guī)劃算法,具有高效準(zhǔn)確的優(yōu)點(diǎn)。需要說明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括哪些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,由于文字表達(dá)的有限性,而客觀上存在無限的具體結(jié)構(gòu),對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)、潤(rùn)飾或變化,也可以將上述技術(shù)特征以適當(dāng)?shù)姆绞竭M(jìn)行組合;這些改進(jìn)潤(rùn)飾、變化或組合,或未經(jīng)改進(jìn)將發(fā)明的構(gòu)思和技術(shù)方案直接應(yīng)用于其它場(chǎng)合的,均應(yīng)視為本發(fā)明的保護(hù)范圍。