什么是VRP?
VRP就是车辆配送。
大家有没有想象过一个城市的某个快递营业点,是怎么让各个快递员配送快递的?
每个快递员针对那片区域的客户,如何走路线才最省时间?
也许你会说,最短路径分析可以做到——那么,这可不能一个一个分开来分析呀?而且与最短路径有个最大的区别就是,VRP问题,车子出去走一圈最短的线路,还是要回来起点的。
VRP就是讲究一个“一次设置”,全部计算的效率,而且还支持一些最短路径分析中不支持的特性,如停靠时间等,这是这几个网络分析里比较复杂的一个了。
创建VRP图层所必须的——网络数据集的时间属性
VRP图层比较特殊,特殊在哪里呢?
以之前的网络数据集为例,新建一个VRP图层时提示:
需要时间单位存在于网络数据集中的成本属性?
其实,就是需要一个以时间为单位的属性,那么我们就设置一个时间属性:
因为没有其他复杂的限制,其实时间=长度/速度,如果速度恒定,时间和长度没什么两样,都是线性变换,所以可以直接设置为Length字段。
ps:假如道路对应时速不同,那么时间计算结果就不一样,那时候就不能这么设置了。
作为示范,希望大家能看懂。
这样,就能创建VRP图层了:
输入
VRP比较复杂,输入元素很多。为了演示最少需求元素,我画了一张图:
基于网络数据集,才能创建VRP图层,创建了VRP图层,又需要最少设置途径点、站点、路径及路径的两个必备属性才能进行分析。
什么意思呢?以快递配送举例:
- 途经点:一个快递员一趟跑下来经过的快递地址;可以理解为:路过的地方。
- 站点:快递配送中心;可以理解为:大本营。
- 路径项目:可以认为一个路径项目就是一个快递员/一辆快递员的车。
为了统一,我就以路径项目为名称继续写完VRP问题。
————————
一个路径项目(快递员)总得知道从哪里出发,又回到哪里。一般起始点、终止点都会一样,当然也可以不一样。快递员可以配送完了回到配送点报道,也可以直接回家。
分析举例
手工添加途经点和站点
首先,人工打点的方式设置15个途经点,5个站点。
一般使用VRP的项目不会这样做,一般会用准备好的点要素数据(就是预先打好的点,点属性里有VRP所需的信息),直接用加载位置功能添加。
创建路径项目并设置属性
创建完后自动弹出路径属性,也可以在Network Analyst窗口双击路径项目。
设置好起始点和终止点,起始点和终止点的类型是站点(大本营)。在这里,均选为第30号点。
执行分析
分析结果如下:
当然,可以有多条路径,就意味着可以拥有n个快递员进行n条路线规划,这就是“车辆配送问题”了。不再赘述。
如果提示分析需要时间属性,则打开图层属性中的分析设置,将时间属性选择为网络数据集的时间属性:
结语
VRP的复杂程度远远超过此例,还可以为其设置路径项目的成本、最大经过途经点个数、配送时间范围等属性。
还可以为其添加障碍。
还可以为其添加货物补给点。
还可以为所有的元素添加他们可以设置的属性等,在此就请各位按需而设~