【问题标题】:Time taken to solve a Vehicle Routing Problem (CVRPTW) using Google OR Tools depends on the ordering of vehicle capacity使用 Google OR 工具解决车辆路径问题 (CVRPTW) 所需的时间取决于车辆容量的排序
【发布时间】:2021-08-06 17:51:20
【问题描述】:

我尝试通过结合官方文档中提供的示例中的 CVRP 和 VRPTW 来创建 CVRPTW 解决方案。

由于代码很大,我无法将其粘贴到此处,因此我分享了一个 colab 笔记本,演示了一个重现问题的简短示例: https://colab.research.google.com/drive/1YN-6kABqGqSkQKxOtWD6YA2ZDlP8RfqD?usp=sharing

每个节点要交付的数量是[0, 80, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1]

我有 22 辆车,21 辆容量为 25 的车辆和 1 辆容量为 600 的车辆。 如果车辆按升序排序,则具有 14 个节点的示例需要 200 多秒才能求解,如果它们按降序排序,则相同示例会在不到一秒的时间内求解。

我是第一次使用 Google OR 工具,所以我不知道这是否符合预期。我也尝试过添加引导式本地搜索,但是当我添加时间限制以停止它时,它会停止而没有给出解决方案。

我在 repo 中创建了一个问题,但它被转换为讨论。

https://github.com/google/or-tools/discussions/2554

我也在官方邮件列表中问过这个问题。

https://groups.google.com/g/or-tools-discuss/c/MHoMwkHQuoo

【问题讨论】:

  • 我已尝试使用 Laurent Perron 在邮件列表中建议的不同的第一个解决方案策略。使用 SAVINGS、PARALLEL_CHEAPEST_INSERTION 和 LOCAL_CHEAPEST_INSERTION 时,它可以正常工作。

标签: python or-tools vehicle-routing


【解决方案1】:

这是 OR 求解器的一个众所周知的属性。 因为它们包含大量启发式方法,所以它们对模型中变量或约束的顺序非常敏感。

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2020-12-02
    • 2018-08-31
    • 2021-05-21
    相关资源
    最近更新 更多