什么是VRP?
VRP就是車輛配送。
大家有沒有想象過一個城市的某個快遞營業點,是怎么讓各個快遞員配送快遞的?
每個快遞員針對那片區域的客戶,如何走路線才最省時間?
也許你會說,最短路徑分析可以做到——那么,這可不能一個一個分開來分析呀?而且與最短路徑有個最大的區別就是,VRP問題,車子出去走一圈最短的線路,還是要回來起點的。
VRP就是講究一個“一次設置”,全部計算的效率,而且還支持一些最短路徑分析中不支持的特性,如停靠時間等,這是這幾個網絡分析里比較復雜的一個了。
創建VRP圖層所必須的——網絡數據集的時間屬性
VRP圖層比較特殊,特殊在哪里呢?
以之前的網絡數據集為例,新建一個VRP圖層時提示:
需要時間單位存在於網絡數據集中的成本屬性?
其實,就是需要一個以時間為單位的屬性,那么我們就設置一個時間屬性:
因為沒有其他復雜的限制,其實時間=長度/速度,如果速度恆定,時間和長度沒什么兩樣,都是線性變換,所以可以直接設置為Length字段。
ps:假如道路對應時速不同,那么時間計算結果就不一樣,那時候就不能這么設置了。
作為示范,希望大家能看懂。
這樣,就能創建VRP圖層了:
輸入
VRP比較復雜,輸入元素很多。為了演示最少需求元素,我畫了一張圖:
基於網絡數據集,才能創建VRP圖層,創建了VRP圖層,又需要最少設置途徑點、站點、路徑及路徑的兩個必備屬性才能進行分析。
什么意思呢?以快遞配送舉例:
- 途經點:一個快遞員一趟跑下來經過的快遞地址;可以理解為:路過的地方。
- 站點:快遞配送中心;可以理解為:大本營。
- 路徑項目:可以認為一個路徑項目就是一個快遞員/一輛快遞員的車。
為了統一,我就以路徑項目為名稱繼續寫完VRP問題。
————————
一個路徑項目(快遞員)總得知道從哪里出發,又回到哪里。一般起始點、終止點都會一樣,當然也可以不一樣。快遞員可以配送完了回到配送點報道,也可以直接回家。
分析舉例
手工添加途經點和站點
首先,人工打點的方式設置15個途經點,5個站點。
一般使用VRP的項目不會這樣做,一般會用准備好的點要素數據(就是預先打好的點,點屬性里有VRP所需的信息),直接用加載位置功能添加。
創建路徑項目並設置屬性
創建完后自動彈出路徑屬性,也可以在Network Analyst窗口雙擊路徑項目。
設置好起始點和終止點,起始點和終止點的類型是站點(大本營)。在這里,均選為第30號點。
執行分析
分析結果如下:
當然,可以有多條路徑,就意味着可以擁有n個快遞員進行n條路線規划,這就是“車輛配送問題”了。不再贅述。
如果提示分析需要時間屬性,則打開圖層屬性中的分析設置,將時間屬性選擇為網絡數據集的時間屬性:
結語
VRP的復雜程度遠遠超過此例,還可以為其設置路徑項目的成本、最大經過途經點個數、配送時間范圍等屬性。
還可以為其添加障礙。
還可以為其添加貨物補給點。
還可以為所有的元素添加他們可以設置的屬性等,在此就請各位按需而設~