python - 具有聚合点的取货和送货 VSP

标签 python or-tools vehicle-routing

我正在尝试仅使用 or-tools 解决一辆车的简单取货和送货 VRP。 我正在关注文档 https://developers.google.com/optimization/routing/pickup_delivery ,当所有上车点和下车点彼此不同时,似乎一切都按预期进行。 pickups_deliveries 数组如下所示:

data['pickups_deliveries'] = [
        [1, 6],
        [2, 10],
        [4, 3],
        [5, 9],
        [7, 8],
        [15, 11],
        [13, 12],
        [16, 14],
    ]

但是,我们假设存在多个聚合点,其中有多个包裹需要取件,并且 express 公司拥有无限的空间。我试图修改上面的示例,以便在多个取货/送货对中使用相同的取货索引:

data['pickups_deliveries'] = [
        [1, 6],
        [2, 10],
        [2, 3],
        [2, 9],
        [1, 8],
        [1, 11],
        [2, 12],
        [2, 14],
    ]

我期望的结果是只有 2 个接送站和 8 个送货点,但不幸的是,当我运行求解器时,它返回 None。

solution = routing.SolveWithParameters(search_parameters) # returns None

有办法解决这个问题还是我错过了一些更重要的东西?我对这个库还很陌生,所以任何指示将不胜感激。

最佳答案

您必须复制节点 2,使其仅参与一个 P&D。

请注意,每个地点只能访问一次!

关于python - 具有聚合点的取货和送货 VSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68133575/

相关文章:

python - 检查 argparse 参数集,或使用默认值,或覆盖

python - 如何在 Google OR-Tools 中设置每条路线的最小位置?

python - 这是使用 Python `asyncio` 协程的预期模式吗?

python - 如何在ubuntu上的vs code中编写python?

python - 如何自动实例化 OWL 本体类?

或工具:某些位置的 slack_max 是不同的

algorithm - 购物路线优化算法?

or-tools - 谷歌 OR 工具 : Minimize Total Time

python - 如何解释从 Google OR Tools 返回的车辆路径问题解决方案?

c# - 员工轮类问题 - 将任务联系在一起