带有时间窗和动态出发时间的Optaplanner车辆路径问题

问题描述 投票:0回答:1

我正在开发一个 VRPTW,我需要优化卡车何时离开仓库,同时还要考虑每小时的调度限制。也就是说发车时间不固定,只知道一天中什么时间可以开始发车,每小时可以发多少辆。

有没有一种方法可以对域进行建模以便我可以实现这个目标?我目前实施的 VRPTW 正在运行,但没有优化出发时间,这导致许多卡车过早出发,虽然它满足了订单的交货窗口,但通过将出发时间分散在一天中还有改进的空间

optaplanner
1个回答
0
投票
  1. 以 timefold-quickstarts 中的 Timefold VRPTW 为例(这是一个新的快速入门,因为我们继续 OptaPlanner。它使用 Timefold Solver Community,所以也是开源的)

  2. 使用 ArrivalTimeUpdatingVariableListener 来延迟一些卡车。

  3. 确保听者 100% 确定,无论谁被移入 时间块最后。通常,ID 排序效果很好。例如, 每小时 3 辆卡车,鉴于

    A, C, E
    已经在那里,添加
    B
    将导致
    A, B, C
    并触发
    E
    推入下一个时间块。

  4. 确保监听器递归到未来时间。在上面的示例中,当

    E
    被推送到已经包含
    D, G, H
    的下一个时间块时,它会导致
    D, E, G
    并触发将
    H
    也向下推送。


或者,当且仅当您的所有车辆都完全相同时,只需创建足够的车辆来填充每个起始块并使用开箱即用的 Timefold VRPTW 快速入门。

然后添加硬约束来限制已使用车辆的总数。

© www.soinside.com 2019 - 2024. All rights reserved.