我们的规则文件中有以下规则,我试图理解规则的 LHS 部分,有两行 RoomAssignment 和 Schedule。有人可以解释它是如何评估的吗? RoomAssignment 和 Schedule 之间使用 AND 或 OR 运算符?
Rule "Test"
when
RoomAssignment(schedule.isFixed == true, startingTimeGrain != null, room != null, manager != null, $startingTimeGrainIndex : startingTimeGrainIndex, $room: room, $manager: manager, $schedule: schedule)
Schedule(id == $schedule.id, fixedDateTime == true, startTimeGrainIndex != $startingTimeGrainIndex)
then
scoreHolder.addHardConstraintMatch(kcontext, -100000);
end
最佳答案
逻辑and
在模式之间是隐含的。工作内存必须包含(至少)一个 RoomAssignment 和(至少)一个具有合适字段值的 Schedule 对象。对于事实对象的每个匹配组合,规则都会触发一次。
关于java - OptaPlanner 了解规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47297514/