我对 Java Streams 不太了解,我现在正在学习它,但如果有人有建议,我正在尝试解决这个问题:
假设我正在做作业调度,每个作业都有一个宽度X。当我们做一个不同宽度的新作业时,机器必须重新配置,所以我们更喜欢连续做所有宽度X的作业。如果队列中的下一个作业具有不同的宽度,我正在尝试设置软分数惩罚。
private Constraint customConstraint(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(Job.class)
//filter down to jobs whose next job has a different width
.penalize(HardSoftScore.ONE_SOFT)
.asConstraint("Width change");
}
或者,如果我们以 hello world 快速入门为例,当老师必须换房间时的惩罚。有人有建议吗?谢谢你。
我想说你应该调整你的域模型以使用 PlanningListVariable 将作业分配给机器。这将为您提供上一个/下一个元素参考,并允许在比较作业宽度的约束中编写过滤器。