我正在尝试仅使用 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/