999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于網(wǎng)格地圖的雙A*算法的改進(jìn)方法

2019-11-13 01:36:11袁川涵
科技視界 2019年29期

袁川涵

【摘 要】隨著科技的發(fā)展和技術(shù)的提升,機(jī)器人在現(xiàn)代社會中的應(yīng)用越發(fā)廣泛。在機(jī)器人路徑規(guī)劃問題中,傳統(tǒng)的Dijkstra和A*算法為帶來了在運(yùn)算速度方面的諸多便利。但是Dijkstra和 A*算法也有著運(yùn)行效率偏低,找到最優(yōu)解的準(zhǔn)確率不高,路徑距離計(jì)算不精確等諸多問題。本文提出了基于雙A*算法的直線和曲線替代的方法,對在傳統(tǒng)網(wǎng)格地圖上的路徑問題就行了綜合的分析與算法上的改進(jìn)。在不提高算法計(jì)算復(fù)雜度的前提下,提升了機(jī)器人路徑規(guī)劃的空間距離的優(yōu)化和系統(tǒng)處理的效率,同時(shí)節(jié)省了處理過程的內(nèi)存占用。

【關(guān)鍵詞】路徑規(guī)劃;空間距離;雙A*算法

中圖分類號: TP18;TP242文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2019)29-0148-002

DOI:10.19694/j.cnki.issn2095-2457.2019.29.069

0 概述

隨著現(xiàn)代科技的發(fā)展,人類生活愈發(fā)依賴機(jī)器人的協(xié)作和輔助,機(jī)器人路徑規(guī)劃問題成為當(dāng)前研究的重要方向。人力成本的節(jié)約和機(jī)器人自身的效率的高低成了判定機(jī)器人是否實(shí)用的重要指標(biāo)。在機(jī)器人路徑規(guī)劃問題的眾多解決方法中,工程師們通常采取的是以Dijkstra算法為基礎(chǔ)的A*算法來解決機(jī)器人路徑問題,但是A*算法自身的局限性和單一性,導(dǎo)致在一些特殊情況中,A*算法求解出的最短路徑往往不是最優(yōu)解,并且具有占用系統(tǒng)內(nèi)存高,時(shí)間耗費(fèi)大等缺點(diǎn)。故在本文中我們討論了針對A*算法進(jìn)行了的優(yōu)化,并提出了一種新的最短路徑方法,能夠在減少其響應(yīng)時(shí)間的同時(shí)使路徑變得更平滑,該優(yōu)化方法相對于傳統(tǒng)的A*算法在效率得到了顯著的提升。

1 背景知識/算法介紹

1.1 Dijkstra算法

Dijkstra(迪杰斯特拉算法)算法是由荷蘭計(jì)算機(jī)科學(xué)家提出來以貪婪算法為基礎(chǔ)的,解決從單點(diǎn)到其余各點(diǎn)的最短路徑的計(jì)算方法,其主要解決的是有向圖的最短路徑問題。Dijkstra算法的核心是某個頂點(diǎn)出發(fā)向外拓展遍歷相鄰所有頂點(diǎn),找到最短解后再進(jìn)行下一輪的遍歷,直至到達(dá)所以目標(biāo)頂點(diǎn)。該算法雖然能得出最短路徑的最優(yōu)解,但是它要計(jì)算所有點(diǎn)之間的路徑,導(dǎo)致運(yùn)算效率偏低。Dijkstra算法的具體思路是,采用貪婪策略,建立一個數(shù)組Dis來保存起始點(diǎn)到各個頂點(diǎn)的最短距離,然后在建立一個集合T來保存已經(jīng)找到最短路徑的各個頂點(diǎn)。首先,原點(diǎn)A的路徑權(quán)重被賦為0(Dis(a)=0)。若對于頂點(diǎn)s存在能直接到達(dá)的邊(a,m),則把Dis(a)設(shè)為W(a,m),同時(shí)把所有其他頂點(diǎn)的路徑長度設(shè)為無窮大。當(dāng)程序開始時(shí)集合T只有頂點(diǎn)a。然后,從Dis數(shù)組選擇最小值,則該值就是源點(diǎn)a到該頂點(diǎn)的最短路徑,并且把該點(diǎn)加入到T中。再加入第一個頂點(diǎn)之后,需要判斷此頂點(diǎn)是否能夠到達(dá)其他頂點(diǎn)以及是否比從起點(diǎn)直接到其他頂點(diǎn)路徑更短,如果判斷有更優(yōu)解,則保存更優(yōu)解,再從Dis中找出最小值,重復(fù)上述動作,直到T中包含了圖的所有頂點(diǎn)。

1.2 A*算法

A*算法是建立在Dijkstra算法基礎(chǔ)上的一種啟發(fā)式搜索算法,根據(jù)一定的啟發(fā)函數(shù),求解最優(yōu)路徑。其啟發(fā)函數(shù)為

f(n)等于g(n)加h(n)(1)

其中:

f(n)為起始點(diǎn)與節(jié)點(diǎn)以及終點(diǎn)的代價(jià)函數(shù),g(n)為起點(diǎn)到當(dāng)前點(diǎn)的最短路徑的實(shí)際代價(jià)值,h(n)為當(dāng)前點(diǎn)到終點(diǎn)的估計(jì)代價(jià)值。

在整個函數(shù)中起關(guān)鍵性作用是h(n),其決定了A*算法運(yùn)算效率的高低。如果h(n)為0,那么只是g(n)在式中發(fā)揮作用,則A*算法就變?yōu)榱薉ijkstra算法,因此當(dāng)h(n)變小,則運(yùn)算量變大導(dǎo)致運(yùn)行速率降低。若h(n)小于節(jié)點(diǎn)到終點(diǎn)的真實(shí)代價(jià),那么此刻A*算法依舊能夠?qū)ふ易疃搪窂侥康摹H鬶(n)等于節(jié)點(diǎn)到終點(diǎn)的真實(shí)代價(jià),則A*算法可以達(dá)到更快尋找路徑且不向外擴(kuò)張以此得到效率最大化。若大于或遠(yuǎn)遠(yuǎn)大于節(jié)點(diǎn)到終點(diǎn)的代價(jià),g(n)基本不發(fā)揮作用,則A*算法就會變成BFS(Best-First Search)算法。

A*算法相比于Dijkstra算法,能極大地提高搜索效率與檢索速度,并且極大地減少了搜索的區(qū)域。但是傳統(tǒng)的A*算法由于其搜索速度緩慢,內(nèi)存占用大等缺點(diǎn),故在自動尋路問題中,工程師一般采用雙A*算法來解決問題。

1.3 雙A*算法

由于A*算法的搜索方式屬于單向遞進(jìn)搜索,即運(yùn)行每一步都在選取最優(yōu)解,當(dāng)所有的最優(yōu)解組合在一起則會形成最終的最優(yōu)路徑。雙A*算法的基本思想是在起始點(diǎn)和終點(diǎn)出發(fā),沿著正反兩個方向同時(shí)通過A*算法搜尋路線,當(dāng)各自方向上拓展出相同的最優(yōu)節(jié)點(diǎn)時(shí)停止搜索。其具體步驟如下:

(1)創(chuàng)建兩個open和兩個close表,open表存儲正反方向的拓展點(diǎn)信息,初始和終點(diǎn)也包含在內(nèi)。

(2)找出各自open表內(nèi)f(n)最小值select,并存進(jìn)各自close表格內(nèi),并以此點(diǎn)為父節(jié)點(diǎn)拓展子節(jié)點(diǎn),其子節(jié)點(diǎn)放入open表內(nèi)。

(3)判斷兩個select點(diǎn)是否滿足終止條件,如不滿足則繼續(xù)進(jìn)行(2)步驟,如滿足則停止程序并遍歷父節(jié)點(diǎn)存入result表作為最終路徑。

盡管A*算法對比Dijkstra等傳統(tǒng)算法的時(shí)候具有運(yùn)算效率高,內(nèi)存占用率低,運(yùn)行速度快等優(yōu)點(diǎn)。但是A*算法在面對復(fù)雜地形的問題時(shí),特別是起點(diǎn)寬闊和終點(diǎn)被復(fù)雜的障礙物包裹的地圖,A*算法會自動尋找到離終點(diǎn)最接近的點(diǎn),但是在尋路過程中因?yàn)檎系K物無法穿透導(dǎo)致路徑圍繞障礙物一圈直至到達(dá)終點(diǎn)。在此情況中,雙A*算法則更加具有實(shí)用性。雙A*算法在繼承了A*算法所有的優(yōu)點(diǎn)的同時(shí),增加了準(zhǔn)確性和尋路效率,減少了運(yùn)算時(shí)間。

2 改進(jìn)算法

在實(shí)際解決問題中,網(wǎng)格地圖會經(jīng)常出現(xiàn)連續(xù)折線路徑和大量直角轉(zhuǎn)彎的情況。此情況中機(jī)器人路徑選擇缺乏靈活性,且會增加路徑的長度和煩瑣程度。因此本文在基于雙A*算法的基礎(chǔ)上,采用直線替代法和短邊曲線替代法,以及面對折線過渡直角轉(zhuǎn)彎的特殊情況下,兩種方法互相配合以達(dá)到最大程度節(jié)省路徑的目的。

直線替代:本文采用直線替代和短邊曲線的方式來進(jìn)行雙A*算法的優(yōu)化。直線替代法是在路徑中出現(xiàn)連續(xù)折線,同時(shí)檢測是否存在障礙物。則系統(tǒng)自動判定優(yōu)化條件,在連續(xù)折線的情況下由連續(xù)折線的首端到連續(xù)折線的末端畫一條直線,以此來作為新的路徑。

短邊曲線:短邊曲線替代法是在路徑遇到直角轉(zhuǎn)彎這種情況,且兩邊長度a和b不同。則通過以短邊為半徑畫圓,其弧線作為路徑以便平滑地度過直角。

折線過渡直角轉(zhuǎn)彎:本文著重探討由折線到直角轉(zhuǎn)彎的過渡情況,這種情況通常以一條短邊連續(xù)向不同的方向轉(zhuǎn)彎兩次。因此會有不同的情況以及優(yōu)化方案。詳細(xì)的解決方案在本文的實(shí)驗(yàn)分析部分進(jìn)行詳細(xì)闡述。

3 實(shí)驗(yàn)分析

本文使用邊長為1的正方形網(wǎng)格地圖來進(jìn)行測試分析。在連續(xù)折線的情況下,通常采用在起點(diǎn)和終點(diǎn)連接一條直線來節(jié)省路徑。以一個正方形為例,正常情況下機(jī)器人尋路程序采取折線法,改進(jìn)后采取直線替代法由正方形的左上角畫一條直線到右下角。網(wǎng)格地圖每一邊的邊長為1,所以折線法的總路程為2。而直線替代法能夠有效地將路徑長度降低為1.141。相比原始方法降低了42.95%,且隨著折線數(shù)量的變長,能夠節(jié)省同樣比值的路徑,大大地提高小車的工作效率和運(yùn)算速度。

在直角轉(zhuǎn)彎的情況下,通常尋路程序采取筆直的沿著兩條直角邊為路徑,改進(jìn)后,以短直角邊為半徑的弧線作為小車的行駛路線。同樣以網(wǎng)格地圖為例,兩條直角邊長度為1,2。以1為半徑畫弧線,這一條弧線的長度為0.785,改進(jìn)前的總長度為3,改進(jìn)后為1.785。相比改進(jìn)前,路徑節(jié)省了40.5%。

在直角邊長度為2和3時(shí),通過計(jì)算得出弧線長度約為3.14,總長度為4.14,相比變長為1和2時(shí),效率降低但仍有一定的節(jié)省路徑。

但在短邊長度大于3的時(shí),此法不具有實(shí)用性。通過計(jì)算得出,在兩邊長度為3和4時(shí),總路程為7。而使用短邊曲線替代法的時(shí)候,總路程為8.065。因此當(dāng)短邊長度大于3的時(shí)候,我們采取直線替代法。通過計(jì)算得出直線替代法的總路程為5.24,相比原始路徑減少了25.1%的路徑。

圖1 示意圖

在連續(xù)折線轉(zhuǎn)直角邊的特殊情況下,小車的路徑問題通常需要考慮幾種不同的條件。我們以下圖為例,折線邊的長度為a,連接段的長度為b,直角段的長度為c。

(1)b大于6。

我們直接采取連接的方式,從連續(xù)線段的起點(diǎn)直至線段的終點(diǎn)。

(2)b小于或者等于6,a小于或者等于二分之一個b,b小于或者等于二分之一個b,我們采取短的那條邊的長度為半徑畫弧線。

(3)b小于6,a等于二分之一個b,b等于二分之一個b,我們采取直接畫弧線,半徑為任意一邊的長度。

(4)b小于6,a大于或者等于二分之一個b,b大于或者等于二分之一個b,我們采取以中間線段的1/2為半徑向兩邊畫弧線。

(5)b小于或者等于6,a小于或者等于二分之一個b,b大于或者等于二分之一個b或者a大于或者等于二分之一個b,b小于或者等于二分之一個b,我們采取讓短邊這一側(cè)用短邊長度為半徑畫弧線,而長邊則使用中間線段與短邊之差的長度為半徑畫弧線。

4 結(jié)論

本文主要研究了在經(jīng)典網(wǎng)格地圖中的路徑問題,提出了基于雙A*算法的改進(jìn)方法,在最短路徑算法中,使用直線和曲線進(jìn)行替代,解決傳統(tǒng)路徑所導(dǎo)致的路徑距離過長的問題。通過對地圖上空間距離的計(jì)算和對多種情況的具體分心,給出了改進(jìn)方法在路徑規(guī)劃上應(yīng)用的具體方案,使算法能夠得到最優(yōu)解,讓小車的路徑變得更加平滑和靈活。通過針對不同的路徑情況給出的不同規(guī)劃策略,使得在復(fù)雜的路徑問題能夠快速地找出最佳路徑。

本文實(shí)驗(yàn)和算法都是基于傳統(tǒng)的A*算法及其擴(kuò)展,后續(xù)將結(jié)合智能算法進(jìn)一步在效率和性能上進(jìn)行提升。

主站蜘蛛池模板: 蜜桃视频一区二区三区| 久久国产乱子| 一本色道久久88| 亚洲色图欧美视频| 亚洲第一区在线| 996免费视频国产在线播放| 亚洲成人网在线播放| 免费国产无遮挡又黄又爽| 国产成人精品第一区二区| 98精品全国免费观看视频| 欧美色香蕉| 一级成人a毛片免费播放| AV网站中文| 一级毛片网| 国产视频自拍一区| 99久久亚洲精品影院| 成人免费一级片| 欧美性猛交一区二区三区| 午夜视频免费一区二区在线看| 色综合久久无码网| 亚洲精品久综合蜜| 亚洲第一成人在线| 激情综合激情| 性69交片免费看| 精品中文字幕一区在线| 欧美亚洲国产一区| 在线日韩一区二区| 亚洲精品第五页| 国产精品片在线观看手机版| av在线人妻熟妇| 国产91透明丝袜美腿在线| 成人免费一区二区三区| 日韩黄色精品| 国产91无码福利在线| 欧美精品三级在线| 一本大道无码日韩精品影视| 国产黄色免费看| 国产精品久久自在自2021| 日韩成人午夜| 亚洲国产精品不卡在线| 色婷婷视频在线| 久996视频精品免费观看| 大香网伊人久久综合网2020| 香蕉eeww99国产在线观看| 五月婷婷丁香综合| 免费a级毛片18以上观看精品| 秋霞午夜国产精品成人片| 91福利在线观看视频| 午夜福利视频一区| 色婷婷色丁香| 久久中文无码精品| 久久永久免费人妻精品| 在线看片中文字幕| 欧美一级爱操视频| 国产在线拍偷自揄观看视频网站| 国产一二三区在线| 欧美一区精品| 一级毛片免费不卡在线| 国产91视频观看| 2020国产在线视精品在| 国产女人水多毛片18| 久久夜色精品国产嚕嚕亚洲av| 亚洲视频四区| 亚洲男人的天堂久久香蕉| 亚洲午夜福利精品无码不卡| www.亚洲一区二区三区| 一级毛片免费观看久| 99热线精品大全在线观看| 国产精品久久久久久久伊一| 色悠久久综合| 日韩亚洲高清一区二区| 国产亚洲欧美日韩在线一区二区三区| 亚洲欧美一级一级a| 亚洲中文精品人人永久免费| 国产拍揄自揄精品视频网站| 人妖无码第一页| 欧美三级日韩三级| 毛片免费在线视频| 国产无码网站在线观看| 日韩高清在线观看不卡一区二区 | 在线免费观看AV| 国产午夜精品鲁丝片|