專利名稱:一種獲取汽車在途最少時間的裝置及方法
技術領域:
本發明涉及交通領域,特別是涉及一種獲取汽車在途最少時間的 裝置及方法。
背景技術:
隨著城巿的發展,城巿交通也在飛速發展,但是城巿交通的擁堵 又是制約城巿發展的主要問題之一。人們開車出行時,因為對道路的 擁堵情況不確定,甚至對最佳行車路線的不確定,因而不能確定何時 出發,走什么樣的行車路線,才能使花費在路上的時間最少。
發明內容
本發明的目的是提供一種能夠獲取準確確定出發時間,并且汽車 在途時間最少的裝置及方法。
為達到上述目的, 一方面,本發明的技術方案提供一種獲取汽車
在途最少時間的方法,包括以下步驟
Sl,獲取汽車行駛的主干道,以及從出發點進入到所述主干道的
所有入口點和從所述主干道到達終點的所有出口點;
S2,獲取從所述出發點到達所述每個入口點的時間;
S3 ,獲取從所述每個入口點到達所有出口點的時間;
S4,獲取從所述每個出口點到達終點的時間;
S5,根據步驟S2、 S3和S4的結果,獲取汽車從所述出發點到 達所述終點的最少時間。
其中,獲取從所述出發點到達所述每個入口點的時間的方法包括 以下步驟
設置給定時間區間[tl, t4];
將給定時間區間[tl, t4]離散為多個時刻點;針對離散的每 一個時刻點,獲取從所述出發點到達所述每個入口 點的時間。
其中,將給定時間區間[tl, t4]離散為多個時刻點的方法包括以
521, 設置最大時間分片閾值、最小時間分片閩值、代價差異閾
值;
522, 獲取tl時刻的最小代價c[tl]、 t4時刻的最小代價c[t4];
S 2 3 ,判斷兩個相鄰的時刻內的最小代價之差的絕對值是否小于 所述代價差異閾值,且兩個相鄰的時刻內的時間范圍是否介于所述最 大時間分片閾值、最小時間分片閾值之間,如果是,則結東;如果不 是,則轉步驟S24;
S24 ,在步驟S23得到的給定時間區間內的兩個相鄰的時刻構成 的時間段內插入兩個時刻,將所述時間段分成三個時間長度相同的時
間段;
S25,獲取各個新插入時刻的最小代價; S26,循環步驟S23 S25,直到結束。
其中,在獲取從所述每個入口點到達所有出口點的時間之前還包
括
S31,任意選擇一個入口點,獲取所述定時間區間[tl, t4]內某一 離散時刻時該入口點到所有出口點的最短路徑,并保存所述最短路徑 包含的中間結果,所述中間結果包括該入口點與所述最短路徑對應 的出口點之間的所有入口點,以及從該入口點到達所有入口點中任意 一個入口點的時間、任意一個入口點到達所述最短路徑對應的出口點 的中間最短路徑、以及所述最短路徑對應的最終時間;;
S32,判斷是否還存在沒有獲取最短路徑的入口點,如果是,則 轉步驟S33,如果否,則結束;
S33,判斷所述中間結果中是否存在沒有獲取最短路徑的入口點到所有出口點的最短路徑,如果是,則將該最短路徑設置為該入口點
的最短路徑;如果否,則轉步驟S31。
為達到上述目的,另一方面,本發明的技術方案還提供一種獲取
汽車在途最少時間的裝置,包括道路信息獲取單元,用于獲取汽車 行駛的主干道,以及從出發點進入到所述主干道的所有入口點和從所 述主干道到達終點的所有出口點;第一時間獲取單元,與所述道路信 息獲取單元連接,用于獲取從所述出發點到達所述每個入口點的時 間;第二時間獲取單元,與所述道路信息獲取單元連接,用于獲取從 所述每個入口點到達所有出口點的時間;第三時間獲取單元,與所述 道路信息獲取單元連接,用于獲取從所述每個出口點到達終點的時
間;第四時間獲取單元,分別與所述第一、第二、第三時間獲取單元
連接,用于根據所述第一、第二、第三時間獲取單元獲取的結果,獲 取汽車從所述出發點到達所述終點的最少時間。
其中,所述裝置還包括設置單元,與所述道路信息獲取單元連
接,用于設置給定時間區間[tl, t4]、最大時間分片閾值、最小時間分片閾值、代價差異閾值;離散單元,與所述設置單元連接,用于將 所述給定時間區間[tl, t4]離散為多個時刻點,最小代價獲取單元,
分別與所述離散單元、第一時間獲取單元連接,用于獲取離散后的給
定時間區間[tl, t4]內各個時刻點的最小代價,并將各個時刻點的最
小代價發送給所述第一時間獲取單元。
其中,所述裝置還包括最短路徑獲取單元,分別與所述道路信 息獲取單元、第二時間獲取單元連接,用于獲取任意一個入口點到所 有出口點的路徑中的最短路徑。
上述技術方案僅是本發明的一個優選技術方案,具有如下優點 本發明能夠快速確定汽車的出發時間及行車路線,從而使汽車的在途 時間達到最小,節約時間,減少交通擁堵。
圖l是本發明實施例的 一種獲取汽車在途最少時間的方法的流程 示意圖2是本發明實施例的一種對時間區間進行離散的方法的流程示
意圖3是本發明實施例的一種對主干道確定最短路徑的方法的流程
示意圖4是本發明實施例的一種獲取汽車在途最少時間的裝置的結構 示意圖。
具體實施例方式
下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細 描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
從交通領域的具體特征出發,在計算最小代價的路徑問題上也不 需要考慮交通網絡中所有的節點。例如,如果距離很大,則用戶在兩 點間移動的時候,往往需要借助于主干道,或者用戶選擇其經常走的 路徑。這樣,我們可以將整個交通網絡分為兩個層次,主干道或者用 戶經常走的道路為上一層次,全部的節點在下一層次。本實施例的基 本方法是在上一層次詳細計算之后,根據全部節點信息構建完整的道 路網路信息。本實施例中的節點是指主干道或者用戶經常走的道路的 出口或入口。
車輛速度函數可以通過大量的數據中挖掘出來。在本發明中,我 們是利用車輛的函數,而不是側重于如何發現這些函數。函數的一些 可能的表示方式是一系列線性函數組合起來。車輛速度函數,或者是 車輛通過道路的時間代價函數和兩個因素相關, 一個是時間因素,這
個時間因素是周期性的,如一天24小時。 一個是地點因素(包含從一 個點到另外一個點的方向)。我們可以記錄一段時間內某條道路的情 況,記錄每輛車在特定時間點上通過這條道路的時間。然后以橫軸為 時間軸,縱軸為平均通過時間的點陣,用折線模擬,實現該條道路的車輛速度函數的獲取。這樣,就可以獲取某一時刻車輛在該路段的行 駛速度。
參見圖l、圖2、圖3,本實施例的獲取汽車在途最少時間的方法
包括以下步驟
Sl,獲取汽車行駛的主干道,以及從出發點進入到所述主干道的 所有入口點和從所述主干道到達終點的所有出口點;主干道可以為城 巿交通中的主干道,也可以為寬度較寬的道路,例如,單向兩車道以 上的道路,或者為用戶經常走的道路。
S2,設置給定時間區間[tl, t4];該給定時間區間是用戶從出發 點到終點的時間區間,例如,用戶從8點到9點由家到公司上班。但 是,由于道路上的汽車速度不確定,因此,并不是8點出發是最合適 的,需要將該時間區間離散為多個時間點,即將給定時間區間[tl, t4] 離散為多個時刻點;針對從出發點到達每個入口點的離散的每一個時
刻點,獲取從所述出發點到達所述每個入口點的時間;
53, 獲取從所述每個入口點到達所有出口點的時間;
54, 獲取從所述每個出口點到達終點的時間;
55, 根據步驟S2、 S3和S4的結果,就可以得到從某一個時刻 出發,獲取汽車從所述出發點到達所述終點的最少時間。從而節約了 用戶在路途中的時間。
其中,將給定時間區間[tl, t4]離散為多個時刻點的方法包括以 下步驟
S21,設置最大時間分片閾值max、最小時間分片閾值min、代 價差異閾值k;
S22,獲取tl時刻的最小代價c[tl]、t4時刻的最小代價c[t4]; C[tl] 表示在tl時刻(離散點)上開始運行最短路徑需要的時間,C[t4]表 示在t4時刻(離散點)上開始運行最短路徑需要的時間。在確定最 短路徑后,結合車輛速度函數,即可求得所需時間。從出發點到各個入口點及從各個出口點到終點的最短路徑通過比即可得到。從各個入 口點到各個出口點的最短路徑的獲取方法在下面有具體描述。
S 2 3 ,判斷兩個相鄰的時刻內的最小代價之差的絕對值是否小于 所述代價差異閾值k,且兩個相鄰的時刻內的時間范圍是否介于所述
最大時間分片閾值max、最小時間分片閾值min之間,如果是,則結 束對給定時間區間的離散;如果不是,則轉步驟S24;
S24,在所述給定時間區間[tl, t4]內平均插值t2、 t3,使tl到t2、 t2到t3、 t3到t4的時間范圍相同;
525, 獲取t2時刻的最小代價c[t2]、 t3時刻的最小代價c[t3];
526, 循環步驟S23 S25,直到結東對給定時間區間的離散。
其中,在獲取從所述每個入口點到達所有出口點的時間之前還包
括
S31,任意選擇一個入口點,基于時間點插值的Dijkstra算法獲 取定時間區間[t 1 , t4]內某 一 離散時刻時該入口點到所有出口點的路 徑中的最短路徑,并保存所述最短路徑包含的中間結果,所述中間結 果包括該入口點與所述最短路徑對應的出口點之間的所有入口點, 以及從該入口點到達所有入口點中任意一個入口點的時間、任意一個 入口點到達所述最短路徑對應的出口點的中間最短路徑、以及所述最 短路徑對應的最終時間。
以下由具體實例說明上述步驟,假設主干道有n個入口點 (sl sn), m個出口點(dl dm),離散時刻點序列為tl,..tk (包括k 個時刻點),在tl時間點,利用dijkstra算法發現一個入口 sl到所有 出口 dl......dm的最短路徑,以sl到dl為例,最短路徑是sl dl。對
于最短路徑中的任意節點(入口 )tmp,則中間結果的形式為(cometime, tmp…dl, totalcost),其中,cometime表示從sl沿著最短路到達tmp 的時間;tmp….dl表示從tmp到達dl剩余的最短路徑,totalcost表示 整個最短路徑的最終時間,在計算t2時刻的時候,在使用的dijkstra算法中,如果發現一個節點tmpl,在t2時刻到達,tmpl的時間和tmp 的某個comtime相同,則后續的路徑等同于U時刻發現的最短路。 由于存在mxnxk次最短路徑的計算,所以,上述中間結果存在重 用的可能。
Dijkstra算法是一個經典的圖論算法,其是將圖中所有的點分為 兩組, 一組為已確定最短路徑的點,另 一組為尚未確定最短路徑的點。 然后建立兩組頂點的集合,假設S為其到出發點V0的最短路徑已確 定的頂點集合(第一組),則初始的S只包含出發點V0, V0對應的 距離值為0;第二組初始時包含除出發點VO之外的所有其他頂點, 各頂點Vi對應的距離值如下確定若圖中有邊的權值〈V0,則Vi的 距離值為此邊的權值(權值即表示定點之間的距離),否則Vi的距離 值為一個很大的數。最后將第二組的頂點加入到第一組中,過程如下 每次從第二組的頂點中選擇一個其距離值最小的頂點Vm加入到第 一組,同時修改第二組中因Vm作為中間頂點而發生改變的各頂點的 距離值,如此直到圖的所有頂點均從第二組移到第一組為止。關于 Dijkstra算法的詳細介紹可以參見以下文獻E. Dijkstra. A note on two problems in connection with graphs. Numerical Mathematics, 1:395412, 1959,
S32,判斷是否還存在沒有獲取最短路徑的入口點,如果是,則 轉步驟S33,如果否,則結束;
S33, S33,判斷所述中間結果中是否存在沒有獲取最短路徑的入 口點到所有出口點的最短路徑,如果是,則將該最短路徑設置為該入 口點的最短路徑;如果否,則轉步驟S31。
主干道的發現實際上是多個入口和多個出口之間的發現算法。考 慮離散的時間點,需要運行mxnxp次,其中m是入口數,n是出口數, P是最終離散點數。由于中間存在較多的重復結果,緩存重復結果, 避免重復運算。參見圖4,本實施例的獲取汽車在途最少時間的裝置,包括道
路信息獲取單元,其中儲存有電子地圖,根據電子地圖,可以獲取汽 車行駛的主干道,以及從出發點進入到主干道的所有入口點和從主干 道到達終點的所有出口點。設置單元與道路信息獲取單元連接,用于 根據獲取的主干道及所有出口點和入口點信息,設置給定時間區間、最大時間分片閾值、最小時間分片閾值、代價差異閾值,
并將以上信息發送給離散單元,離散單元與設置單元連接,根據設置
單元設置的給定時間區間[tl, t4],將給定時間區間[tl, t4]離散為多 個時刻點,其中,離散的方法釆用上述描述的離散方法。離散單元將 離散后的時刻點信息發送給最小代價獲取單元,最小代價獲取單元獲 取離散后的給定時間區間[tl, t4]內各個時刻點的最小代價,并將各 個時刻點的最小代價發送給第一 時間獲取單元。第一時間獲取單元結 合車輛數度函數,獲取從出發點到達每個入口點的時間。最短路徑獲 取單元,分別與道路信息獲取單元、第二時間獲取單元連接,用于獲 取任意一個入口點到所有出口點的路徑中的最短路徑,并將該信息發 送給第二時間獲取單元,第二時間獲取單元結合車輛數度函數,獲取
從每個入口點到達所有出口點的時間。第三時間獲取單元,與道路信 息獲取單元連接,用于獲取從每個出口點到達終點的時間。第四時間 獲取單元,分別與第一、第二、第三時間獲取單元連接,用于根據第 一、第二、第三時間獲取單元獲取的結果,獲取汽車從出發點到達終 點的最少時間。
由以上實施例可以看出,本方法提出了一種兩層次的路徑發現算 法。從完整交通網絡中按照道路等級、用戶偏好抽取出主干道,發現 當前位置到主干道的若干入口的路徑,結合主干道路徑運行時間,發 現整個時變網絡中的最小代價行車路線。由于主干道網路節點遠遠小 于原有網絡,同時滿足用戶的行車規律,本方法能夠以較小的代價獲 取最小代價行車路線;本方法提出了一種基于動態規劃的主干道路徑發現算法,通過保存中間結果,減少發現主干道中給定時間范圍的最 小代價行車路線發現的代價。本發明能夠快速確定汽車的出發時間及 行車路線,從而使汽車的在途時間達到最小,節約時間,減少交通擁 堵。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領 域的普通技術人員來說,在不脫離本發明技術原理的前提下,還可以 做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1、一種獲取汽車在途最少時間的方法,其特征在于,包括以下步驟S1,獲取汽車行駛的主干道,以及從出發點進入到所述主干道的所有入口點和從所述主干道到達終點的所有出口點;S2,獲取從所述出發點到達所述每個入口點的時間;S3,獲取從所述每個入口點到達所有出口點的時間;S4,獲取從所述每個出口點到達終點的時間;S5,根據步驟S2、S3和S4的結果,獲取汽車從所述出發點到達所述終點的最少時間。
2、 如權利要求1所述的獲取汽車在途最少時間的方法,其特征 在于,獲取從所述出發點到達所述每個入口點的時間的方法包括以下 步驟設置給定時間區間[tl, t4〗; 將給定時間區間[tl, t4]離散為多個時刻點; 針對離散的每 一個時刻點,獲取從所述出發點到達所述每個入口 點的時間。
3、 如權利要求2所述的獲取汽車在途最少時間的方法,其特征 在于,將給定時間區間[tl, t4]離散為多個時刻點的方法包括以下步S21,設置最大時間分片閾值、最小時間分片閾值、代價差異閾值;S22,獲取tl時刻的最小代價c[tl]、 t4時刻的最小代價c[t4];S23,判斷兩個相鄰的時刻內的最小代價之差的絕對值是否小于 所述代價差異閾值,且兩個相鄰的時刻內的時間范圍是否介于所述最 大時間分片閾值、最小時間分片閾值之間,如果是,則結束;如果不 是,則轉步驟S24;S24 ,在步驟S23得到的給定時間區間內的兩個相鄰的時刻構成 的時間段內插入兩個時刻,將所述時間段分成三個時間長度相同的時 間段;S25,獲取各個新插入時刻的最小代價; S26,循環步驟S23 S25,直到結束。
4、 如權利要求3所述的獲取汽車在途最少時間的方法,其特征 在于,在獲取從所述每個入口點到達所有出口點的時間之前還包括S31,任意選擇一個入口點,獲取所述定時間區間[tl, t4]內某一 離散時刻時該入口點到所有出口點的最短路徑,并保存所述最短路徑 包含的中間結果,所述中間結果包括該入口點與所述最短路徑對應 的出口點之間的所有入口點,以及從該入口點到達所有入口點中任意 一個入口點的時間、任意一個入口點到達所述最短路徑對應的出口點 的中間最短路徑、以及所述最短路徑對應的最終時間;532, 判斷是否還存在沒有獲取最短路徑的入口點,如果是,則 轉步驟S33,如果否,則結東;533, 判斷所述中間結果中是否存在沒有獲取最短路徑的入口點 到所有出口點的最短路徑,如果是,則將該最短路徑設置為該入口點 的最短路徑;如果否,則轉步驟S31。
5、 一種獲取汽車在途最少時間的裝置,其特征在于,包括 道路信息獲取單元,用于獲取汽車行駛的主干道,以及從出發點進入到所述主干道的所有入口點和從所述主干道到達終點的所有出 口點;第一時間獲取單元,與所述道路信息獲取單元連接,用于獲取從 所述出發點到達所述每個入口點的時間;第二時間獲取單元,與所述道路信息獲取單元連接,用于獲取從所述每個入口點到達所有出口點的時間;第三時間獲取單元,與所述道路信息獲取單元連接,用于獲取從所述每個出口點到達終點的時間;第四時間獲取單元,分別與所述第一、第二、第三時間獲取單元 連接,用于根據所述第一、第二、第三時間獲取單元獲取的結果,獲 取汽車從所述出發點到達所述終點的最少時間。
6、 如權利要求5所述的獲取汽車在途最少時間的裝置,其特征在于,所述裝置還包括設置單元,與所述道路信息獲取單元連接,用于設置給定時間區 間[tl, t4]、最大時間分片閾值、最小時間分片閾值、代價差異閾值;離散單元,與所述設置單元連接,用于將所述給定時間區間[tl,t4]離散為多個時刻點,最小代價獲取單元,分別與所述離散單元、第一時間獲取單元連 接,用于獲取離散后的給定時間區間[tl, t4]內各個時刻點的最小代 價,并將各個時刻點的最小代價發送給所述第 一 時間獲取單元。
7、 如權利要求5所述的獲取汽車在途最少時間的裝置,其特征在于,所述裝置還包括最短路徑獲取單元,分別與所述道路信息獲取單元、第二時間獲 取單元連接,用于獲取任意一個入口點到所有出口點的路徑中的最短
全文摘要
本發明公開了一種獲取汽車在途最少時間的方法,包括以下步驟S1,獲取汽車行駛的主干道,以及從出發點進入到所述主干道的每個入口點和從所述主干道到達終點的每個出口點;S2,獲取從所述出發點到達所述每個入口點的時間;S3,獲取從所述每個入口點到達所有出口點的時間;S4,獲取從所述每個出口點到達終點的時間;S5,根據步驟S2、S3和S4的結果,獲取汽車從所述出發點到達所述終點的最少時間。本發明能夠快速確定汽車的出發時間及行車路線,從而使汽車的在途時間達到最小,節約時間,減少交通擁堵。
文檔編號G01C21/26GK101294821SQ20081011558
公開日2008年10月29日 申請日期2008年6月25日 優先權日2008年6月25日
發明者楊冬青, 王騰蛟, 軍 高 申請人:北京大學