在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于WindowCE的雙向啟發式搜索算法的改進設計及應用方案

電子設計 ? 來源:電子技術應用 ? 作者:張歆奕,吳今培 ? 2021-03-31 13:45 ? 次閱讀

作者:張歆奕,吳今培,張其善

車載導航儀也稱為車載定位和導航系統(Vehicle Location and Navigation System。它的主要功能是利用全球定位系統(GPS)獲取定位信息并與電子地圖進行匹配,以決定車輛的當前位置并用圖形化方式顯示;按要求規劃從出發地到目的地的最優駕駛路線;按照預先設定的路線,自動根據車輛的位置向駕駛員提供操作指令引導駕駛;提供與電子地圖相關的集成信息服務;提供無線通信服務等。車載導航儀把先進的全球衛星定位技術、地理信息技術、數據庫技術、多媒體技術和現代通信技術綜合在一起?能夠實時、高效地向駕駛員提供多種重要信息,具有很強的實用價值和廣闊的市場前景。

路徑規劃是車載導航儀的重要功能模塊。在開發車載導航儀過程中,為了實現路徑規劃模塊,對單車輛路徑規劃算法進行了研究。

1 路徑規劃算法

所謂路徑規劃,就是在路網中找到任意給定兩點之間的最優路徑。最優的標準是旅行費用最小或最大。旅行費用可以是距離、時間或速度等因素。路徑規劃主要算法有:迪杰斯特拉(Dijkstra)算法及其改進算法、啟發式搜索算法、雙向搜索算法和雙向啟發式搜索算法等。

迪杰斯特拉算法是解決兩點之間最短距離的有效算法。算法的思想是?從原節點開始,算法每前進一步,都找到一個與原節點之間費用(距離)最小的節點,直至找到所有節點離原節點的最小費用。該算法的特點是?只要各段路徑的費用非負,一定可以找到從原節點到各節點的最優解。缺點是需遍歷所有節點。算法的運行時間為O slogn 1,其中n、s分別為路徑節點和路段的總數。單車導航沒有必要找到所有節點到原節點的最優路徑。改進的迪杰斯特拉算法在找到目標節點的最優路徑后,算法停止。其運行時間為O bd,其中b是各節點的平均后繼節點數,d為算法的搜索深度,即遍歷樹的層數。

啟發式搜索算法引入啟發式估價函數f‘n=g n+h’n,其中gn表示從原節點到當前節點n的實際費用,h‘n為當前節點n到目標節點的估計費用。啟發式搜索算法基本同于改進的迪杰斯特拉算法,唯一不同的是前者的費用是f’n,而后者為g n。估計費用h‘ n能引導算法優先搜索接近目標節點的節點,因此比改進的迪杰斯特拉算法有更快的速度。其運行時間為O bd。注意這里的d要比改進的迪杰斯特拉算法中的d要小。若路網中任意兩點之間存在最優路徑,而且估計費用滿足可納性,即h’ n小于從節點n到目標節點之間的實際費用,那么通過該算法一定可以找到一條最優路徑。

前面兩種算法都是從原節點到目標節點沒單一方向進行搜索的算法。雙向搜索算法的思想是:不僅進行從原節點到目標節點的前向搜索,而且進行從目標節點到原節點的后向搜索。在單CPU硬件平臺條件下,兩個方向的搜索交替進行。成功實現雙向搜索有兩個條件,即合適的搜索停止條件和前向后向搜索切換標準。其算法時間為O bd/2。若雙向搜索算法中加入估計費用函數,便是更快的雙向啟發式搜索算法1。

2 雙向啟發式搜索算法的改進和實現

2.1 算法的優化與改進

通過對雙向啟發式搜索算法的仔細分析,發現算法主要圍繞兩個表進行操作,即OPEN表和CLOSE表。前者用于存放已經搜索但尚未確定最小費用的節點,稱labbled節點;后者用于存放已經搜索且最小費用已知的節點,稱scanned節點。后者也用于存放路徑回朔指針等。對OPEN表的主要操作有插入一個i節點insert i,刪除費用值最小的節點delete 和減小其中某個節點i的費用decrease i。算法對OPEN表的操作極為頻繁。若用高效的數據結構來實現該表及其操作,可以提高算法的效率和速度。最后用有高效算法的最小堆4實現了OPEN表及其操作,優化了算法。具體實現的函數如下:

void filter_down int START int ENDOFHEAP//由起點START從上而下排列堆;

void decrease int NODE//更新減少堆中節點NODE的費用f‘值;

void filter_up int START //由起點START從下而上排列堆;

void heap_create int MAXSIZE //創建堆;

void heap_destructor//析構函數;

int insert int NODE//把節點NODE插入堆;

int remove_min int &iMinNode//刪除堆中最小費用f’值的節點。

在實際的路網中,路段有不同的屬性,如高速公路、收費路段、單行路段等。有些路段可能因修建或發生交通故障而暫時封閉。因此在進行路徑規劃時,算法應該考慮路網中路段的屬性,才能進行符合實際的規劃,否則理論上規劃出來的最優路徑可能是不通的。為此,對算法進行了改進。增加一個變量紀錄各路段的屬性,算法每搜索一新的路段,都要檢查該路段的屬性,若是限制的路段,算法不做任何處理。同時路徑規劃算法入口參數中應說明限制的內容。這樣就能根據用戶的意愿或實時交通信息,避免走某些特定的路段。

2.2 搜索停止條件、搜索切換標準和估計費用函數

前面提到,成功實現雙向搜索算法必須有合適的搜索停止條件和切換標準。兩個標準沒有現成的理論依據。經過對車載導航儀實際應用的分析和反復試驗,終于找到可靠有效的標準。其中停止條件為:(1)搜索到這樣一個節點iNODEmin,它在前向后向搜索過程中均被標為scanned節點;(2)gl iNODEmin +g2 iNODEmin確實是最小的,其中gl iNODEmin表示從原節點到iNODEmin的最小費用,g2 iNODEmin表示從目標節點到iNODEmin的最小費用。如果只滿足第一個條件就停止搜索,找到的最優路徑不一定是最優的。只有加上第二個條件,才能確保找到最優的路徑,但付出的代價是要多搜索幾十個點。具體的搜索停止條件如圖1所示。

此外,經過實驗發現,如前向搜索的步數和后向搜索的步數不同,則算法的總的搜索節點數增加。因此兩個方向上的搜索步數應相同,然后切換。但搜索步距過小或過大,也會增加總搜索量。最后定下的切換標準是,每個方向搜索20步后切換方向。此外,前向搜索估計費用函數hl‘n定義為從當前節點n到終點的歐氏距離,后向估計費用函數h2’ n定義為從n到原節點的歐氏距離。由于這兩個距離均小于從n到目標節點或原節點的路徑的實際距離,因此hl‘n和h2’n滿足可納性。

2.3 算法流程

改進的雙向啟發式搜索算法主要流程如下:

(1)把原節點移入前向CLOSE表,即令flagl原節點=scanned,其費用gl原節點=0,其它節點的費用為無窮。

(2)對原節點所有后繼節點i進行如下操作:

·判斷路徑(原節點,I)是否限制路段,是處理下一個后繼節點,否則繼續;

·計算i的費用f1I =g1 I+hl‘i;

·置i的搜索狀態flag1 i=labbled;

·把i的后向指針指向原節點,即link1 i=原節點;

·把i插入OPEN1表,即insert1 i。

(3)判斷OPEN1表是否為空,若為空提示出錯,算法停止;否則從OPEN1表中移出費用值f1最小的節點iNODEmin,令節點i的搜索狀態flag1 iNODEmin=scanned,判斷iNODEmin是否滿足搜索終止條件。若滿足跳轉至(7),否則對iNODEmin的所有后繼節點i進行如下操作:

·判斷路徑(iNODEmin,I)是否限制路段,是處理下一節點,否則繼續;

·計算i的費用f1 i=g1 I+h1’i;

·若節點i的搜索狀態flag1 i=unlabbled,則令其費用f1 i=g1 I+h1‘ i,link1i=iNODEmin insert1 i;

·如果節點i的flag1 i=labbled,計算節點i新的費用g1’I =g1 iNODEmin+從iNODEmin到i的實際費用,若g1‘ I <g1 i,令g1 i=g1’I ,link1 i=iNODEmin,decrease1 i;否則繼續。

·若flag1 i=scanned,計算g1‘i =g1 iNODEmin+從iNODEmin到i的實際費用,若g1’ i<g1 i,令g1 i=g1‘ i,link1i=iNODEmin,flag1 i=labbled,inertl i;

·判斷前向搜索是否進行了20步,是跳轉至(4)(第一次切換)或(6)(第二次以后的切換),否則跳轉至(3)。

(4)同(1),只是對CLOSE2操作;

(5)同(2),只是對OPEN2和CLOSE2操作;

(6)同(3),只是對OPEN2和CLOSE2操作,切換時跳轉至(3);

(7)計算最優路徑的費用,分別從搜索停止節點到原節點和從搜索停止節點到目標節點回朔,報告解路徑。上述流程中(1~3)步為前向搜索,(4~6)為后向搜索。

3 試驗結果及結論

作者用C語言實現了雙向啟發式搜索算法和其它三種算法,并用約有10000個節點的美國紐約地圖進行了大量路徑規劃試驗。試驗的部分數據如表1所示。

表中的數據除起止節點外,為相關算法的搜索節點數,括弧中數據為一次測試中該算法的搜索點數少于改進的迪杰斯特拉算法的搜索點數的百分比。大量試驗統計表明,啟發式搜索算法的搜索空間比改進的迪杰斯特拉算法少1.5%,雙向搜索算法的搜索空間比改進的迪杰斯特拉算法減少26.6%,雙向啟發式搜索算法的搜索空間比改進的迪杰斯特拉算法少28.0%。算法運算時間與搜索點數成正比。雙向搜索的效果較好,啟發式的效果較差。主要原因是試驗地圖數據庫給出的節點坐標是經緯度,估計費用直接用兩點的經緯度算出,其值很小,所以引導的效果不好。進行坐標變換后,啟發式的效果應有比較大的改善,雙向啟發式搜索算法的速度會更快。

算法程序全部用C語言編寫,所用功能模塊均以函數的形式給出,以便移植到基于WindowCE的硬件平臺。總之改進的雙向啟發式搜索算法快速高效,已經成功用于正在開發的車載導航儀。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 無線通信
    +關注

    關注

    58

    文章

    4720

    瀏覽量

    144927
  • 衛星
    +關注

    關注

    18

    文章

    1756

    瀏覽量

    68228
  • 數據庫
    +關注

    關注

    7

    文章

    3905

    瀏覽量

    65858
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于WindowCE硬件平臺上改善車載導航雙向啟發式搜索算法的研究

    路徑規劃是車載導航儀的重要功能模塊。在開發車載導航儀過程中,為了實現路徑規劃模塊,對單車輛路徑規劃算法進行了研究。
    發表于 04-06 11:22 ?798次閱讀
    基于<b class='flag-5'>WindowCE</b>硬件平臺上改善車載導航<b class='flag-5'>雙向</b><b class='flag-5'>啟發式</b><b class='flag-5'>搜索算法</b>的研究

    混合啟發式算法在汽車調度中的應用

    混合啟發式算法在汽車調度中的應用將蟻群優化和變鄰域下降搜索VND相結合,形成一種混合啟發式算法ACS_VND,應用于客運公司的汽車調度,求解
    發表于 09-19 09:21

    改進雙向啟發式搜索算法主要流程是怎樣的?

    如何對雙向啟發式搜索算法進行改進和實現?改進雙向啟發式
    發表于 05-17 06:51

    改進的二進制搜索算法原理是什么?有什么優勢?

    改進的二進制搜索算法原理是什么?改進的二進制搜索算法有什么優勢?
    發表于 05-20 07:12

    布谷鳥搜索算法源程序

    cs優化灰色預測模型,優化算法,仿生學算法,元啟發式算法。
    發表于 08-05 18:37 ?12次下載

    一種改進的鄰近粒子搜索算法

    一種改進的鄰近粒子搜索算法
    發表于 01-07 20:32 ?0次下載

    一種改進的自由搜索算法_任誠

    一種改進的自由搜索算法_任誠
    發表于 03-14 17:47 ?3次下載

    基于時序行為分析的自適應混合啟發式協同優化算法

    演化流過程模型,基于日志活動間的隱含依賴關系改進過程邏輯的啟發式挖掘規則,然后定義基于時序行為的老化因子,并引入高斯變異的多種群協作的自適應策略,改進粒子群優化算法的全局和局部精確尋優
    發表于 11-21 14:48 ?2次下載

    提出一種基于啟發式搜索算法在解空間搜索候選智能體的工程方法

    鑒于當前認知神經科學和人工智能工程所遇到的困難,華為 2012 實驗室的研究人員提出了一種新的通用人工智能工程方法:使用學習算法的穩定性作為在特定場景中的適合度函數的啟發式搜索方法。論文將其方法與人
    的頭像 發表于 12-21 17:15 ?5915次閱讀
    提出一種基于<b class='flag-5'>啟發式</b><b class='flag-5'>搜索算法</b>在解空間<b class='flag-5'>搜索</b>候選智能體的工程方法

    單規格一刀切矩形排樣的啟發式搜索算法

    針對單規格一刀切二維矩形排樣問題,提出了一種啟發式搜索算法,稱為大小工件分治擇優匹配(bigitem smallitem divide-and-conquer best-fit,簡稱BSDBF
    發表于 12-28 16:01 ?1次下載
    單規格一刀切矩形排樣的<b class='flag-5'>啟發式</b><b class='flag-5'>搜索算法</b>

    基于網頁排名算法面向論文索引排名的啟發式方法

    為了提高學術論文檢索的精準性,進而為學術研究提供便利,提出了針對學術論文檢索問題的排名策略。首先,介紹了基于網頁排名算法面向論文索引排名的啟發式方法,其中利用Hash索引技術有效地減少了稀疏矩陣計算
    發表于 12-30 17:00 ?0次下載

    基于區分對象集的啟發式屬性約簡算法

    基于正域的屬性約簡算法是利用下近似思想,僅考慮被正確區分樣本數的約簡算法。借鑒上近似的思想,利用鄰域信息粒的概念定義了區分對象集,探討了其基本性質,并提出了基于區分對象集的屬性重要度度量及啟發式屬性
    發表于 01-05 11:28 ?0次下載

    啟發式算法和遺傳混合算法在流水車間的應用

    啟發式算法和遺傳混合算法在流水車間的應用
    發表于 06-30 16:32 ?16次下載

    基于啟發式搜索算法的無人機航跡規劃

    基于啟發式搜索算法的無人機航跡規劃
    發表于 07-02 11:15 ?24次下載

    量子啟發式提升投資收益:指數復制與指數優化

    金融行業或將是量子計算率先大規模應用的領域。近日,本源量子聯合新華指數團隊合作開發出量子啟發式算法,該算法可以在經典計算機上運行,能夠有效降低投資成本,加快決策效率,提升投資收益。什么是量子
    的頭像 發表于 11-01 16:55 ?1421次閱讀
    量子<b class='flag-5'>啟發式</b>提升投資收益:指數復制與指數優化
    主站蜘蛛池模板: eeuss久久久精品影院 | 天堂最新版在线地址 | 欧美另类图片亚洲偷 | 国产精品久久久久久久牛牛 | 国产a三级三级三级 | 色综合美国色农夫网 | 久久99国产精品久久99 | 欧美一级做一a做片性视频 欧美一级做一级做片性十三 | 五月婷婷俺也去开心 | 日韩中文电影 | 色五五月五月开 | 国产免费久久 | 天天干天天干天天干天天干天天干 | 黄色在线看网站 | 最近2018中文字幕免费看2019 | kkkbo色综合| 国产成人精品日本亚洲网站 | 天堂网一区 | 日本69xxxx| 欧美一级欧美三级在线观看 | 777kkk亚洲综合欧美色老头 | 午夜啪| 国产激情三级 | 丰满年轻岳欲乱中文字幕 | 久久鲁视频 | 黄色大片在线免费观看 | 黄色国产在线视频 | 久久久久免费 | 国内视频一区二区三区 | 国产香蕉75在线播放 | 美女视频一区二区 | 日本在线视频不卡 | 免费看曰批女人爽的视频网址 | 污污的网站免费阅读 | 另类图片综合网 | 性做久久久久久久久 | 人人爽天天爽夜夜爽曰 | 天天夜夜狠狠一区二区三区 | 国产免费一级高清淫曰本片 | 美女色黄一男一女 | 中日韩免费视频 |