首页 > 解决方案 > OptaPlanner:时间链模式中的差距

问题描述

我最近才开始学习使用 OptaPlanner。如果下面有任何技术上不准确的描述,请原谅我。

基本上,我在一堆机器上分配几个任务时遇到问题。任务有一些优先级限制,例如某些任务不能在另一个任务结束之前启动。此外,每个任务只能在某些机器上运行。目标是最小化所有这些任务的制造时间。

我用Chained Through Time Pattern 对这个问题进行了建模,其中每台机器都是锚点。但问题是由于优先级限制,某些机器上的任务可能不会按顺序执行。例如,任务 B 只能在任务 A 完成后启动,而任务 A 和 B 分别在机器 I 和 II 上执行。这意味着在机器 I 上执行任务 A 期间,如果机器 II 上没有其他任务可以运行,则机器 II 只能保持空闲状态,直到任务 A 完成,此时可以在其上启动任务 B。这种差距不是确定性的,因为它取决于任务 A 相对于这个例子的持续时间。根据 OptaPlanner 的教程,似乎应该针对此类问题引入额外的规划变量间隙。但是我现在很难对这个差距变量进行建模。一般来说,如何使用时间链模式整合模型中的间隙变量?一些详细的解释甚至是一个简单的例子将不胜感激。

此外,我实际上不确定时间链模式是否适合对这种任务分配问题进行建模,或者我只是使用了一种完全不合适的方法。有人可以对此有所了解吗?提前致谢。

标签: optaplanner

解决方案


我正在使用链接时间模式来解决与您相同的问题。并且要解决优先级限制,您可以编写流口水规则。


推荐阅读