Drools optaplanner中的奖励而不是惩罚

Drools optaplanner中的奖励而不是惩罚,drools,optaplanner,Drools,Optaplanner,所以我有讲座和时间段,有些讲座需要在特定的时间段教授。我该怎么做 做scoreHolder.addHardConstraintMatch(kcontext,10)作为硬约束解决此问题?正值10是否确保课程在特定时间段内受到限制 我知道惩罚模式,但我不想让CoursePeriodPenalty对象太多。理想的,我只想有一个CoursePeriod对象来说明CS101应该在时间段9:00-10:00将它们锁定在不可移动的规划实体上,因为我怀疑你仍然希望OptaPlanner为你决定房间,而目前Opt

所以我有讲座和时间段,有些讲座需要在特定的时间段教授。我该怎么做

scoreHolder.addHardConstraintMatch(kcontext,10)作为硬约束解决此问题?正值10是否确保课程在特定时间段内受到限制


我知道惩罚模式,但我不想让
CoursePeriodPenalty
对象太多。理想的,我只想有一个
CoursePeriod
对象来说明
CS101
应该在时间段
9:00-10:00
将它们锁定在不可移动的规划实体上,因为我怀疑你仍然希望OptaPlanner为你决定房间,而目前OptaPlanner只支持MovableSelectionFilter每个实体,而不是每个变量(投票支持开放的jira)

一个积极的硬约束肯定会奏效。您的分数将更难为您的用户解释,例如,硬分数为0的解决方案将不可行(要么它没有获得+10硬分数,要么它在其他地方失去了10硬分数)


或者,您可以添加一个新的负硬约束类型,该类型表示if
!=desiredTimeslot
然后扣10分。

一些描述所需任务的事实,并以Optaplanner生成解决方案事实的方式插入到WM中,难道不会解决这个问题吗?