亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于a*算法的地圖尋路方法、設備及計算終端的制作方法

文檔序號:6636943閱讀:248來源:國知局
一種基于a*算法的地圖尋路方法、設備及計算終端的制作方法
【專利摘要】本發(fā)明公開了一種基于A*算法的地圖尋路方法,適于在計算設備中執(zhí)行,該地圖包括具有多個節(jié)點的陣列,該計算設備包括列表存儲器,該列表存儲器中存儲有開啟列表及刪除列表,該方法包括步驟:判斷陣列中節(jié)點的數(shù)量是否小于預定值,如果確定該陣列中節(jié)點的數(shù)量小于預定值,則將開啟列表建成雙向鏈表;監(jiān)控陣列,獲取地圖尋路的開始節(jié)點及目標節(jié)點,并將開始節(jié)點加入雙向鏈表;刪除雙向鏈表表頭的節(jié)點,且將刪除的雙向鏈表表頭的節(jié)點加入刪除列表;以及判斷所刪除的雙向鏈表表頭的節(jié)點是否為目標節(jié)點,如果刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點,則繼續(xù)監(jiān)控陣列。本發(fā)明還提供了一種地圖尋路設備及包括根據(jù)本發(fā)明的地圖尋路設備的計算設備。
【專利說明】—種基于八#算法的地圖尋路方法、設備及計算終端

【技術領域】
[0001]本發(fā)明涉及電子地圖領域,尤其涉及一種基于仏算法的地圖尋路方案。

【背景技術】
[0002]目前,越來越多的軟件和應用都需要生成并向用戶呈現(xiàn)地圖以便實現(xiàn)某種功能。例如,在游戲軟件應用中,計算設備(如臺式計算機、筆記本計算機及其他智能終端)需要生成游戲場景地圖。在該地圖中,游戲玩家控制的角色以及非玩家控制的角色需要按照一定的路徑進行移動,因此會涉及到地圖尋路以對路線選擇并且避開障礙點。除了在游戲中需要進行地圖尋路之外,一些涉及路徑的應用中也需要使用地圖尋路方案。在多種尋路應用方案中,所涉及的八氺算法是一種啟發(fā)式搜索算法。在應用八氺算法的尋路方案中,會對地圖中的多個節(jié)點進行判斷。在尋路過程中,會不斷將未判斷的節(jié)點加入一個列表,即開啟列表,而將已經(jīng)判斷過的節(jié)點加入到另一個列表,即刪除列表。在尋路過程中會不斷的對開啟列表進行操作,包括了節(jié)點的插入、排序和檢索等。
[0003]根據(jù)開啟列表中數(shù)據(jù)和各種操作的特點,需要對開啟列表的數(shù)據(jù)結(jié)構(gòu)以及插入、排序等操作進行控制,以便降低操作的時間復雜度?,F(xiàn)有的方案中多利用二叉堆方法對開啟列表進行操作。然而,由于二叉堆在實現(xiàn)上比較復雜,處理難度較高,因此在地圖節(jié)點較少時,采用二叉堆的操作方式則性價比較低。
[0004]因此,需要一種新地圖尋路方案,能夠?qū)Φ貓D進行判斷,并當?shù)貓D節(jié)點較少時,以更高的操作效率進行尋路。


【發(fā)明內(nèi)容】

[0005]為此,本發(fā)明提供一種新的方案以力圖解決或者至少緩解上面存在的問題。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種基于八#算法的地圖尋路方法,適于在計算設備中執(zhí)行,該地圖包括具有多個節(jié)點的陣列,該計算設備包括列表存儲器,該列表存儲器中存儲有開啟列表及刪除列表,該開啟列表包括待尋路檢測的節(jié)點,該刪除列表包括從開啟列表中刪除的節(jié)點。
[0007]該方法包括步驟,判斷所述陣列中節(jié)點的數(shù)量是否小于預定值,如果確定該陣列中節(jié)點的數(shù)量小于預定值,則將所述開啟列表建成雙向鏈表;監(jiān)控所述陣列,獲取地圖尋路的開始節(jié)點及目標節(jié)點,并將所述開始節(jié)點加入所述雙向鏈表;刪除該雙向鏈表表頭的節(jié)點,且將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表;以及判斷所刪除的雙向鏈表表頭的節(jié)點是否為目標節(jié)點,如果所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點,則繼續(xù)監(jiān)控所述陣列,如果該刪除的雙向鏈表表頭的節(jié)點不是目標節(jié)點,則獲取該刪除的雙向鏈表表頭的節(jié)點周圍滿足預定條件的節(jié)點,并將所獲取滿足所述預定條件的節(jié)點加入所述雙向鏈表;以及繼續(xù)刪除該雙向鏈表表頭的節(jié)點,且將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表。
[0008]可選地,在根據(jù)本發(fā)明的地圖尋路方法中,獲取刪除的雙向鏈表表頭的節(jié)點周圍滿足所述預定條件的節(jié)點的步驟包括,獲取刪除的所述雙向鏈表表頭的節(jié)點能直接到達、不屬于所述刪除列表且非障礙的節(jié)點。
[0009]可選地,根據(jù)本發(fā)明的地圖尋路方法還包括步驟,當確定所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點時,根據(jù)所述刪除列表中的節(jié)點獲取所述開始節(jié)點與所述目標節(jié)點之間的最短路徑。
[0010]可選地,在根據(jù)本發(fā)明的地圖尋路方法中,預定值的范圍為1000。
[0011]可選地,在根據(jù)本發(fā)明的地圖尋路方法中,將所獲取滿足所述預定條件的節(jié)點加入所述雙向鏈表的步驟包括:將所述雙向鏈表的節(jié)點進行排序;以及將該滿足所述預定條件的節(jié)點以插入排序方式加入到所述雙向鏈表。
[0012]根據(jù)本發(fā)明的另一個方面,提供了一種基于八#算法的地圖尋路設備,該地圖包括具有多個節(jié)點的陣列,該設備包括列表存儲器、第一處理器、監(jiān)控器、第二處理器及第三處理器。
[0013]列表存儲器適于存儲開啟列表及刪除列表,該開啟列表包括待檢測的節(jié)點,該刪除列表包括從開啟列表中刪除的節(jié)點。
[0014]第一處理器適于判斷所述陣列中節(jié)點的數(shù)量是否小于預定值,如果確定該陣列中節(jié)點的數(shù)量小于預定值,則將所述開啟列表建成雙向鏈表。
[0015]監(jiān)控器適于監(jiān)控所述陣列,以獲取地圖尋路的開始節(jié)點及目標節(jié)點,并將所述開始節(jié)點加入所述雙向鏈表;
[0016]第二處理器適于刪除該雙向鏈表表頭的節(jié)點,并將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表;以及
[0017]第三處理器適于判斷所刪除的雙向鏈表表頭的節(jié)點是否為目標節(jié)點,如果所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點,則指示所述監(jiān)控器繼續(xù)監(jiān)控所述陣列,如果該刪除的雙向鏈表表頭的節(jié)點不是目標節(jié)點,則獲取該刪除的雙向鏈表表頭的節(jié)點周圍滿足所述預定條件的節(jié)點,并將所獲取的滿足所述預定條件的節(jié)點加入雙向鏈表,以及指示第二處理器繼續(xù)刪除該雙向鏈表表頭的節(jié)點,且將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表。
[0018]可選地,在根據(jù)本發(fā)明的地圖尋路設備中,第三處理器根據(jù)下述方式獲取所述刪除的雙向鏈表表頭的節(jié)點周圍滿足所述預定條件的節(jié)點,獲取所述刪除的所述雙向鏈表表頭的節(jié)點能直接到達、不屬于所述刪除列表且非障礙的節(jié)點。
[0019]可選地,在根據(jù)本發(fā)明的地圖尋路設備中,第三處理器還適于:當確定所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點時,根據(jù)所述刪除列表中的節(jié)點獲取所述開始節(jié)點與所述目標節(jié)點之間的最短路徑。
[0020]可選地,在根據(jù)本發(fā)明的地圖尋路設備中,預定值的范圍為1000。
[0021]可選地,在根據(jù)本發(fā)明的地圖尋路設備中,第三處理器根據(jù)下述方式將所獲取滿足所述預定條件的節(jié)點加入所述雙向鏈表:將所述雙向鏈表的節(jié)點進行排序;以及將該滿足所述預定條件的節(jié)點以插入排序方式加入到所述雙向鏈表。
[0022]根據(jù)本發(fā)明的又一個方面,提供一種計算終端,該計算終端包括上述中任一種地圖尋路設備。
[0023]根據(jù)本發(fā)明的基于八#算法的地圖尋路方案,通過對地圖規(guī)模的判斷以及確定地圖規(guī)模較小時,然后對開啟列表米用雙向鏈表結(jié)構(gòu),在此基礎上對開啟列表進行插入、刪除及排序等操作,實現(xiàn)了地圖尋路的簡單操作、資源開銷較小以及時間復雜度較低。

【專利附圖】

【附圖說明】
[0024]為了實現(xiàn)上述以及相關目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標記通常指代相同的部件或元素。
[0025]圖1示出了一個移動終端的結(jié)構(gòu)框圖;
[0026]圖2示出了根據(jù)本發(fā)明一個實施例的基于八#算法的地圖尋路設備的示意圖;
[0027]圖3示出了根據(jù)本發(fā)明一個實施例的基于八#算法的地圖尋路方法的流程圖。

【具體實施方式】
[0028]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。
[0029]圖1是移動終端100的結(jié)構(gòu)框圖。移動終端100可以包括存儲器接口 102、一個或多個數(shù)據(jù)處理器、圖像處理器和/或中央處理單元104,以及外圍接口 106。
[0030]存儲器接口 102、一個或多個處理器104和/或外圍接口 106既可以是分立元件,也可以集成在一個或多個集成電路中。在移動終端100中,各種元件可以通過一條或多條通信總線或信號線來耦合。傳感器、設備和子系統(tǒng)可以耦合到外圍接口 106,以便幫助實現(xiàn)多種功能。
[0031]例如,運動傳感器110、光傳感器112和距離傳感器114可以耦合到外圍接口 106,以方便定向、照明和測距等功能。其他傳感器116同樣可以與外圍接口 106相連,例如定位系統(tǒng)(例如⑶3接收機)、溫度傳感器、生物測定傳感器或其他感測設備,由此可以幫助實施相關的功能。
[0032]相機子系統(tǒng)120和光學傳感器122可以用于方便諸如記錄照片和視頻剪輯的相機功能的實現(xiàn),其中所述相機子系統(tǒng)和光學傳感器例如可以是電荷耦合器件⑴⑶)或互補金屬氧化物半導體¢103)光學傳感器??梢酝ㄟ^一個或多個無線通信子系統(tǒng)124來幫助實現(xiàn)通信功能,其中無線通信子系統(tǒng)可以包括射頻接收機和發(fā)射機和/或光(例如紅外)接收機和發(fā)射機。無線通信子系統(tǒng)124的特定設計和實施方式可以取決于移動終端100所支持的一個或多個通信網(wǎng)絡。例如,移動終端100可以包括被設計成支持網(wǎng)絡、網(wǎng)絡、20詘網(wǎng)絡、或111狀網(wǎng)絡以及網(wǎng)絡的通信子系統(tǒng)124。
[0033]音頻子系統(tǒng)126可以與揚聲器128以及麥克風130相耦合,以便幫助實施啟用語音的功能,例如語音識別、語音復制、數(shù)字記錄和電話功能。1/0子系統(tǒng)140可以包括觸摸屏控制器142和/或一個或多個其他輸入控制器144。觸摸屏控制器142可以耦合到觸摸屏146。舉例來說,該觸摸屏146和觸摸屏控制器142可以使用多種觸摸感測技術中的任何一種來檢測與之進行的接觸和移動或是暫停,其中感測技術包括但不局限于電容性、電阻性、紅外和表面聲波技術。一個或多個其他輸入控制器144可以稱合到其他輸入/控制設備148,例如一個或多個按鈕、搖桿開關、拇指旋輪、紅外端口、舊8端口、和丨或指示筆之類的指點設備。所述一個或多個按鈕(未顯示)可以包括用于控制揚聲器128和/或麥克風130音量的向上/向下按鈕。
[0034]存儲器接口 102可以與存儲器150相耦合。該存儲器150可以包括高速隨機存取存儲器和/或非易失性存儲器,例如一個或多個磁盤存儲設備,一個或多個光學存儲設備,和/或閃存存儲器(例如嫩冊,勵幻。存儲器150可以存儲操作系統(tǒng)172,例如如辦乂己、108或是1111(10”之類的操作系統(tǒng)。該操作系統(tǒng)172可以包括用于處理基本系統(tǒng)服務以及執(zhí)行依賴于硬件的任務的指令。存儲器150還可以存儲應用174。在移動設備運行時,會從存儲器150中加載操作系統(tǒng)172,并且由處理器104執(zhí)行。應用154在運行時,也會從存儲器150中加載,并由處理器104執(zhí)行。應用174運行在操作系統(tǒng)之上,利用操作系統(tǒng)以及底層硬件提供的接口實現(xiàn)各種用戶期望的功能,如即時通信、網(wǎng)頁瀏覽、圖片管理等。應用174可以是獨立于操作系統(tǒng)172提供的,也可以是操作系統(tǒng)172自帶的。
[0035]在上述各種應用174中,其中的一種應用為根據(jù)本發(fā)明的地圖尋路設備200。該地圖尋路設備能夠在電子地圖的節(jié)點較少時,采用一種應用了非二叉堆結(jié)構(gòu)及排序的尋路方式,以便提高尋路效率。需要注意的是,該地圖尋路設備200還能夠在其他多種計算設備(例如,筆記本電腦、掌上游戲機等)中應用。
[0036]圖2示出了根據(jù)本發(fā)明的一個實施例的基于八木算法的地圖尋路設備200的結(jié)構(gòu)示意圖。該地圖尋路設備200能夠在多種計算設備中駐留。
[0037]當計算設備中包括了地圖尋路設備200的應用組件(例如游戲組件等)需要在電子地圖上進行路徑選定時,可以采用八#算法進行路徑選擇。首先,應用組件將電子地圖劃分成多個節(jié)點組成的陣列,并且將陣列中的節(jié)點區(qū)分為障礙點和可以經(jīng)過的節(jié)點,其中每個節(jié)點可以是具有一定面積的方格狀的區(qū)域,也可以是一個圓心區(qū)域,當然也可以將節(jié)點設置為其他形狀的區(qū)域。然后,當選定了路徑的開始節(jié)點八和目標節(jié)點8時,會根據(jù)開始節(jié)點八和目標節(jié)點8在電子地圖中與其他節(jié)點的位置關系對可以經(jīng)過的節(jié)點進行數(shù)據(jù)分析。這里以方格狀的節(jié)點為例,具體通過下述公式(1)對非障礙節(jié)點進行數(shù)據(jù)分析。
[0038]? = 6+? (1)
[0039]當選擇一個節(jié)點(該節(jié)點為從節(jié)點八到節(jié)點8可選擇的路徑上的一個節(jié)點)為父節(jié)點時,會對父節(jié)點前進的方向進行分析。當對其周圍可以直接到達的一個節(jié)點~進行數(shù)據(jù)分析時,6表示開始節(jié)點八經(jīng)由父節(jié)點0到達節(jié)點~的實際移動消耗值,即實際代價。其中,從任一個非障礙節(jié)點向四周進行移動的方向可以有多種選擇,例如,與該節(jié)點的四條邊相鄰地節(jié)點的方向,即前、后、左及右,當然也可以包括該節(jié)點斜對角的節(jié)點的方向,并且每次移動都對應一定的消耗值。為了便于計算,可以選擇單步移動的消耗值相同。II表示從節(jié)點~到目標節(jié)點8的預計移動消耗值,即估計代價。計算方式可以選擇為,不對障礙點進行區(qū)分,而是直接沿著節(jié)點~到目標節(jié)點8之間的矩形區(qū)域邊緣的節(jié)點移動后的移動消耗值。?表示節(jié)點八經(jīng)由父節(jié)點匕節(jié)點~到達目標節(jié)點8的估價函數(shù)值。
[0040]如圖2所示,根據(jù)本發(fā)明的基于八#算法的地圖尋路設備包括列表存儲器240、第一處理器210、監(jiān)控器250、第二處理器220及第三處理器230。
[0041]列表存儲器240適于存儲開啟列表及刪除列表。該開啟列表包括待尋路檢測的節(jié)點,該刪除列表包括從開啟列表中刪除的節(jié)點。在根據(jù)本發(fā)明的一個實施例中,當從八節(jié)點移動到一個節(jié)點0時,在節(jié)點0能夠直接到達的周圍的多個節(jié)點中,如果有節(jié)點不屬于刪除列表并且還沒有加入到開啟列表中,則開啟列表適于接收并存儲這些節(jié)點。
[0042]第一處理器210適于判斷地圖的陣列中節(jié)點的數(shù)量是否小于預定值,例如預定值取值為1000個節(jié)點。這里之所以對陣列中節(jié)點數(shù)量進行判斷,是由于當節(jié)點數(shù)量較多時,二叉堆的存儲結(jié)構(gòu)以及相應的排序方式具有較好的性能。但是如果節(jié)點較少時,則會突顯出在應用二叉堆結(jié)構(gòu)及排序方式尋路時開銷較高及結(jié)構(gòu)復雜。因此需要應用一種更優(yōu)化的結(jié)構(gòu)及排序方式來進行尋路操作,以便對開啟列表中節(jié)點進行插入和刪除時,減少操作開銷,降低時間復雜度。因此,如果確定該陣列中節(jié)點的數(shù)量小于預定值時,第一處理器210會將開啟列表建成雙向鏈表結(jié)構(gòu)。這里在地圖規(guī)模較小時采用雙向鏈表結(jié)構(gòu),使得對列表存儲器240中存儲的開啟列表中節(jié)點的插入、排序、刪除等操作的處理流程更加簡單,且效率更高。
[0043]監(jiān)控器250適于監(jiān)控用戶輸入或預置數(shù)據(jù)。監(jiān)控器250會獲取用戶輸入的或者尋路設備預置的開始節(jié)點八及目標節(jié)點8,然后將開始節(jié)點八加入雙向鏈表。這里由于在開始節(jié)點加入之前開啟列表為空,所以不需要對開啟列表進行排序而直接將開始節(jié)點插入開啟列表。
[0044]第二處理器220適于刪除該雙向鏈表表頭的節(jié)點,并將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表。這里所刪除的鏈表的表頭為地圖尋路的路徑上的一個節(jié)點,該節(jié)點如果是目標節(jié)點8,則尋路完成,如果不是目標節(jié)點8,則適于從該節(jié)點出發(fā),繼續(xù)向四周尋路。
[0045]第三處理器230適于判斷第二處理器220刪除的雙向鏈表表頭的節(jié)點是否為目標節(jié)點8。第一種情況是,所刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點8,則表示已經(jīng)尋找到一條較短的移動路徑供電子地圖中的目標(例如,游戲中用戶控制角色或者非控制角色)進行移動。因此,本次尋路完成,第三處理器230能根據(jù)刪除列表中的節(jié)點獲取開始節(jié)點八與目標節(jié)點8之間的最短路徑,該最短路徑為刪除列表中的節(jié)點所組成的節(jié)點序列,并且將列表存儲器中的開啟列表和刪除列表分別清空。隨后,第三處理器230指示監(jiān)控器250繼續(xù)監(jiān)控陣列,等待獲取新的開始節(jié)點和目標節(jié)點。
[0046]第二種情況是,該刪除的雙向鏈表表頭的節(jié)點不是目標節(jié)點8,則該刪除的雙向鏈表表頭的節(jié)點為從開始節(jié)點八到目標節(jié)點8的路徑上的中間節(jié)點,需要繼續(xù)從該節(jié)點向目標節(jié)點8進行尋路操作,因此將該節(jié)點設置為父節(jié)點0。
[0047]進一步,第三處理器230獲取父節(jié)點周圍滿足預定條件的節(jié)點,然后將獲取的節(jié)點加入雙向鏈表。
[0048]具體地,首先第三處理器230更新開啟列表中節(jié)點的實際代價及估價函數(shù)值?,然后根據(jù)更新后的估價函數(shù)值?對開啟列表進行排序,進而從雙向鏈表的表頭或表尾處開始,判斷預插入的節(jié)點的插入位置,并且將節(jié)點插入到該插入位置。這里可以選擇插入排序方式,也可以選擇二分排序等方式尋找節(jié)點的插入位置。當然,也可以選擇在將需要插入開啟列表所有節(jié)點加入開啟列表之后,再統(tǒng)一進行排序。其中滿足預定條件的節(jié)點為所刪除的雙向鏈表表頭的節(jié)點能直接到達、不屬于刪除列表且非障礙的節(jié)點。這里開啟列表經(jīng)過排序和插入之后,雙向鏈表中新的表頭節(jié)點為從父節(jié)點向目標節(jié)點8尋路所選擇的前進節(jié)點。
[0049]然后,第三處理器230指示第二處理器220刪除該雙向鏈表表頭的節(jié)點(即所選擇的前進節(jié)點)以及將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表。
[0050]最后,第三處理器230繼續(xù)判斷新加入刪除列表的從雙向鏈表中刪除的表頭的節(jié)點是否為目標節(jié)點。
[0051]圖3示出了根據(jù)本發(fā)明一個實施例的基于八#算法的地圖尋路方法的流程圖。該尋路方法適于在多種需要進行尋路的計算設備中執(zhí)行。該地圖為多個節(jié)點組成的陣列。該計算設備包括列表存儲器,該列表存儲器存有開啟列表及刪除列表。開啟列表中包括了待尋路檢測的節(jié)點,刪除列表中包括從開啟列表中刪除的節(jié)點。
[0052]如圖3所示,該方法300始于步驟3310,判斷陣列中節(jié)點的數(shù)量是否小于預定值,如果確定該陣列中節(jié)點的數(shù)量小于預定值,則將所述開啟列表建成雙向鏈表。陣列中節(jié)點的數(shù)量對應于地圖的規(guī)模。該預定值可以根據(jù)具體實施尋路方法的設備的處理能力進行確定,例如選定預定值為1000個節(jié)點。如果節(jié)點數(shù)量小于預定值,則選擇將開啟列表初始化為雙向鏈表結(jié)構(gòu),以便對開啟列表中的節(jié)點進行排序和插入或刪除操作。這里由于采用雙向鏈表結(jié)構(gòu),使得在對開啟列表中節(jié)點進行操作時,可以比二叉堆等方式更加簡單和方便,同時時間復雜度和資源開銷較小。
[0053]隨后,方法300進入步驟3320,監(jiān)控用戶針對地圖的輸入或者關于尋路的預置數(shù)據(jù),可以根據(jù)用戶輸入的選擇指示或者預置信息來獲取開始節(jié)點八和目標節(jié)點8,并將開始節(jié)點八加入所述雙向鏈表。在步驟3320中,開始節(jié)點八為路徑的開始點,并且此時雙向鏈表中只有開始節(jié)點八。因此在本步驟中不需要對開啟列表中節(jié)點進行排序,而方法300直接進入步驟3330,刪除雙向鏈表表頭的節(jié)點,并將刪除的節(jié)點加入刪除列表。這里所刪除的鏈表的表頭為地圖尋路的路徑上的一個節(jié)點,該節(jié)點如果是目標節(jié)點8,則尋路完成,如果不是目標節(jié)點8,則可以從該節(jié)點出發(fā),繼續(xù)向四周尋路,即可以選擇將該節(jié)點設置為父節(jié)點
[0054]隨后,方法300進入步驟3340,首先判斷最新加入到刪除列表的節(jié)點(最后從雙向鏈表中刪除的表頭的節(jié)點)是否是目標節(jié)點8。如果該節(jié)點是目標節(jié)點8,則尋路任務完成,可以根據(jù)刪除列表中節(jié)點獲取開始節(jié)點八與目標節(jié)點8之間的最短或較短路徑,即獲取路徑的節(jié)點序列,然后清空開啟列表和刪除列表。隨后,方法300跳轉(zhuǎn)到步驟3320,繼續(xù)監(jiān)控地圖的陣列,以獲取新的開始節(jié)點八及目標節(jié)點8。
[0055]當在步驟3340中確定最新加入刪除列表的節(jié)點不是目標節(jié)點8時,則方法進入步驟3350,將該最新加入刪除列表的節(jié)點作為父節(jié)點0,并獲取該父節(jié)點周圍滿足預定條件的節(jié)點,并加入到雙向鏈表中。在步驟3350中,根據(jù)本發(fā)明的一個實施例,首先獲取父節(jié)點¢:可直接到達、不是障礙點且不在刪除列表中的節(jié)點,然后將所獲取的節(jié)點中沒有在開啟列表的節(jié)點加入雙向鏈表。
[0056]具體地,在步驟3350中,根據(jù)本發(fā)明的一個實施例,首先以獲取的父節(jié)點0為基礎,重新計算雙向鏈表中每個節(jié)點的實際代價6,即從開始節(jié)點八經(jīng)由父節(jié)點0到達每個節(jié)點的實際代價6,并且每個節(jié)點的II值保持不變,則根據(jù)每個節(jié)點的新的實際代價6,更新每個節(jié)點的估價函數(shù)值?。當開啟列表中每個節(jié)點的實際代價6、估價函數(shù)值?更新完成后,對雙向鏈表的節(jié)點進行排序,即將?值最小的節(jié)點存儲在雙向鏈表的表頭位置。然后,將所獲取的節(jié)點中沒有在開啟列表的節(jié)點以插入排序方式獲取該節(jié)點在雙向鏈表的插入位置,進而插入到雙向鏈表中。隨后,方法300跳轉(zhuǎn)到步驟3330,繼續(xù)刪除雙向鏈表表頭的節(jié)點,并將刪除的節(jié)點加入刪除列表。
[0057]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下被實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術,以便不模糊對本說明書的理解。
[0058]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
[0059]本領域那些技術人員應當理解在本文所公開的示例中的設備的模塊或單元或組件可以布置在如該實施例中所描述的設備中,或者可替換地可以定位在與該示例中的設備不同的一個或多個設備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。
[0060]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0061]此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0062]此外,所述實施例中的一些在此被描述成可以由計算機系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發(fā)明的目的的元素所執(zhí)行的功能。
[0063]如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
【權利要求】
1.一種基于A*算法的地圖尋路方法,適于在計算設備中執(zhí)行,該地圖包括具有多個節(jié)點的陣列,該計算設備包括列表存儲器,該列表存儲器中存儲有開啟列表及刪除列表,該開啟列表包括待尋路檢測的節(jié)點,該刪除列表包括從開啟列表中刪除的節(jié)點,該方法包括步驟: 判斷所述陣列中節(jié)點的數(shù)量是否小于預定值,如果確定該陣列中節(jié)點的數(shù)量小于預定值,則將所述開啟列表建成雙向鏈表; 監(jiān)控所述陣列,獲取地圖尋路的開始節(jié)點及目標節(jié)點,并將所述開始節(jié)點加入所述雙向鏈表; 刪除該雙向鏈表表頭的節(jié)點,且將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表;以及 判斷所刪除的雙向鏈表表頭的節(jié)點是否為目標節(jié)點, 如果所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點,則繼續(xù)監(jiān)控所述陣列, 如果該刪除的雙向鏈表表頭的節(jié)點不是目標節(jié)點,則獲取該刪除的雙向鏈表表頭的節(jié)點周圍滿足預定條件的節(jié)點,并將所獲取滿足所述預定條件的節(jié)點加入所述雙向鏈表;以及 繼續(xù)刪除該雙向鏈表表頭的節(jié)點,且將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表。
2.如權利要求1所述的地圖尋路方法,其中所述獲取所述刪除的雙向鏈表表頭的節(jié)點周圍滿足所述預定條件的節(jié)點的步驟包括: 獲取所述刪除的所述雙向鏈表表頭的節(jié)點能直接到達、不屬于所述刪除列表且非障礙的節(jié)點。
3.如權利要求1所述的地圖尋路方法,還包括步驟: 當確定所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點時,根據(jù)所述刪除列表中的節(jié)點獲取所述開始節(jié)點與所述目標節(jié)點之間的最短路徑。
4.如權利要求1所述的地圖尋路方法,其中所述預定值的范圍為1000。
5.如權利要求1所述的地圖尋路方法,其中所述將所獲取滿足所述預定條件的節(jié)點加入所述雙向鏈表的步驟包括: 將所述雙向鏈表的節(jié)點進行排序;以及 將該滿足所述預定條件的節(jié)點以插入排序方式加入到所述雙向鏈表。
6.一種基于A*算法的地圖尋路設備,該地圖包括具有多個節(jié)點的陣列,該設備包括: 列表存儲器,適于存儲開啟列表及刪除列表,該開啟列表包括待檢測的節(jié)點,該刪除列表包括從開啟列表中刪除的節(jié)點。 第一處理器,適于判斷所述陣列中節(jié)點的數(shù)量是否小于預定值,如果確定該陣列中節(jié)點的數(shù)量小于預定值,則將所述開啟列表建成雙向鏈表; 監(jiān)控器,適于監(jiān)控所述陣列,以獲取地圖尋路的開始節(jié)點及目標節(jié)點,并將所述開始節(jié)點加入所述雙向鏈表; 第二處理器,適于刪除該雙向鏈表表頭的節(jié)點,并將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表;以及 第三處理器,適于判斷所刪除的雙向鏈表表頭的節(jié)點是否為目標節(jié)點, 如果所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點,則繼續(xù)監(jiān)控所述陣列, 如果該刪除的雙向鏈表表頭的節(jié)點不是目標節(jié)點,則獲取該刪除的雙向鏈表表頭的節(jié)點周圍滿足所述預定條件的節(jié)點,并將所獲取的滿足所述預定條件的節(jié)點加入所述雙向鏈表;以及 指示第二處理器繼續(xù)刪除該雙向鏈表表頭的節(jié)點,且將所刪除的雙向鏈表表頭的節(jié)點加入刪除列表。
7.如權利要求6所述的地圖尋路設備,所述第三處理器根據(jù)下述方式獲取所述刪除的雙向鏈表表頭的節(jié)點周圍滿足所述預定條件的節(jié)點: 獲取所述刪除的所述雙向鏈表表頭的節(jié)點能直接到達、不屬于所述刪除列表且非障礙的節(jié)點。
8.如權利要求6所述的地圖尋路設備,所述第三處理器還適于: 當確定所述刪除的雙向鏈表表頭的節(jié)點為目標節(jié)點時,根據(jù)所述刪除列表中的節(jié)點獲取所述開始節(jié)點與所述目標節(jié)點之間的最短路徑。
9.如權利要求6所述的地圖尋路設備,其中所述預定值的范圍為1000。
10.如權利要求6所述的地圖尋路設備,所述第三處理器根據(jù)下述方式將所獲取滿足所述預定條件的節(jié)點加入所述雙向鏈表: 將所述雙向鏈表的節(jié)點進行排序;以及 將該滿足所述預定條件的節(jié)點以插入排序方式加入到雙向鏈表。
【文檔編號】G06F19/00GK104462805SQ201410720889
【公開日】2015年3月25日 申請日期:2014年12月2日 優(yōu)先權日:2014年12月2日
【發(fā)明者】羅響 申請人:廈門飛游信息科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1