【发布时间】:2020-05-28 10:12:20
【问题描述】:
我正在使用 Optaplanner 7.37 计划一个时间表,并且正在实施一个积极的软约束,以便首先安排更高优先级的任务。我想做增量分数计算,根据优先级值奖励。
我尝试了以下方法,但正如您所见,它只会为每个计划的任务添加一个软评分单元(因此它不会根据任务的优先级而变化。
private Constraint scheduleHighPriorityTasks(ConstraintFactory factory) {
return factory.from(ShiftAssignment.class)
.reward('High priority work done', HardSoftScore.ONE_SOFT);
}
我想要大致类似于这个虚构代码的东西:
private Constraint scheduleHighPriorityTasks(ConstraintFactory factory) {
return factory.from(ShiftAssignment.class)
.multiply(ShiftAssignment::getTaskPriority)
.reward('High priority work done', HardSoftScore.ONE_SOFT);
}
这样,如果 getTaskPriority 返回优先级 3,则软分数将获得 3 倍配置权重的奖励。
我认为我的要求没有那么复杂,所以我认为可能有办法做到这一点。
有什么想法吗?
【问题讨论】: