在会议安排示例中,我试图应用过度约束的计划。我检查了文档,并在stackoverflow中进行了回答,然后将 nullable = true 应用于MeetingAssignment中的@PlanningVariable:
@PlanningVariable(valueRangeProviderRefs = { "roomRange" }, nullable = true)
public Room getRoom() {
return room;
}
我还为流口水添加了一条规则:
rule "Assign Every Person To A Room"
when
$meetingAssignment : MeetingAssignment(room == null)
then
scoreHolder.addMediumConstraintMatch(kcontext, -100);
end
我的得分持有者是: HardMediumSoftScoreHolder
但是,当我运行该应用程序时,只能分配六个不同的人中的一个。如果nullable为false并且可以分配每个人,则不会发生这种情况。这六个人也没有打破硬约束。 您对过度约束规划解决方案问题有任何想法吗?
谢谢!
答案 0 :(得分:1)
最后我找到了解决方案。我只有硬限制和中等限制的内裤。除了“将每个人分配到一个房间”规则外,我已将所有中型约束的惩罚更改为softConstraint。现在我可以分配每个人了。
谢谢