Python 可以多次访问客户的CVRP

Python 可以多次访问客户的CVRP,python,optimization,vehicle-routing,Python,Optimization,Vehicle Routing,我想解决一个问题,这个问题看起来像是一个有容量的车辆路径问题(CVRP),但是可以多次访问客户,以满足他们的需求 我有: 有供应商和押金的完全图G(V,a) 成本矩阵 4辆容量为Q的车辆 V上的正函数f表示必须为每个客户提供的数量 我的目标是为所有客户提供这4辆车。客户可以乘坐两辆车前往 总路由距离必须最小化 我想用python解决这个问题 我查阅了一些文件(流程问题、TSP、VRP、CVRP箱包装…)。但没有成功 你知道这个问题的名字吗?是否有文件记录?否则,我应该如何表述这个问题? 我应

我想解决一个问题,这个问题看起来像是一个有容量的车辆路径问题(CVRP),但是可以多次访问客户,以满足他们的需求

我有:

  • 有供应商和押金的完全图G(V,a)
  • 成本矩阵
  • 4辆容量为Q的车辆
  • V上的正函数f表示必须为每个客户提供的数量
我的目标是为所有客户提供这4辆车。客户可以乘坐两辆车前往

总路由距离必须最小化

我想用python解决这个问题

我查阅了一些文件(流程问题、TSP、VRP、CVRP箱包装…)。但没有成功

你知道这个问题的名字吗?是否有文件记录?否则,我应该如何表述这个问题? 我应该使用哪个Python库


谢谢大家!

这是一个分割配送车辆路径问题(SDVRP)

这是传统VRP的一种变体,客户可以访问多次。 该问题可以表述为整数线性规划(ILP),但它仍然是一个np难问题

有关更多详细信息,请参阅


希望这能有所帮助。

这不只是旅行推销员的一个变种吗?如果这个问题空间是np难的,需要完全探索,任何捷径都可能导致非最优解。。。它也会很好地显示您的输入(可能是一个简化版本)和您的预期输出。。。无论你在这个问题上取得了什么样的进展,我都不知道这个问题的正确名称,可能类似于多次访问的vrp。与@JoranBeasley所说的相反,解决方案不需要完全探索,因为它确实是np难的,并且不可能列举所有解决方案。我以前使用Optaplanner模拟过类似的问题,实现它的一种方法是将每个站点的需求视为一个离散的数字(例如1)。这样就可以将单一需求分配给任何车辆。如果这造成了计划变量的爆炸性增长,您可以想出更聪明的方法将它们聚合在一起。希望这有帮助。非常感谢Joran和k88。暂时,由于没有找到令人满意的文章,我使用库docplex.mp.model编写了自己的优化问题。这看起来像是一个流问题(我很快会在这里写出来)。我能负担得起分行和债券解决方案,因为我的实例非常少(5家供应商和5辆汽车)。尽管如此,我还是会阅读有关VRP的文章,并按照建议多次访问。非常感谢你的帮助。