Jboss Optaplanner:如果计划变量打破了硬约束,如何将其保留为空

Jboss Optaplanner:如果计划变量打破了硬约束,如何将其保留为空,jboss,optaplanner,drools-planner,Jboss,Optaplanner,Drools Planner,我在结果中看到的行为是,两个课程只能在一个时间段内(如周一上午9点)都在同一时间段内设置,尽管有严格的限制。我希望将其中一个设置为null,以便稍后检索它们并通知用户 是否有此配置?如果没有,我应该如何处理这样的案件?我希望在我的应用程序中打破硬约束,但对我来说重要的是我可以通知用户哪些课程不能安排,这样他就可以自己安排(通过UI) 以下是相关的硬约束规则: rule "roomOccupancy" when Lecture(period != null, $leftP

我在结果中看到的行为是,两个课程只能在一个时间段内(如周一上午9点)都在同一时间段内设置,尽管有严格的限制。我希望将其中一个设置为null,以便稍后检索它们并通知用户

是否有此配置?如果没有,我应该如何处理这样的案件?我希望在我的应用程序中打破硬约束,但对我来说重要的是我可以通知用户哪些课程不能安排,这样他就可以自己安排(通过UI)

以下是相关的硬约束规则:

rule "roomOccupancy"
    when 
        Lecture(period != null, $leftPeriod:period, room != null, $leftRoom: room)
        Lecture(eval($leftPeriod.overlaps(period) == true), $leftRoom == room)
    then
        scoreHolder.addHardConstraintMatch(kcontext, -1);
end

如果我理解正确的话,如果某个约束条件被打破,您希望其中一门课程在计划中未分配。默认情况下,将对每个规划实体进行规划。得分最高的解决方案仍然是一个解决方案

我建议您看看:在不打破硬约束的情况下分配尽可能多的实体。使用过约束规划,可以不指定实体