【发布时间】:2021-12-23 06:15:18
【问题描述】:
我正在尝试使用并行方法提高 OptaPlanner 的性能,但我不确定最佳策略。
我有 PDPTW:
- 车辆路线
- 时间窗口(1 小时窗口)
- 提货和送货
当一位新客户想要添加送货服务时,我试图找出一种快速的方法(不到一秒)向他们展示一天中有哪些时间段(上午 8 点、上午 9 点、上午 10 点等)。每个时间段都有不同的得分结果。有些效率很高,有些则无法预订,具体取决于驾驶时间增加的时间/情况。
为了性能,我不想按顺序尝试每个小时的时间,因为它太慢了。
如何在所有时间段内同时尝试客户的交付?在添加客户的潜在交付窗口之前先运行求解器,然后与独立求解的所有不同添加的交付时间段共享已解决的原始状态是有意义的。
有没有直观的方法来做到这一点?例如:
- 重用一些原始求解计算(添加新交付之前的状态)。也许这甚至可以提前缓存?
- 也许在不同的服务器(或至少多个线程)上运行所有时隙求解实例。
这样的推荐设置是什么?在一秒钟内返回 HTTP 响应会很棒。这适用于大约 100-200 次交付和 10-20 辆卡车。
谢谢!
【问题讨论】:
-
关于 pdptw:出租车问题(= 非混合接送)在 OptaPlanner 中很简单。叫车问题(= 混合接送)很困难(需要自定义动作)。
标签: parallel-processing optaplanner vehicle-routing