为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

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



查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信