理解OSRM 3 CH演算法總覽

2021-09-20 09:55:03 字數 778 閱讀 1524

引用自【algorithms】最短路徑演算法ch:contraction hierarchies

預處理生成乙個多層的結構,每個點都處在單獨的一層。事先對點進行優先順序排序(怎麼排都行,但是排序的好壞直接影響到預處理的效率以及搜尋的效率。舉個例子,鄰接點個數)

點的優先順序(高低)是人為指定的,根據優先順序從低到高依次選點進行contraction.什麼是contraction呢,假設拿掉這個點,看看會不會影響圖中點對之間的shorstest path。因此只需要看看它鄰接的級別比它高的點的兩兩點對之間的shortest path是否經過這個點,如果經過的話,就在這個點對之間加上一條邊儲存它們的shortest path,這條邊叫做shortcut。為什麼只需要看級別比它高的點?這與ch在搜尋最短路徑時的演算法有關。ch採用雙向dijkstra,並且搜的時候只能從級別低的往級別高的搜,兩邊相碰之後,就儲存路徑。如果某個點a的兩個鄰接點b,c的級別都比a低,而且bc之間的最短路徑經過a的話,是不需要在bc之間加shorcut的,直接通過雙向dijkstra可以搜尋出來。

搜尋過程:

雙向dijkstra,從低往高搜。停止條件:兩邊的open佇列都為空了

搜完之後,需要將shortcut轉化成原始邊。

傳統的 dijkstra最短路徑問題的詢問時間,取決於搜尋的問題的距離 query time independent of dist(s, t)

因為dijkstra 演算法屬於啟發式演算法 以乙個點為中心,向外層層擴充套件。 所以,在計算給定兩點,或者是源點的問題是,這個演算法並不快。現在做的東西需要乙個快速計算,乙個給定點到所有點的最短路徑。

理解OSRM 1 總覽

osrm openstreetmap routeing machine 可用於路線規劃。作為高效能的路線規劃引擎,osrm使用c 14編寫,基於開源的openstreetmap資料實現。osrm在進行真正的路徑規劃前需要進行資料前處理,如果資料格式為.pbf的話,還需要先解壓 osrm extrac...

演算法筆記ch3

題目描述 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的,則規定它們之間的天數為兩天。解題思路 這種求日期之間相差天數的題目有乙個很直接的思路,即令日期不斷加1天,直到第乙個日期等於第二個日期為止,即可統計出答案。如果想要加快速度,只需要先把第乙個日期的年份不斷加1,直到與第二個日期的年份相...

3A演算法理解

3a技術即自動對焦 af 自動 ae 和自動白平衡 awb 3a數字成像技術利用了af自動對焦演算法 ae自動 演算法及awb自動白平衡演算法來實現影象對比度最大 改善主體拍攝物過 或 不足情況 使畫面在不同光線照射下的色差得到補償,從而呈現較高畫質的影象資訊。採用了3a數字成像技術的攝像機能夠很好...