李 想,孫 鼎,安 毅,陳 勇,滕云龍
(1.電子科技大學 機械與電氣工程學院,成都 611731;2.中國西南電子技術研究所,成都 610036;3.海裝重大項目中心,北京 100071)
在衛(wèi)星導航接收機進行選星過程中,傳統(tǒng)方法主要以幾何精度因子(Geometric Dilution of Precision,GDOP)為依據,采用遍歷的方式搜索最優(yōu)集合,或通過幾何構型選出經驗解。對于遍歷的方法來說,可見星的數目決定其運算次數。對于幾何構型方法來說,幾何構型隨著選星數量的增加越來越復雜,且實際操作時為找出體積最大的解,往往也要進行遍歷。由于當前接收機可以接收到大量可見星[1-3],傳統(tǒng)的選星方法難以在短時下得出合適的選星集合。在實際的工程場景下,基于遍歷的傳統(tǒng)選星方法難以勝任。
遺傳算法對于優(yōu)化非線性等復雜問題具有獨特的優(yōu)勢[4]。當前已存在一些遺傳算法選星的研究。與傳統(tǒng)方法相比,遺傳算法可以不經過遍歷就可以得到次優(yōu)解或最優(yōu)解。宋丹等人[5]提出了一種基于遺傳算法的選星方法,在交叉和變異中穿插了優(yōu)選過程,避免了進行個體淘汰,并通過實驗確定了遺傳算法選星的參數規(guī)律,并給出了推薦的參數方案。陳燦輝等人[6]提出了一種基于二進制編碼的交叉算子,用變異操作來輔助交叉,使得基因交換既可以雙向傳遞也可以單向傳遞,使得交叉概率高于50%時與互補交叉概率有所區(qū)別,這種變異算子實際上把變異操作和交叉操作糅合,變相增大了變異概率?;艉接畹热薣7]提出了一種基于遺傳算法的組合系統(tǒng)選星方法,從選星數量角度減少了運算量。這些研究基本上都固定了交叉和變異的概率,且如果算子相互糅合,參數量化規(guī)律會有一定的偏差。Zhu[8]對交叉和變異概率進行了改進,但是這種方法是基于適應度的密集程度來進行映射的,需要遍歷當前種群的適應度,計算相對復雜,且密集程度的判斷標準由于算例不同很難界定。綜上所述,對于交叉和變異概率的改進仍需要繼續(xù)研究。
針對上述問題,本文提出了基于種群數量控制與成熟因子映射的雙系統(tǒng)遺傳選星算法。相較于其它遺傳算法選星方案,本文提出計算相對簡單的成熟因子來反映種群基因的相似程度,并根據成熟因子調整交叉和變異的概率,一方面避免種群過早成熟陷入局部最優(yōu),另一方面節(jié)省交叉和變異的操作時長。此外,本文方法通過引入種群數量控制策略,可以避免較后子代種群數量過大而迭代過慢的情況,在保證選星集合的GDOP搜索精度的同時可以有效降低計算量。
成熟因子FM是對整個種群在交叉、變異操作后種群個體變得更加優(yōu)良的可能性的一種表征。依據當前種群成熟因子的大小對交叉與變異操作進行修改,以引導種群更好地“進化”。
在基因庫過于單調且變異機率較低的情況下,個體的變化幾乎只依賴于重組,使得種群多樣性不足,選星結果容易陷入局部最優(yōu),即出現早熟現象,因此本文將種群個體間的相似程度作為構建成熟因子FM的基礎,具體為當前種群前5個數量最多的基因的占比之和:
(1)
式中:Num(·)表示·的數目;Xj,Xk,Xl,Xm,Xn分別為當前種群中數量最多的前5個基因。
基于成熟因子映射實際上是通過對當前種群基因庫的多樣性進行評估,具體映射于交叉概率和變異概率的階梯變化?;蛑貜投冗^高,成熟度也越高,代表當前的種群基因庫已經進行了較多重組嘗試,此時在保留優(yōu)勢個體的前提下增加種群的多樣性;相反,種群基因重復度不高時,應該優(yōu)先探索當前基因庫的潛力,找出其中可能造成GDOP優(yōu)勢的基因組合。
幾何精度因子表征由幾何布局而產生的定位誤差相對于偽距測量誤差的放大倍數,用于評估選星集合的優(yōu)劣[9]。根據文獻[10],GDOP的評價標準見表1。
表1 GDOP評價標準Tab.1 Evaluation criteria for GDOP
(2)
在計算雙系統(tǒng)GDOP時,觀測矩陣鐘差參數系數的位置取決于參與運算的衛(wèi)星所屬的系統(tǒng)。雙系統(tǒng)幾何觀測矩陣的形式如下[11]:
(3)
選星問題實際上是尋找以GDOP值為評價標準的最優(yōu)或次優(yōu)衛(wèi)星組合,因此本文對遺傳因子(對應于具體的衛(wèi)星位置信息)采用序列編碼,即按照星歷中衛(wèi)星的順序對衛(wèi)星進行對應的實數編碼,將所需數量的衛(wèi)星序號組合為染色體。當需要計算染色體的適應度時,在可選衛(wèi)星列表中查找序號對應的衛(wèi)星具體位置信息進行計算。由于各系統(tǒng)衛(wèi)星在星歷文件中的順序是鄰近的,通過序號也可以對所選衛(wèi)星的系統(tǒng)進行標定,從而調整幾何觀測矩陣的形式,使其適應雙系統(tǒng)GDOP的計算。對于選星時可能會碰到5顆衛(wèi)星均來自同一系統(tǒng)的情況,以固定幾何觀測矩陣的形式依然可以通過虛擬一個相同的鐘差參數完成計算。
基于成熟因子映射的選星方法流程如圖1所示,選星算法主要包括獲取初始種群、父代選取和復制、成熟因子指導交叉、成熟因子指導變異、種群數量控制以及收斂判斷等關鍵步驟。
圖1 選星算法流程Fig.1 Flowchart of the satellite selection algorithm
1)獲取初始種群
遺傳算法是一種隨機搜索算法[12],初始種群的選取應該既體現出隨機性又能盡量體現樣本的統(tǒng)計特征。Sobol序列是一種構造方法簡單、分布均勻的低差異序列,相較于偽隨機數產生的序列更加均勻。因此,本文首先生成3組長度為可選衛(wèi)星總數的Sobol序列,對Sobol序列值的大小進行排序,并記錄下原序列的索引,得到分布均勻的低差異整數序列。將序列分割為長度為5的序列段構成各個單染色體個體的染色體,長度不足5的暫不構成染體,但仍然保留作為變異備選,這些個體構成初始種群。因此,初始種群的大小基本上和待選的可見星顆數的3/5保持一致。
2)父代選取和復制
為保留每代最優(yōu)GDOP指標,需要將適應度最高的個體復制到下一代,將適應度病態(tài)的個體直接剔除,剩下的種群按等間距多指針輪盤法進行選擇和復制。
3)成熟因子指導交叉
交叉實際上是基因庫內部組合的嘗試,本文采取均勻交叉,即每個基因位點均有可能發(fā)生單個位點的基因交換。由于均勻交叉實際是兩個單染色體個體各自位點基因進行交換,從概率上可以認為每條染色體交換基因占比期望與交換概率相等,而兩條染色體交換一定比例的基因和交換互補比例的互補位點基因是一樣的,因此認為單純交換操作中交換概率能夠發(fā)揮作用的上限實際上是50%。在成熟度較高的時候可以認為當前種群基因庫已經經過較為充分的組合,為節(jié)省運算,可以降低此時的交換概率。本文將成熟因子FM分段映射為交叉概率Pcross指導每個基因交換的操作。交叉概率Pcross映射函數為
(4)
4)成熟因子指導變異
將交叉后的個體進行均勻變異操作。變異實際上是種群內部基因庫和整個可見星集合基因庫的基因交流。已有文獻說明遺傳算法解決選星問題時,為避免陷入局部最優(yōu),變異概率應當取較高的值,但是變異操作需要隨機選取和檢索剩余基因庫需要較長的運算時間,高變異率意味著頻繁的變異操作,也會導致遺傳算法相同迭代數內的搜索時長增加。在成熟度較低的時候,種群基因多樣性較豐富,可以降低變異概率,讓基因充分組合,探索合適的選星集合,并減少變異操作的時長;在成熟度較高的時候,種群基因多樣性較匱乏,可以提高變異概率,加強基因交流。本文將成熟因子FM分段映射為交叉概率Pmutate指導每個基因交換的操作。交叉概率Pmutate映射函數為
(5)
經過交叉變異的種群連同適應度最高的精英個體一同組成下一代種群的備選集合。
5)種群數量控制
由于選星算法初始種群個體數與可見星個數有關,因此在可見星較多的情況下,種群個體數較多,需要多次計算適應度,運算成本較高。本文采取判斷種群是否超過限額的策略進行數量控制,將適應度最低的一批個體淘汰。由于最優(yōu)保留策略,種群數每代會累加1,限額淘汰可以使種群數量在限額附近波動,既可減少總的運算次數,也能在種群繁盛期進行更多的交叉重組嘗試,從而減少后續(xù)子代種群過大、代內計算過久的情況。本文采取的限額為初始種群數量的1.5倍,每次淘汰對應GDOP值最差的20%個體。
6)收斂判斷
由于遺傳算法是隨機搜索算法,雖然在采取精英保留策略[13]的情況下可保證收斂到最優(yōu)解,但收斂時間存在著不確定性,實際應用時應使用可接受最大GDOP門限或者進化代數門限進行收斂判斷,當滿足收斂條件時跳出進化迭代,輸出選星集合。
網絡新媒體傳播具有開放性、即時性、互動性等特點,深受普通民眾青睞,越來越多的網民群眾在新媒體平臺和渠道上發(fā)布觀點意見,表達利益訴求,產生了大量的輿情民意信息。地方政府部門通過對這些信息的收集和分析,能夠更好地了解本地公眾需求,有針對性地采取政策措施,提供公共產品和服務,及時發(fā)現和化解社會矛盾,不斷提升治理效能。同樣,地方政府利用新媒體打造與公眾直接對話的交流平臺,傳遞政府決策信息;并借助新媒體技術實現公共決策的多方參與和公開透明,從而促進地方政府治理能力提升。
從歐洲軌道測定中心(Center for Orbit Determination in Europe,CODE)發(fā)布的MGEX軌道鐘差文件2023年1月30日0時0分0秒中的軌道數據中,選取來自兩個系統(tǒng)的30顆俯仰角大于10°的衛(wèi)星(其中GPS衛(wèi)星10顆,BDS衛(wèi)星20顆),選取的接收機三維坐標為[-2 168 839.180 m,4 386 630.094 m,4 077 164.910 m]。
傳統(tǒng)的遍歷法選出的是最優(yōu)解,搜索時間也比較穩(wěn)定,可以作為評價選星結果的標準,因此將結果單獨列出。對于上述30顆可見衛(wèi)星集合而言,遍歷算法選星結果如表2所示。
表2 遍歷算法選星結果Tab.2 Results of the traversal algorithm for satellite selection
由于遺傳算法通常具有不確定性,所以實驗結果應該采取統(tǒng)計結果。按照前文所述選星參數標準和可見星數為30,此時初始種群數量為18,種群數量限額為27。本文對比所用的常規(guī)遺傳算法主體結構參考了文獻[14],各個主要環(huán)節(jié)有多種可選的方案,為了更直觀地體現改進點的效果,基于控制變量原則,除去成熟因子和種群數量控制相關的改進點外所選用機制均與本方法保持一致,交叉概率和變異概率則設為文獻[5,8]提供的最優(yōu)方案,即Pcross=0.9,Pmutate=0.9。測試發(fā)現,Pmutate=0.9時配精英保留策略能夠盡快跳出局部最優(yōu),但相同代數需要的搜索時間更長,與文獻[5]結論一致;Pcross對相同代數搜索精度的影響則不明顯。
設定進化代數為200,分別進行常規(guī)遺傳算法、成熟因子映射遺傳算法和引入種群數量控制的成熟因子遺傳算法各500次搜索,記錄每代GDOP最優(yōu)值,統(tǒng)計500次實驗每代最優(yōu)組合對應GDOP平均值構成200代內的最優(yōu)個體GDOP進化曲線,如圖2所示。
圖2 進化200代種群最優(yōu)GDOP進化對比Fig.2 Comparison of optimal GDOP evolution for populations of 200 evolutionary generations
記錄下進化代數200代平均搜索時間,如表3所示。
表3 進化200代平均搜索時間Tab.3 Average search time of 200 evolutionary generations
由圖2和表3可知,成熟因子映射交叉變異概率遺傳算法相較常規(guī)固定交叉變異概率遺傳算法在相同進化代數的搜索效率沒有明顯的差別,但是在相同代數內,成熟因子映射遺傳算法比固定交叉變異概率的常規(guī)遺傳算法平均節(jié)省約24.75%的搜索時間,這是由于成熟因子映射成功減少了不必要的交叉和變異操作。在此基礎上引入種群數量控制機制,相同代數下的搜索效率有所下降,但進化200代內搜索時間進一步節(jié)省了約55.32%。這是由于種群數量控制實際上減少了每代遍歷的個體數,一方面,每代檢索效率難免會有所下降;另一方面,隨著代數推進,相較于不斷增長的種群數量,每一代搜索時間的優(yōu)勢會越來越大。實際上在本節(jié)參數設定下,成熟因子映射交叉變異概率遺傳算法迭代到最優(yōu)組合總耗時比常規(guī)遺傳算法減少約4.20%,引入種群數量控制的成熟因子遺傳算法迭代到最優(yōu)組合總耗時仍然比常規(guī)遺傳算法減少約5.41%。
相較于耗費大量時間搜索最優(yōu)星座集合,在實際選星時,更傾向于選出保證解算精度的可用解。根據表1中GDOP評估標準,本文設置GDOP的門限為3,對3種方案分別進行10 000次搜索,統(tǒng)計搜索時間平均值,如表4所示。
表4 GDOP門限為3時平均搜索時間Tab.4 Average search time when GDOP threshold is 3
根據圖2可得,設定門限為3時3種方法的搜索性能相近,且迭代數平均不到20代,在迭代次數較小的情況下,成熟因子映射和種群數量控制在大多數實驗中起的作用不大,但是實測數據中成熟因子映射遺傳算法較常規(guī)算法提高了2.31%,種群控制的成熟因子遺傳算法進一步提升了7.20%,主要是這兩種策略在進化代數較多的情形下,可以縮短最差情況下的搜索時間,從而在可見星可組合得出的較優(yōu)解比較少時依然可以保持優(yōu)秀的搜索性能。
表5 進化20代平均搜索情況Tab.5 Average search for 20 generations of evolution
由表5可見,限定迭代20代條件下,在可見星數量15以上時,本文方法穩(wěn)定且快于遍歷法,各可見星方案下所用時長均小于0.1 s,相對于最優(yōu)GDOP的差距始終不超過20%,在最差的情況下進化20代GDOP仍然在4以內,根據表1評級仍可達到良。在可見星數量為10時,本文方法性能不足以替代遍歷法,這是因為遍歷法在10顆星中選取5顆,遍歷所需要的次數較少,遺傳算法的優(yōu)勢難以彰顯,但搜索20代所需的時間并不長,平均GDOP值僅比最優(yōu)GDOP值大1.86%,雖然最差的情況下GDOP值略大于4,但相較于最優(yōu)GDOP值也只大20.22%,相對于可見星數15以上時相對搜索精度更高。實際使用時可根據可見星數量多少酌情調整進化代數,以平衡搜索精度和搜索時間。在本文所用星歷數據下,在選定時刻和選定測站位置GPS+BDS衛(wèi)星仰角超過10°的衛(wèi)星僅有約30顆,因此未對超過30顆可見星的情況下進行搜索。本文所述方法取進化代數20代時在雙系統(tǒng)選星的大多數情況下均可滿足定位解算需求。
從圖2可看出搜索最優(yōu)GDOP與進化迭代數具有某種近似指數函數關系。由于每代相對于GDOP的搜索的貢獻度不同,推測指數函數的指數部分可能為正態(tài)分布,則GDOP或服從對數正態(tài)分布。
選取前節(jié)可見星為30顆時搜索的最優(yōu)個體對應的GDOP數據集繪制概率密度圖并對GDOP數據進行對數正態(tài)分布擬合,如圖3所示。圖中縱坐標為GDOP取值的概率密度而非GDOP取值的概率,由于概率密度函數在GDOP的數據取值全域積分為1,所以某一有限數值區(qū)間的概率密度可以大于1。
圖3 可見星30顆20代GDOP概率密度分布情況Fig.3 Probability density distribution of GDOP for 20 generations of evolution at 30 visible satellites
根據圖3可見,除去2.8和2.9區(qū)間內某一特解概率密度極高外擬合程度較高。上述推測具有一定的參考性。進一步將上節(jié)數據都進行對數正態(tài)分布擬合,繪制對數正態(tài)分布擬合函數匯總,如圖4所示。
圖4 各情況下20代GDOP概率密度分布情況Fig.4 Probability density distribution of GDOP for 20 generations of evolution at for some cases of the number of visible satellites
圖4中各情形下的遍歷最優(yōu)GDOP值也用同色點狀線標出,可見對于可見星15顆及以下擬合函數的均值已相當接近最優(yōu)GDOP值,一方面可以印證前文可以適當減少迭代數來進一步減少搜索時間的論斷;另一方面也說明當前擬合存在相對較大的失真,由于最優(yōu)GDOP值左側數據均為0,導致擬合得出的曲線均值偏右,實際分布優(yōu)于當前的擬合函數。對于可見星15顆以上的情況,最優(yōu)GDOP值左側數據占比較小,分布相對比較符合實際情況,相較于簡單統(tǒng)計平均值和標準差,基于擬和分布函數的期望和置信區(qū)間更能準確評估當前搜索方案下的獲得組合的GDOP值落在的區(qū)間。根據擬合分布獲得的各情況下期望和3σ置信區(qū)間如表6所示。
表6 對數正態(tài)分布擬合獲得的各情況下GDOP均值和置信區(qū)間Tab.6 GDOP means and confidence intervals for each case obtained by fitting the lognormal distribution
由表6可以看出,除可見星為10顆之外,剩余情況下GDOP搜索置信區(qū)間上限均低于4,由于3σ原則,GDOP搜索值落在區(qū)間外的可能性幾乎為0,可認為不發(fā)生,因此可認為幾乎不會出現超過表6所示置信區(qū)間上限的情況?;诒?所示最大值雖然高于置信區(qū)間上限,但是差距不大,仍然可以印證這一觀點(由于進行了10 000次實驗,出現超過置信區(qū)間上限的最大值是正常的,且擬合本身就存在誤差)。擬合實驗數據說明本文所述算法具有一定的穩(wěn)定度,可以進行重復搜索來提高結果的可信度。在應用場景中,由于本文所述方法搜索速度較快,完全可以進行重復選星搜索,取最低GDOP對應的選星組合進行定位解算。
在衛(wèi)星導航接收機定位解算過程中,為避免傳統(tǒng)遍歷選星方法需要耗費較長計算時間的問題以及常規(guī)遺傳選星算法固定高交叉變異概率造成冗余計算的情況,本文提出了引入成熟因子映射的雙系統(tǒng)衛(wèi)星導航接收機選星方法。該方法在保證可接受GDOP的同時,可以有效降低搜索成本。實驗結果表明,相較于傳統(tǒng)遍歷選星算法需要較長搜索時間,該算法的搜索時間大幅縮短,且得出的GDOP可以滿足定位需求;相較于常規(guī)遺傳算法,該方法可以明顯減少冗余計算,降低搜索時間。在進化200代的條件下,成熟因子映射遺傳算法比固定交叉變異概率的常規(guī)遺傳算法的搜索時間平均節(jié)省約24.75%,引入種群數量控制機制,每代搜索效率有所下降,但搜索時間進一步節(jié)省了約55.32%。在可見星15顆以上的情形下,本方法搜索時間穩(wěn)定優(yōu)于傳統(tǒng)遍歷法,各可見星方案下所用時長均小于0.1 s,且相對于最優(yōu)GDOP的差距始終不超過20%,在大多數情況下,本方法均可勝任選星任務。另一方面,由于遺傳算法是隨機搜索算法,單次搜索找到最優(yōu)解的時長是未知的,在極端情況下,可能存在選出的衛(wèi)星集合的GDOP數值極差或較低門限下解算時間極長的情形,雖然通過概率分布擬合可以認為發(fā)生這種概率的可能性極低,但本方法推薦以固定的迭代數為門限,保證每次搜索的時間幾乎保持一致,避免由于長時間搜索不到較低門限而無法得出可用的集合。本文從概率密度分布的角度對于搜索的期望進行評估,說明了在重復搜索下的結果期望是穩(wěn)定的。