【问题标题】:CVRP where customers can be visited more than once可以多次访问客户的 CVRP
【发布时间】:2020-04-18 16:41:57
【问题描述】:

我想解决一个看起来像载客车辆路线问题 (CVRP) 的问题,但可以多次拜访客户以满足他们的需求。

我有:

  • 包含供应商和押金的完整图 G(V,A)
  • cost_matrix M
  • 4辆车,容量为Q
  • V 上的正函数 f,表示必须为每个客户提供的数量。

我的目标是为所有客户提供这 4 辆车。可以乘坐两辆车拜访客户。

总路由距离必须最小化。

我想用python解决这个问题。

我已经查阅了一些文档(流程问题、TSP、VRP、CVRP 装箱...)。但没有成功。

你知道这个问题是否有名字吗?如果记录在案?否则,我应该如何制定问题? 我应该使用哪个 Python 库?

谢谢!

【问题讨论】:

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

标签: python optimization vehicle-routing


【解决方案1】:

这是一个拆分交付车辆路线问题 (SDVRP)。

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

更多详情可以参考https://www.sciencedirect.com/science/article/pii/0166218X9200172I

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-03-15
    • 2016-02-17
    • 1970-01-01
    • 2017-02-11
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    相关资源
    最近更新 更多