跨多个唯一代理的有序任务的离线调度

Offline scheduling of ordered tasks across multiple unique agents

我正在尝试寻找任何易于实现的并行作业离线调度算法,这些并行作业包括工人之间的有序任务,以在工人在 what[= 中独一无二的特殊情况下最小化完工时间22=] 他们可以做(而不是工人可以完成任何任务但可能需要不同时间的典型情况)受限于工人必须完成一项任务才能转移到另一项任务。

与计算复杂性相比,我更关心实施的难易程度,因为每个工作的工人、工作和任务的数量都非常小(订单:分别为 ~10、<10 和 10-30)。

代理的具体 属性 在 他们可以做什么 而不是 他们需要多长时间 来执行一个任务让我很难找到一个算法(或接近的算法让我开始)。在搜索 algorithm 时,我曾尝试将其重铸为平铺问题(因为它类似于将甘特图堆叠在一起),并研究了如何将其转换为图形问题,但无济于事。

到目前为止我发现的最接近的是 dos Santos 2019, Spegal 2019, Schulz & Skutella 2002,但这些要求我将问题归结为一些机器为不匹配的操作花费无限的时间并考虑其他不适用于此的调度属性问题——我对这些算法的了解还不够,不知道将它们设置为旁路值是否会破坏它们。

我认为您所描述的是(不灵活的)作业车间调度问题(具有优先顺序和非抢占式调度)。如果您正在寻找实现的低门槛,我会推荐一个现有的模块,如 ortools。它甚至以类似于您提供的示例的方式定义。