本技術(shù)涉及路徑規(guī)劃,特別是涉及一種最優(yōu)路徑的獲取方法、裝置、設(shè)備及處理器。
背景技術(shù):
1、旅行商問(wèn)題(traveling?salesman?problem,tsp)是一個(gè)經(jīng)典的優(yōu)化問(wèn)題,其核心在于尋找一條最短的路徑(即最優(yōu)路徑),使得旅行商能夠訪問(wèn)每個(gè)城市一次并返回起點(diǎn)。這個(gè)問(wèn)題在現(xiàn)實(shí)生活中的應(yīng)用非常廣泛,尤其是在物流配送和多經(jīng)由點(diǎn)導(dǎo)航中。在物流配送中,合理規(guī)劃多個(gè)配送點(diǎn)的順序可以顯著提高效率,減少行駛距離和時(shí)間,從而降低成本并減少對(duì)環(huán)境的影響。同樣,在順風(fēng)車或長(zhǎng)途駕駛中,如果需要經(jīng)過(guò)多個(gè)經(jīng)由點(diǎn),優(yōu)化這些經(jīng)由點(diǎn)的訪問(wèn)順序也能帶來(lái)類似的益處。
2、在相關(guān)技術(shù)中,是使用a*算法來(lái)尋找最優(yōu)路徑,a*算法是一種廣泛應(yīng)用于路徑規(guī)劃的搜索算法。a*算法在搜索最佳路徑時(shí)使用啟發(fā)式函數(shù)來(lái)估計(jì)從當(dāng)前節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的代價(jià),并根據(jù)這個(gè)估計(jì)值來(lái)動(dòng)態(tài)調(diào)整搜索的方向,以期望更快地找到最優(yōu)路徑。同時(shí),a*算法使用一個(gè)優(yōu)先級(jí)隊(duì)列來(lái)存儲(chǔ)待擴(kuò)展的節(jié)點(diǎn),并在每次迭代中選擇代價(jià)最小的節(jié)點(diǎn)進(jìn)行擴(kuò)展。由于在每次迭代中,都需要對(duì)優(yōu)先級(jí)隊(duì)列進(jìn)行更新和維護(hù),以確保代價(jià)最小的節(jié)點(diǎn)能夠被快速地選取和擴(kuò)展。特別是在節(jié)點(diǎn)數(shù)量較多時(shí),這樣的操作會(huì)帶來(lái)較大的計(jì)算開銷。
技術(shù)實(shí)現(xiàn)思路
1、基于上述問(wèn)題,本技術(shù)提供了一種最優(yōu)路徑的獲取方法、裝置、設(shè)備及處理器,目的是降低計(jì)算復(fù)雜度,進(jìn)而降低最優(yōu)路徑的獲取過(guò)程中的性能消耗。
2、本技術(shù)實(shí)施例公開了如下技術(shù)方案:
3、一種最優(yōu)路徑的獲取方法,所述方法包括:
4、根據(jù)多個(gè)已知道路節(jié)點(diǎn),從全等級(jí)路網(wǎng)地圖中確定第一目標(biāo)地圖;所述多個(gè)已知道路節(jié)點(diǎn)包括待規(guī)劃路徑上的起點(diǎn)、終點(diǎn)以及多個(gè)經(jīng)由點(diǎn);所述第一目標(biāo)地圖為覆蓋所述起點(diǎn)、所述終點(diǎn)以及所述多個(gè)經(jīng)由點(diǎn)的區(qū)域地圖;
5、基于所述第一目標(biāo)地圖的面積確定所述第一目標(biāo)地圖的目標(biāo)道路等級(jí);
6、隱藏所述第一目標(biāo)地圖中與所述目標(biāo)道路等級(jí)無(wú)關(guān)的路網(wǎng),得到第二目標(biāo)地圖;
7、在所述第二目標(biāo)地圖中,基于所述目標(biāo)道路等級(jí)的路網(wǎng)和距離最短探索原則從所述起點(diǎn)向所述終點(diǎn)逐步探索經(jīng)由點(diǎn)的中轉(zhuǎn)順序,并按照探索得到的中轉(zhuǎn)順序依次將所述起點(diǎn)、所述多個(gè)經(jīng)由點(diǎn)和所述終點(diǎn)連接得到初始路徑;
8、利用退火算法基于所述初始路徑中的節(jié)點(diǎn)以及所述中轉(zhuǎn)順序不斷對(duì)所述初始路徑進(jìn)行優(yōu)化,得到最優(yōu)路徑。
9、在一種可能的實(shí)現(xiàn)方式中,所述利用退火算法基于所述初始路徑中的節(jié)點(diǎn)以及所述中轉(zhuǎn)順序,得到最優(yōu)路徑,包括:
10、在所述初始路徑內(nèi)隨機(jī)選取符合預(yù)設(shè)節(jié)點(diǎn)間隔數(shù)量的兩個(gè)已知道路節(jié)點(diǎn)進(jìn)行位置交換,獲取可替換路徑;
11、分別計(jì)算所述初始路徑和所述可替換路徑的路徑總長(zhǎng)度;
12、基于所述初始路徑的路徑總長(zhǎng)度和所述可替換路徑的路徑總長(zhǎng)度,確定目標(biāo)路徑,并獲得變化溫度;所述變化溫度基于初始溫度進(jìn)行溫度降低得到,每得到一個(gè)目標(biāo)路徑則進(jìn)行一次溫度降低;
13、若所述變化溫度小于溫度閾值,則將所述目標(biāo)路徑確定為所述最優(yōu)路徑;若所述變化溫度大于或等于所述溫度閾值,則將所述目標(biāo)路徑重置作為初始路徑,將所述變化溫度重置作為初始溫度,重復(fù)執(zhí)行獲取可替換路徑、計(jì)算路徑總長(zhǎng)度、確定目標(biāo)路徑和獲得變化溫度的步驟,直到最新得到的變化溫度小于所述溫度閾值為止,將最新得到的目標(biāo)路徑確定為所述最優(yōu)路徑。
14、在一種可能的實(shí)現(xiàn)方式中,所述在所述初始路徑內(nèi)隨機(jī)選取符合預(yù)設(shè)節(jié)點(diǎn)間隔數(shù)量的兩個(gè)已知道路節(jié)點(diǎn)進(jìn)行位置交換,獲取可替換路徑,包括:
15、隨機(jī)選取所述初始路徑內(nèi)的某一已知道路節(jié)點(diǎn)作為待交換節(jié)點(diǎn);
16、以所述待交換節(jié)點(diǎn)為中心根據(jù)所述節(jié)點(diǎn)間隔數(shù)量,按照所述中轉(zhuǎn)順序隨機(jī)向前或向后尋找所述待交換節(jié)點(diǎn)的目標(biāo)交換節(jié)點(diǎn);
17、將所述待交換節(jié)點(diǎn)和所述目標(biāo)交換節(jié)點(diǎn)進(jìn)行位置交換,得到所述可替換路徑。
18、在一種可能的實(shí)現(xiàn)方式中,所述基于所述初始路徑的路徑總長(zhǎng)度和所述可替換路徑的路徑總長(zhǎng)度,確定目標(biāo)路徑,并獲得變化溫度,包括:
19、若所述初始路徑的路徑總長(zhǎng)度大于所述可替換路徑的路徑總長(zhǎng)度,則將所述可替換路徑設(shè)置為所述目標(biāo)路徑;若所述初始路徑的路徑總長(zhǎng)度小于或等于所述可替換路徑的路徑總長(zhǎng)度,則將所述初始路徑設(shè)置為所述目標(biāo)路徑;
20、若所述初始路徑的路徑總長(zhǎng)度大于所述可替換路徑的路徑總長(zhǎng)度,則按照第一降溫速率降低所述初始溫度得到所述變化溫度;若所述初始路徑的路徑總長(zhǎng)度小于或等于所述可替換路徑的路徑總長(zhǎng)度,則按照第二降溫速率降低所述初始溫度得到所述變化溫度;所述第一降溫速率小于所述第二降溫速率。
21、在一種可能的實(shí)現(xiàn)方式中,所述根據(jù)多個(gè)已知道路節(jié)點(diǎn),從全等級(jí)路網(wǎng)地圖中確定第一目標(biāo)地圖,包括:
22、獲取各個(gè)已知道路節(jié)點(diǎn)的經(jīng)度和緯度;
23、基于所有經(jīng)度和緯度中的最大經(jīng)度和最大緯度確定第一坐標(biāo),基于所有經(jīng)度和緯度中的最小經(jīng)度和最小緯度確定第二坐標(biāo);
24、根據(jù)所述第一坐標(biāo)和所述第二坐標(biāo),從所述全等級(jí)路網(wǎng)地圖中選定初始目標(biāo)地圖;所述初始目標(biāo)地圖是在所述全等級(jí)路網(wǎng)地圖中確定的覆蓋起點(diǎn)、終點(diǎn)以及若干個(gè)經(jīng)由點(diǎn)且面積最小的全等級(jí)路網(wǎng)地圖;
25、根據(jù)目標(biāo)擴(kuò)張面積對(duì)所述初始目標(biāo)地圖進(jìn)行擴(kuò)張,得到所述第一目標(biāo)地圖。
26、在一種可能的實(shí)現(xiàn)方式中,所述在所述第二目標(biāo)地圖中,基于所述目標(biāo)道路等級(jí)的路網(wǎng)和距離最短探索原則從所述起點(diǎn)向所述終點(diǎn)逐步探索經(jīng)由點(diǎn)的中轉(zhuǎn)順序,包括:
27、依次將所述第二目標(biāo)地圖中的已知道路節(jié)點(diǎn)作為探索節(jié)點(diǎn);
28、當(dāng)所述目標(biāo)道路等級(jí)包含所述探索節(jié)點(diǎn)所屬的道路等級(jí)時(shí),在所述第二目標(biāo)地圖中確定所述探索節(jié)點(diǎn)到其他各個(gè)所述已知道路節(jié)點(diǎn)的距離;當(dāng)所述目標(biāo)道路等級(jí)不包含所述探索節(jié)點(diǎn)所屬的道路等級(jí)時(shí),在所述第二目標(biāo)地圖中展開所述探索節(jié)點(diǎn)所屬的道路等級(jí)對(duì)應(yīng)的路網(wǎng),在展開了所述探索節(jié)點(diǎn)所屬道路等級(jí)路網(wǎng)的所述第二目標(biāo)地圖中確定所述探索節(jié)點(diǎn)到其他各個(gè)所述已知道路節(jié)點(diǎn)的距離;所述探索節(jié)點(diǎn)與任意一個(gè)所述已知道路節(jié)點(diǎn)之間具有一種或多種距離;
29、若所述探索節(jié)點(diǎn)與一個(gè)所述已知道路節(jié)點(diǎn)之間具有一種距離,則將該距離作為所述探索節(jié)點(diǎn)到這個(gè)已知道路節(jié)點(diǎn)的探索距離;若所述探索節(jié)點(diǎn)與一個(gè)所述已知道路節(jié)點(diǎn)之間具有多種距離,則從多種距離中篩選出最短距離作為所述探索節(jié)點(diǎn)到這個(gè)已知道路節(jié)點(diǎn)的探索距離;
30、遍歷查找所述探索節(jié)點(diǎn)到所有所述已知道路節(jié)點(diǎn)的探索距離;
31、重復(fù)執(zhí)行以上確定探索節(jié)點(diǎn)到其他各個(gè)已知道路節(jié)點(diǎn)距離以及篩選探索距離的步驟直至找到所有探索節(jié)點(diǎn)到其他所有已知道路節(jié)點(diǎn)的探索距離為止;若所述探索節(jié)點(diǎn)到某一個(gè)已知道路節(jié)點(diǎn)的探索距離被查找過(guò),則不再重新查找該探索節(jié)點(diǎn)到這個(gè)已知道路節(jié)點(diǎn)的探索距離;
32、基于所述探索距離從所述第二目標(biāo)地圖中的所述起點(diǎn)出發(fā),探索與所述起點(diǎn)之間的所述探索距離最小的經(jīng)由點(diǎn)作為所述起點(diǎn)的中轉(zhuǎn)點(diǎn),再?gòu)脑撝修D(zhuǎn)點(diǎn)出發(fā)查詢與該中轉(zhuǎn)點(diǎn)之間的所述探索距離符合距離要求的所述經(jīng)由點(diǎn)作為該中轉(zhuǎn)點(diǎn)的中轉(zhuǎn)點(diǎn),不斷查詢各個(gè)經(jīng)由點(diǎn)的中轉(zhuǎn)點(diǎn)直至查詢到所有經(jīng)由點(diǎn)的中轉(zhuǎn)點(diǎn)則停止,將中轉(zhuǎn)點(diǎn)探索的順序作為所述中轉(zhuǎn)順序。
33、在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
34、若存在一個(gè)探索節(jié)點(diǎn),遍歷了所述第二目標(biāo)地圖中的所有的道路仍無(wú)法確定通向目標(biāo)道路節(jié)點(diǎn)的路徑,則計(jì)算所述探索節(jié)點(diǎn)到所述目標(biāo)道路節(jié)點(diǎn)之間的直線距離;
35、將所述探索節(jié)點(diǎn)到所述目標(biāo)道路節(jié)點(diǎn)之間的直線距離的n倍距離,作為該探索節(jié)點(diǎn)到所述目標(biāo)道路節(jié)點(diǎn)之間的探索距離;n在1~5中取值。
36、在一種可能的實(shí)現(xiàn)方式中,所述道路等級(jí)包括路網(wǎng)密度依次遞增的第一道路等級(jí)、第二道路等級(jí)、第三道路等級(jí)、第四道路等級(jí)以及第五道路等級(jí);
37、所述第一目標(biāo)地圖的面積、目標(biāo)道路等級(jí)以及路網(wǎng)隱藏之間的關(guān)系,包括;
38、當(dāng)所述第一目標(biāo)地圖的面積小于或等于第一探索面積時(shí),則確定所述第一目標(biāo)地圖的目標(biāo)道路等級(jí)包括所述第一道路等級(jí)、所述第二道路等級(jí)、所述第三道路等級(jí)、所述第四道路等級(jí)以及所述第五道路等級(jí),不進(jìn)行路網(wǎng)隱藏;
39、當(dāng)所述第一目標(biāo)地圖的面積大于第一探索面積且小于或等于第二探索面積時(shí),則確定所述第一目標(biāo)地圖的道路等級(jí)包括所述第一道路等級(jí)、所述第二道路等級(jí)、所述第三道路等級(jí)以及所述第四道路等級(jí),并隱藏所述第五道路等級(jí)對(duì)應(yīng)的路網(wǎng);
40、當(dāng)所述第一目標(biāo)地圖的面積大于第二探索面積且小于或等于第三探索面積時(shí),則確定所述第一目標(biāo)地圖的道路等級(jí)包括所述第一道路等級(jí)、所述第二道路等級(jí)以及所述第三道路等級(jí),并隱藏所述第五道路等級(jí)對(duì)應(yīng)的路網(wǎng)和所述第四道路等級(jí)對(duì)應(yīng)的路網(wǎng);
41、當(dāng)所述第一目標(biāo)地圖的面積大于第三探索面積且小于或等于第四探索面積時(shí),則確定所述第一目標(biāo)地圖的道路等級(jí)包括所述第一道路等級(jí)和所述第二道路等級(jí),并隱藏所述第五道路等級(jí)對(duì)應(yīng)的路網(wǎng)、所述第四道路等級(jí)對(duì)應(yīng)的路網(wǎng)以及所述第三道路等級(jí)對(duì)應(yīng)的路網(wǎng);
42、當(dāng)所述第一目標(biāo)地圖的面積大于第四探索面積時(shí),則確定所述第一目標(biāo)地圖的道路等級(jí)包括所述第一道路等級(jí),并隱藏所述第五道路等級(jí)對(duì)應(yīng)的路網(wǎng)、所述第四道路等級(jí)對(duì)應(yīng)的路網(wǎng)、所述第三道路等級(jí)對(duì)應(yīng)的路網(wǎng)以及所述第二道路等級(jí)對(duì)應(yīng)的路網(wǎng)。
43、一種最優(yōu)路徑的獲取裝置,所述裝置包括:
44、第一確定單元,用于根據(jù)多個(gè)已知道路節(jié)點(diǎn),從全等級(jí)路網(wǎng)地圖中確定第一目標(biāo)地圖;所述多個(gè)已知道路節(jié)點(diǎn)包括待規(guī)劃路徑上的起點(diǎn)、終點(diǎn)以及多個(gè)經(jīng)由點(diǎn);所述第一目標(biāo)地圖為覆蓋所述起點(diǎn)、所述終點(diǎn)以及所述多個(gè)經(jīng)由點(diǎn)的區(qū)域地圖;
45、第二確定單元,用于基于所述第一目標(biāo)地圖的面積確定第一目標(biāo)地圖的目標(biāo)道路等級(jí);
46、路網(wǎng)隱藏單元,用于隱藏所述第一目標(biāo)地圖中與所述目標(biāo)道路等級(jí)無(wú)關(guān)的路網(wǎng),得到第二目標(biāo)地圖;
47、探索單元,用于在所述第二目標(biāo)地圖中,基于所述目標(biāo)道路等級(jí)的路網(wǎng)和距離最短探索原則從所述起點(diǎn)向所述終點(diǎn)逐步探索經(jīng)由點(diǎn)的中轉(zhuǎn)順序;
48、連接單元,用于按照探索得到的中轉(zhuǎn)順序依次將所述起點(diǎn)、所述多個(gè)經(jīng)由點(diǎn)和所述終點(diǎn)連接得到初始路徑;
49、第三確定單元,用于利用退火算法基于所述初始路徑中的節(jié)點(diǎn)以及所述中轉(zhuǎn)順序不斷對(duì)所述初始路徑進(jìn)行優(yōu)化,得到最優(yōu)路徑。
50、一種處理器,用于運(yùn)行計(jì)算機(jī)程序,所述程序運(yùn)行時(shí)執(zhí)行如上所述的最優(yōu)路徑的獲取方法。
51、相較于現(xiàn)有技術(shù),本技術(shù)具有以下有益效果:
52、本技術(shù)實(shí)施例在求解待規(guī)劃路徑上的多個(gè)已知道路節(jié)點(diǎn)的最優(yōu)路徑時(shí),會(huì)根據(jù)多個(gè)已知道路節(jié)點(diǎn)包括的起點(diǎn)、終點(diǎn)以及若干個(gè)經(jīng)由點(diǎn),確定具有全等級(jí)路網(wǎng)的第一目標(biāo)地圖。再基于第一目標(biāo)地圖的面積確定第一目標(biāo)地圖的目標(biāo)道路等級(jí),并隱藏第一目標(biāo)地圖中與目標(biāo)道路等級(jí)無(wú)關(guān)的路網(wǎng)得到第二目標(biāo)地圖。然后在第二目標(biāo)地圖中基于目標(biāo)道路等級(jí)的路網(wǎng)和距離最短探索原則從起點(diǎn)向終點(diǎn)逐步探索經(jīng)由點(diǎn)的中轉(zhuǎn)順序。最后,按照探索得到的中轉(zhuǎn)順序依次將起點(diǎn)、多個(gè)經(jīng)由點(diǎn)和終點(diǎn)連接得到初始路徑。接下來(lái),利用退火算法對(duì)初始路徑不斷進(jìn)行優(yōu)化以確定最優(yōu)路徑。本技術(shù)采用分段查詢的方式構(gòu)建初始路徑,逐步查詢符合距離要求的經(jīng)由點(diǎn)作為中轉(zhuǎn)點(diǎn),避免了一次性全局搜索的高計(jì)算開銷。這種查詢方式相對(duì)高效,尤其在節(jié)點(diǎn)數(shù)量較多的情況下表現(xiàn)更為突出。同時(shí)通過(guò)兩個(gè)目標(biāo)地圖的確定和路網(wǎng)隱藏操作,可以將搜索范圍縮小到目標(biāo)道路等級(jí)的地圖上,大大減少了需要處理的節(jié)點(diǎn)和邊,從而降低了計(jì)算復(fù)雜度。這使得在處理大規(guī)模路網(wǎng)時(shí),算法的性能消耗顯著減小。