Поведение, которое я вижу в результатах, заключается в том, что два курса, которые могут быть только в один период времени (например, в понедельник, 9 утра), в любом случае устанавливаются в один и тот же период, несмотря на жесткое ограничение. Я хотел бы, чтобы для одного из них было установлено значение null, чтобы я мог получить их позже и сообщить пользователю.
Есть ли конфигурация для этого? Если нет, то как мне обращаться с такими случаями? Я ожидаю, что в моих приложениях будут нарушены жесткие ограничения, но для меня важно то, что я могу уведомить пользователя, какие курсы нельзя запланировать, чтобы он мог запланировать их сам (через пользовательский интерфейс).
Вот соответствующее правило жесткого ограничения:
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