一種物流配送路徑規(guī)劃方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及物流配送技術領域,具體涉及一種物流配送路徑規(guī)劃方法及裝置。
【背景技術】
[0002]在物流領域配送路徑規(guī)劃問題是車輛路徑問題(VRP)之一。傳統(tǒng)的車輛路徑優(yōu)化問題研宄包括圖的遍歷、最短路徑、旅行商問題、歐拉回路、哈密爾頓回路和中國郵遞員問題。
[0003]VRP研宄方法主要分為精確算法和啟發(fā)式算法兩大類。精確算法以嚴謹?shù)臄?shù)學推導為基礎,能夠獲得最優(yōu)解,該類無法避免組合爆炸的問題,只適合于解決小規(guī)模的VRP問題,在目前VRP領域實際應用范圍有限。啟發(fā)式算法是從初始解出發(fā),在鄰域中搜索實現(xiàn)解的改進,快速得到可接受的一個解的方法。該類算法雖然能夠比較快的解決有關問題,但該算法的優(yōu)劣往往取決于算法設計者的實際經驗以及處理的樣本空間的大小。
[0004]掃描法是運輸路徑規(guī)劃最實用的啟發(fā)式算法。它假設車輛的路徑位于一個幾何平面上,配送點為原點,需求點以極坐標來表示,先選定一輛配送車輛,在不違反車輛容量限制的前提下,從角度最小且尚未指派的節(jié)點開始,依順時針或逆時針的方向掃描。當車輛容量超過時,結束該條路徑。重復上述步驟,生成新的路徑,直到將所有的節(jié)點都被排入。最后再用求解旅行商問題(Traveling Salesman Problem,簡稱TSP)的算法對每一條路徑分別進行優(yōu)化。該方法本質是先聚類再規(guī)劃的兩階段方法,能夠在較短時間內求得可行的滿意解,但其掃描劃分路徑過程中忽略道路的縱橫特點,在掃描扇區(qū)內的需求點實際配送路徑可能要繞遠;路徑內以TSP方法進行規(guī)劃,以訪問每個需求點僅且一次為約束;同時掃描法路徑規(guī)劃的路徑回路覆蓋的范圍相對分散,不符合實際配送中的分片包干的配送管理。
【發(fā)明內容】
[0005]針對現(xiàn)有路徑規(guī)劃方法中忽略了道路縱橫特點以及單個需求點有可能多次配送造成的路徑回路覆蓋范圍相對分散的缺陷,本發(fā)明提供了一種物流配送路徑規(guī)劃方法及裝置。
[0006]一方面,本發(fā)明提供的一種物流配送路徑規(guī)劃方法,包括:
[0007]SI,獲取每個需求點的配送量和配送點與需求點之間以及各需求點之間的直接可達最短路徑的距離;
[0008]S2,以配送點和需求點為節(jié)點,以所述配送點與需求點之間以及各需求點之間的直接可達最短路徑為邊,構造路徑連通圖;
[0009]S3,根據(jù)所述每個需求點節(jié)點的配送量以及每條邊的距離對所述路徑連通圖劃分任務子圖,每個所述任務子圖所包含的節(jié)點的配送量總和不大于預設運量容限;
[0010]S4,針對每一個所述任務子圖,構造包含該任務子圖中全部節(jié)點的最小支撐樹;
[0011]S5,從所述最小支撐樹與所述配送點節(jié)點構成的全部回路中選取包含最小支撐樹路徑最長的回路為配送路徑主干,所述配送路徑主干之外的懸掛節(jié)點采用往返路徑,得到該任務子圖的配送路徑。
[0012]進一步地,所述S3中,根據(jù)所述每個需求點節(jié)點的配送量以及每條邊的距離劃分任務子圖的步驟,包括:
[0013]S31,針對每一個需求點節(jié)點,若該需求點節(jié)點的配送量大于預設運量容限,則為該需求點節(jié)點劃分一個任務子圖,直至該需求點節(jié)點的配送量小于預設運量容限為止;
[0014]S32,選取所有配送量小于預設運量容限的需求點節(jié)點中與所述配送點的距離最大的一個需求點節(jié)點作為待合并節(jié)點;
[0015]S33,判斷與所述待合并節(jié)點直接可達的需求點節(jié)點中是否存在與該待合并節(jié)點的配送量之和小于或等于運量容限的節(jié)點,若存在則執(zhí)行S34,若不存在則將待合并節(jié)點單獨劃分為一個任務子圖;
[0016]S34,選取與待合并節(jié)點的配送量之和小于運量容限的節(jié)點中與待合并節(jié)點距離最近的一個節(jié)點待合并節(jié)點合并;
[0017]S35,對于剩余未參與合并的需求點節(jié)點重復S32至S34 ;
[0018]S36,對于合并得到的子圖重復S32至S35,直至所有需求點節(jié)點都劃分得到對應的任務子圖為止。
[0019]進一步地,所述S4包括:
[0020]針對每一個任務子圖,采用避圈法構造包含該任務子圖所包含的全部節(jié)點的最小支撐樹。
[0021 ] 進一步地,所述方法還包括:
[0022]S6,采用單步法對所述單個任務子圖內的配送路徑進行優(yōu)化。
[0023]進一步地,所述S6包括:
[0024]S61,針對每一個懸掛節(jié)點,判斷所述最小支撐樹中與該懸掛節(jié)點連接節(jié)點的上一個節(jié)點或下一個節(jié)點是否存在與該懸掛節(jié)點直接可達路徑;
[0025]S62,若存在,則判斷該懸掛節(jié)點與所述上一個節(jié)點或下一個節(jié)點之間的距離是否小于該懸掛節(jié)點經所述最小支撐樹到達所述上一個節(jié)點或下一個節(jié)點的距離;
[0026]S63,若小于,則采用該懸掛節(jié)點與所述上一個節(jié)點或下一個節(jié)點之間的路徑替換該懸掛節(jié)點經所述最小支撐樹到達所述上一個節(jié)點或下一個節(jié)點的路徑。
[0027]另一方面,本發(fā)明還提供一種物流配送路徑規(guī)劃裝置,包括:
[0028]獲取模塊,用于獲取每個需求點的配送量和配送點與需求點之間以及各需求點之間的直接可達最短路徑的距離;
[0029]第一構造模塊,用于以配送點和需求點為節(jié)點,以所述配送點與需求點之間以及各需求點之間的直接可達最短路徑為邊,構造路徑連通圖;
[0030]劃分模塊,用于根據(jù)所述每個需求點節(jié)點的配送量以及每條邊的距離對所述路徑連通圖劃分任務子圖,每個所述任務子圖所包含的節(jié)點的配送量總和不大于預設運量容限;
[0031]第二構造模塊,用于針對每一個所述任務子圖,構造包含該任務子圖中全部節(jié)點的最小支撐樹;
[0032]選取模塊,用于從所述最小支撐樹與所述配送點節(jié)點構成的全部回路中選取包含最小支撐樹路徑最長的回路為配送路徑主干,所述配送路徑主干之外的懸掛節(jié)點采用往返路徑,得到該任務子圖的配送路徑。
[0033]進一步地,所述劃分模塊具體用于:
[0034]針對每一個需求點節(jié)點,若該需求點節(jié)點的配送量大于預設運量容限,則為該需求點節(jié)點劃分一個任務子圖,直至該需求點節(jié)點的配送量小于預設運量容限為止;
[0035]選取所有配送量小于預設運量容限的需求點節(jié)點中與所述配送點的距離最大的一個需求點節(jié)點作為待合并節(jié)點;
[0036]判斷與所述待合并節(jié)點直接可達的需求點節(jié)點中是否存在與該待合并節(jié)點的配送量之和小于或等于運量容限的節(jié)點,若存在則選取與待合并節(jié)點的配送量之和小于運量容限的節(jié)點中與待合并節(jié)點距離最近的一個節(jié)點待合并節(jié)點合并,若不存在則將待合并節(jié)點單獨劃分為一個任務子圖;
[0037]對于剩余未參與合并的需求點節(jié)點重復上述操作;
[0038]對于合并得到的子圖重復上述操作,直至所有需求點節(jié)點都劃分得到對應的任務子圖為止。
[0039]進一步地,所述第二構造模塊具體用于:
[