我最近才刚刚开始学习使用OptaPlanner。如果下面的技术描述不正确,请原谅我。
基本上,我在分配一堆机器上的多个任务时遇到问题。任务具有某些优先级限制,因此某些任务无法在另一任务结束之前启动。此外,每个任务只能在某些计算机上运行。目标是最大程度地减少所有这些任务的完成时间。
我用“时间链式”(Chained Through Time Pattern)对此问题建模,其中每台机器都是锚点。但是问题在于,由于优先级限制,某些计算机上的任务可能无法按顺序执行。例如,仅当任务A和B分别在计算机I和II上执行时,任务B才能完成任务A。这意味着在计算机I上执行任务A的过程中,如果没有可以在计算机II上运行的其他任务,则计算机II只能保持空闲状态,直到任务A完成,此时可以在其上启动任务B。这种差距是不确定的,因为它取决于此示例中任务A的持续时间。根据OptaPlanner的教程,似乎应该为此类问题引入其他计划变量差距。但是我现在很难为这个差距变量建模。通常,如何使用Chained Through Time Pattern将差距变量整合到模型中?一些详细的解释甚至是一个简单的示例将不胜感激。
此外,我实际上不确定通过时间模式链接是否适合于对这种任务分配问题进行建模,或者我只是使用了一种完全不合适的方法。有人可以说明一下吗?预先感谢。
答案 0 :(得分:0)
我正在使用链接时间模式来解决与您相同的问题。要解决优先级限制,您可以编写流口水规则。