【问题标题】:Google OR Tools VRP with time windows and Google Maps API带有时间窗口和 Google Maps API 的 Google OR Tools VRP
【发布时间】:2021-12-29 21:57:06
【问题描述】:

我正在使用 Google OR Tools 车辆路线实现,并尝试使用 Google Maps API 将交通时间合并到我的时间矩阵中。但是,Google Maps API 在可以构建多大的时间矩阵、在特定时间内可以完成多少请求等方面存在限制。

我知道 Google OR Tools VRP 需要这个时间矩阵,但我不需要所有起点和终点的所有组合之间的行程时间。例如,我正在输入上车/下车对,为此计算从每个下车到指定上车的行程时间是没有意义的。此外,也许我也无法计算彼此相距很远(我会建立一些最大距离)的位置之间的旅行时间。不必为这些组合调用 API,而是在这些组合的时间矩阵中使用某些常量作为占位符,从而降低计算复杂度。

这个路由模型可以循环运行吗,这样在第一次迭代中,我只计算最可能的分配之间的行程时间,并且在每个循环内,每个司机都被分配一个接送/下车对,然后在下一个循环中旅行已经完成的任务之间的时间不再需要计算了吗?我什至不知道这是否会改变计算时间。

以前有没有人遇到过这个问题?我很想听听任何建议和/或其他启发式方法。

【问题讨论】:

  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python google-maps-api-3 or-tools


【解决方案1】:

VRP 旅行矩阵所需的输入是访问位置之间所有可能的距离。您可以通过假设 A 到 B 之间的距离等于 B 到 A 来降低问题的复杂性,这也将减少对 Google Map API 的 API 调用。需要注意的是,行进矩阵的形状必须始终是对称的。 VRP求解启发式需要位置之间的距离来找到下一个要访问的最佳节点。 如果您确定某些位置在访问某个位置后不会再访问,您可以将这些位置之间的距离设置为大 M(即sys.maxsize())。但是,请注意方向约束(拾取下降约束),如果在约束链接的 2 个位置之间设置 Big M,求解器肯定会失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    • 2022-06-30
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多