【发布时间】:2013-10-17 11:31:05
【问题描述】:
我正在使用 OptaPlanner 计算一组需要在一天内处理的任务的班次(即开始时间、结束时间和必要的资格)。
我使用 drools score director 并设置了一些规则来将任务分配给轮班,同时保持以下约束:
- 切勿将重叠的任务分配给同一个班次
- 永远不要将两个任务分配给同一个班次,否则会导致违反最大班次长度
- 当没有可能的资格集与两项任务的必要资格相匹配时,绝不会在同一班次上同时执行两项任务 等
到目前为止,我得到了相当不错的结果。 但是,还剩下一项优化。应该可以有不同长度的轮班(例如 8 小时、6 小时和 4 小时轮班),并且有一个阈值可以认为一个班次是富有成效的(例如,如果 60% 的时间被任务覆盖)。因此,与长期无效率的轮班相比,进行更多、更短但富有成效的轮班会更好。
我很难将类似的东西定义为规则。在我看来,问题在于这是一种转变的属性。然而,这种转变是我的计划事实,因此在计算过程中不能改变它的状态。
你知道我该如何解决这个问题吗?
提前致谢, 问候, 亨德里克
【问题讨论】:
标签: optaplanner