首页 > 解决方案 > 使用 OR-Tools 的作业车间问题的平均等待时间目标

问题描述

我使用 Google OR-Tools 实现了一个灵活的作业车间问题(遵循此示例),其中作业随着时间的推移提交,目标是最小化作业的平均等待时间(或等效地,等待时间的总和),而不是的制造跨度。按照示例的代码,我将我的定义为:

model.Minimize(sum(job_starts))

其中job_starts(与示例中的定义类似job_ends)包含与作业开始时间相对应的变量列表。请注意,从技术上讲,我正在最小化开始时间的总和,但由于到达时间的总和是恒定的,它应该相当于最小化等待时间的总和。我还为每个“开始”变量添加了一个约束,以确保它大于相应的到达时间。虽然上述方法有效(它产生了预期的结果),但它似乎比 makepan 目标的相应问题慢得多(3 个数量级)。这是正常的(平均等待时间目标本质上是“更难”)还是我以次优方式定义它(可能是sum由于没有addSumEqualityOR-Tools 中的方法?

标签: pythonor-tools

解决方案


推荐阅读