如何将需求率添加到 Or-Tools vrp

Posted

技术标签:

【中文标题】如何将需求率添加到 Or-Tools vrp【英文标题】:How can I add demand rate to Or-Tools vrp 【发布时间】:2019-05-16 18:43:39 【问题描述】:

您好,我结合使用这两个示例。

or-toolsvrptw

or-tools cvtp

在这种情况下的第一个和第二个(time_window),庄家要求的金额是不同的。 我可以为此给出“要求”的值范围吗?

我正在尝试在给定的需求间隔内优化需求。优化 应该根据最优需求最小化路线。

我希望第一个代码与第二个代码一样。

第一:

data['time_windows'] = [
  (0, 5),  # depot
  (7, 12),  # 1
  (10, 15),  # 2
  (16, 18),  # 3
  (10, 13),  # 4
  (0, 5),  # 5
  (5, 10),  # 6
  (0, 4),  # 7
  (5, 10),  # 8
  (0, 3),  # 9
  (10, 16),  # 10
  (10, 15),  # 11
  (0, 5),  # 12
  (5, 10),  # 13
  (7, 8),  # 14
  (10, 15),  # 15
  (11, 15),  # 16]

data['demands'] = [0, 1, 1, 2, 4, 2, 4, 8, 8, 1, 2, 1, 2, 4, 4, 8, 8]

第二:

data['demands'] = [(0,0), (1,3), (1,4), (1,3), (5,8), (2,4), (5,6), (6,6), (5,5), (1,4), (1,2), (3,4), (2,4), (1,3), (2,4),(1,3), (5,6)]

data['time_windows'] = [
  (0, 5),  # depot
  (7, 12),  # 1
  (10, 15),  # 2
  (16, 18),  # 3
  (10, 13),  # 4
  (0, 5),  # 5
  (5, 10),  # 6
  (0, 4),  # 7
  (5, 10),  # 8
  (0, 3),  # 9
  (10, 16),  # 10
  (10, 15),  # 11
  (0, 5),  # 12
  (5, 10),  # 13
  (7, 8),  # 14
  (10, 15),  # 15
  (11, 15),  # 16]

【问题讨论】:

【参考方案1】:

您可以对惩罚值为 * coeff 的每个节点使用一个析取。 所以求解器将有动力保持/访问具有高价值的节点......

见https://developers.google.com/optimization/routing/penalties

【讨论】:

以上是关于如何将需求率添加到 Or-Tools vrp的主要内容,如果未能解决你的问题,请参考以下文章

Googles OR-Tools Modules for CSP 和 VRP 使用哪个求解器?

OR-Tools - 最小化每条路线覆盖的区域

OR-Tools - 车辆路线问题 - 防止从初始解决方案中删除节点

在 Google or-tools 中的机器任务之间添加设置时间

jsprit如何将取件添加到车辆

or-tools:将 BoundIntegerExpression 转换为 IntegerExpression