optaplanner - OptaPlanner:时间链模式中的差距
问题描述
我最近才开始学习使用 OptaPlanner。如果下面有任何技术上不准确的描述,请原谅我。
基本上,我在一堆机器上分配几个任务时遇到问题。任务有一些优先级限制,例如某些任务不能在另一个任务结束之前启动。此外,每个任务只能在某些机器上运行。目标是最小化所有这些任务的制造时间。
我用Chained Through Time Pattern 对这个问题进行了建模,其中每台机器都是锚点。但问题是由于优先级限制,某些机器上的任务可能不会按顺序执行。例如,任务 B 只能在任务 A 完成后启动,而任务 A 和 B 分别在机器 I 和 II 上执行。这意味着在机器 I 上执行任务 A 期间,如果机器 II 上没有其他任务可以运行,则机器 II 只能保持空闲状态,直到任务 A 完成,此时可以在其上启动任务 B。这种差距不是确定性的,因为它取决于任务 A 相对于这个例子的持续时间。根据 OptaPlanner 的教程,似乎应该针对此类问题引入额外的规划变量间隙。但是我现在很难对这个差距变量进行建模。一般来说,如何使用时间链模式整合模型中的间隙变量?一些详细的解释甚至是一个简单的例子将不胜感激。
此外,我实际上不确定时间链模式是否适合对这种任务分配问题进行建模,或者我只是使用了一种完全不合适的方法。有人可以对此有所了解吗?提前致谢。
解决方案
我正在使用链接时间模式来解决与您相同的问题。并且要解决优先级限制,您可以编写流口水规则。
推荐阅读
- twitter-bootstrap - 在引导程序中创建新断点
- java - Ejb Websphere 登录返回空主题
- python - Python tkinter 时钟的日间主题和夜间主题
- ios - 线程 1:致命错误:单击 collectionview 项目时索引超出范围
- sql - 建议提高查询性能 (Oracle)
- jq - 如何使用 jq 查找多个输出对象之一的计数
- android - 由于 firebase-auth 依赖,Gradle 构建失败
- ssas - DAX Studio 中的 YTD Measure 未显示多个日期的任何值
- networking - 是否可以通过 OpenvSwitch 识别通过蓝牙连接的设备
- telegram - 如何在电报中获取自定义更新