女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于WindowCE的雙向啟發(fā)式搜索算法的改進(jìn)設(shè)計及應(yīng)用方案

電子設(shè)計 ? 來源:電子技術(shù)應(yīng)用 ? 作者:張歆奕,吳今培 ? 2021-03-31 13:45 ? 次閱讀

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

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

路徑規(guī)劃是車載導(dǎo)航儀的重要功能模塊。在開發(fā)車載導(dǎo)航儀過程中,為了實現(xiàn)路徑規(guī)劃模塊,對單車輛路徑規(guī)劃算法進(jìn)行了研究。

1 路徑規(guī)劃算法

所謂路徑規(guī)劃,就是在路網(wǎng)中找到任意給定兩點(diǎn)之間的最優(yōu)路徑。最優(yōu)的標(biāo)準(zhǔn)是旅行費(fèi)用最小或最大。旅行費(fèi)用可以是距離、時間或速度等因素。路徑規(guī)劃主要算法有:迪杰斯特拉(Dijkstra)算法及其改進(jìn)算法、啟發(fā)式搜索算法、雙向搜索算法和雙向啟發(fā)式搜索算法等。

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

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

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

2 雙向啟發(fā)式搜索算法的改進(jìn)和實現(xiàn)

2.1 算法的優(yōu)化與改進(jìn)

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

void filter_down int START int ENDOFHEAP//由起點(diǎn)START從上而下排列堆;

void decrease int NODE//更新減少堆中節(jié)點(diǎn)NODE的費(fèi)用f‘值;

void filter_up int START //由起點(diǎn)START從下而上排列堆;

void heap_create int MAXSIZE //創(chuàng)建堆;

void heap_destructor//析構(gòu)函數(shù);

int insert int NODE//把節(jié)點(diǎn)NODE插入堆;

int remove_min int &iMinNode//刪除堆中最小費(fèi)用f’值的節(jié)點(diǎn)。

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

2.2 搜索停止條件、搜索切換標(biāo)準(zhǔn)和估計費(fèi)用函數(shù)

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

此外,經(jīng)過實驗發(fā)現(xiàn),如前向搜索的步數(shù)和后向搜索的步數(shù)不同,則算法的總的搜索節(jié)點(diǎn)數(shù)增加。因此兩個方向上的搜索步數(shù)應(yīng)相同,然后切換。但搜索步距過小或過大,也會增加總搜索量。最后定下的切換標(biāo)準(zhǔn)是,每個方向搜索20步后切換方向。此外,前向搜索估計費(fèi)用函數(shù)hl‘n定義為從當(dāng)前節(jié)點(diǎn)n到終點(diǎn)的歐氏距離,后向估計費(fèi)用函數(shù)h2’ n定義為從n到原節(jié)點(diǎn)的歐氏距離。由于這兩個距離均小于從n到目標(biāo)節(jié)點(diǎn)或原節(jié)點(diǎn)的路徑的實際距離,因此hl‘n和h2’n滿足可納性。

2.3 算法流程

改進(jìn)的雙向啟發(fā)式搜索算法主要流程如下:

(1)把原節(jié)點(diǎn)移入前向CLOSE表,即令flagl原節(jié)點(diǎn)=scanned,其費(fèi)用gl原節(jié)點(diǎn)=0,其它節(jié)點(diǎn)的費(fèi)用為無窮。

(2)對原節(jié)點(diǎn)所有后繼節(jié)點(diǎn)i進(jìn)行如下操作:

·判斷路徑(原節(jié)點(diǎn),I)是否限制路段,是處理下一個后繼節(jié)點(diǎn),否則繼續(xù);

·計算i的費(fèi)用f1I =g1 I+hl‘i;

·置i的搜索狀態(tài)flag1 i=labbled;

·把i的后向指針指向原節(jié)點(diǎn),即link1 i=原節(jié)點(diǎn);

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

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

·判斷路徑(iNODEmin,I)是否限制路段,是處理下一節(jié)點(diǎn),否則繼續(xù);

·計算i的費(fèi)用f1 i=g1 I+h1’i;

·若節(jié)點(diǎn)i的搜索狀態(tài)flag1 i=unlabbled,則令其費(fèi)用f1 i=g1 I+h1‘ i,link1i=iNODEmin insert1 i;

·如果節(jié)點(diǎn)i的flag1 i=labbled,計算節(jié)點(diǎn)i新的費(fèi)用g1’I =g1 iNODEmin+從iNODEmin到i的實際費(fèi)用,若g1‘ I <g1 i,令g1 i=g1’I ,link1 i=iNODEmin,decrease1 i;否則繼續(xù)。

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

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

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

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

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

(7)計算最優(yōu)路徑的費(fèi)用,分別從搜索停止節(jié)點(diǎn)到原節(jié)點(diǎn)和從搜索停止節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)回朔,報告解路徑。上述流程中(1~3)步為前向搜索,(4~6)為后向搜索。

3 試驗結(jié)果及結(jié)論

作者用C語言實現(xiàn)了雙向啟發(fā)式搜索算法和其它三種算法,并用約有10000個節(jié)點(diǎn)的美國紐約地圖進(jìn)行了大量路徑規(guī)劃試驗。試驗的部分?jǐn)?shù)據(jù)如表1所示。

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

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

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 無線通信
    +關(guān)注

    關(guān)注

    58

    文章

    4705

    瀏覽量

    144834
  • 衛(wèi)星
    +關(guān)注

    關(guān)注

    18

    文章

    1753

    瀏覽量

    68098
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3900

    瀏覽量

    65736
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于WindowCE硬件平臺上改善車載導(dǎo)航雙向啟發(fā)式搜索算法的研究

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

    混合啟發(fā)式算法在汽車調(diào)度中的應(yīng)用

    混合啟發(fā)式算法在汽車調(diào)度中的應(yīng)用將蟻群優(yōu)化和變鄰域下降搜索VND相結(jié)合,形成一種混合啟發(fā)式算法ACS_VND,應(yīng)用于客運(yùn)公司的汽車調(diào)度,求解
    發(fā)表于 09-19 09:21

    改進(jìn)雙向啟發(fā)式搜索算法主要流程是怎樣的?

    如何對雙向啟發(fā)式搜索算法進(jìn)行改進(jìn)和實現(xiàn)?改進(jìn)雙向啟發(fā)式
    發(fā)表于 05-17 06:51

    改進(jìn)的二進(jìn)制搜索算法原理是什么?有什么優(yōu)勢?

    改進(jìn)的二進(jìn)制搜索算法原理是什么?改進(jìn)的二進(jìn)制搜索算法有什么優(yōu)勢?
    發(fā)表于 05-20 07:12

    布谷鳥搜索算法源程序

    cs優(yōu)化灰色預(yù)測模型,優(yōu)化算法,仿生學(xué)算法,元啟發(fā)式算法
    發(fā)表于 08-05 18:37 ?12次下載

    一種改進(jìn)的鄰近粒子搜索算法

    一種改進(jìn)的鄰近粒子搜索算法
    發(fā)表于 01-07 20:32 ?0次下載

    一種改進(jìn)的自由搜索算法_任誠

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

    基于時序行為分析的自適應(yīng)混合啟發(fā)式協(xié)同優(yōu)化算法

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

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

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

    單規(guī)格一刀切矩形排樣的啟發(fā)式搜索算法

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

    基于網(wǎng)頁排名算法面向論文索引排名的啟發(fā)式方法

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

    基于區(qū)分對象集的啟發(fā)式屬性約簡算法

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

    啟發(fā)式算法和遺傳混合算法在流水車間的應(yīng)用

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

    基于啟發(fā)式搜索算法的無人機(jī)航跡規(guī)劃

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

    量子啟發(fā)式提升投資收益:指數(shù)復(fù)制與指數(shù)優(yōu)化

    金融行業(yè)或?qū)⑹橇孔佑嬎懵氏却笠?guī)模應(yīng)用的領(lǐng)域。近日,本源量子聯(lián)合新華指數(shù)團(tuán)隊合作開發(fā)出量子啟發(fā)式算法,該算法可以在經(jīng)典計算機(jī)上運(yùn)行,能夠有效降低投資成本,加快決策效率,提升投資收益。什么是量子
    的頭像 發(fā)表于 11-01 16:55 ?1380次閱讀
    量子<b class='flag-5'>啟發(fā)式</b>提升投資收益:指數(shù)復(fù)制與指數(shù)優(yōu)化