繁体   English   中英

如何更好地在 OptaPlanner 中应用过度约束的规划?

[英]How to apply overconstrained planning in OptaPlanner in a better way?

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

谢谢!

最后我找到了解决方案。 我只有硬和中等约束panalties。 除了“将每个人分配到房间”规则外,我已将所有 mediumConstraint 惩罚更改为 softConstraint。 现在我可以分配每个人。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM