【问题标题】:OptaPlanner: Gaps in Chained Through Time PatternOptaPlanner:时间链模式中的差距
【发布时间】:2018-11-16 01:20:05
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我认为时间段模式会更合适,因为您可以编写规则来强制某些任务不能在同一个时间段中。但是你的任务必须有相同的长度(我猜他们没有)。或者甚至更好,使用具有精细时间粒度的时间粒度模式(尽管这可能会更慢,如文档中所述)。我认为,通过时间锁链将非常困难。

标签: optaplanner


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2021-04-25
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多