带时间窗的车辆路由在Python中实现

时间:2016-01-05 16:13:23

标签: python optimization vehicle-routing

我正在研究一个用例,其中我有多个车辆作为仓库,送货员和来自不同地点的一组客户提供新鲜食物。客户会从应用程序下订单,然后送货员接收订单并从Van获得食物,然后以一定的交付时间(15分钟)交付。我想优化这个问题,以减少旅行的运营成本,减少交货时间。只是想知道Python中有没有实现解决VRPTW问题?请帮忙

3 个答案:

答案 0 :(得分:0)

你可以在python中找到Dijkstra最短路径算法的实现。

示例实现是

http://code.activestate.com/recipes/577506-dijkstra-shortest-path-algorithm/

答案 1 :(得分:0)

阅读一些有关车辆路径问题的研究论文。我已经看到一些论文提供了有关车辆路径的完整算法,并且考虑了多个标准,它们以不同的方式出现。因此,可以实现本文提供的一种或多种算法,并进行测试以使用最佳解决方案。

答案 2 :(得分:0)

如果要解决路线问题,首先要弄清的是要解决的车辆路线问题的变体。我将假设货车是固定的(即,您也不会尝试优化货车本身的位置)。首先,问题是动态的,因为它是实时发生的-也就是说,这是实时路线优化问题。如果将送货人员预先分配到一辆面包车,则这可能被视为动态多程车辆路线问题(明显带有时间窗)。一般而言,尽管这是一个动态的取件和送货车路线问题,但据推测,送货人员可以从不同的货车取车(因此是DPDVRPTW)。您几乎肯定也需要软时间窗口,这使其成为 具有软时间窗口的DPDVRP。柔和的时间窗口是必不可少的,因为在实时设置中,您通常希望尽快交付,因此希望尽量减少您的迟到时间。像VRPTW中一样,正常的“困难”时间窗口不允许您在一定时间后交货,但是在此时间之前交货不会造成任何成本损失(即,它们是二进制的)。因此,您不能使用它们来最大程度地减少延迟。

恐怕我不知道有任何可用python或其他语言解决的带有软时间窗口的动态取件和送货车辆路线问题的开源求解器。

survey article对该主题有很好的概述。我们还发布了关于开发实时路线优化器的white paper,这可能比学术论文更容易阅读。 (免责声明-我是本白皮书的作者)。