在会议安排示例中,我试图应用过度约束的计划。我检查了文档并在 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 并且每个人都可以分配,则不会发生这种情况。也这六人不打破硬约束。您对过度约束规划解决方案问题有什么想法吗?
慕莱坞森
相关分类