The teacher_room_stability method in the School Timetabling example uses a Joiner to compare Lessons of different ids, but teacher_time_efficiency and student_group_subject_variety do not. I believe this is an error and will introduce a comparison between two copies of the same Lesson. Since all these constrains compare unique instances of Lessons, it might make sense to change all the for_each calls to for_each_unique_pair.
The
teacher_room_stabilitymethod in the School Timetabling example uses a Joiner to compare Lessons of different ids, butteacher_time_efficiencyandstudent_group_subject_varietydo not. I believe this is an error and will introduce a comparison between two copies of the same Lesson. Since all these constrains compare unique instances of Lessons, it might make sense to change all thefor_eachcalls tofor_each_unique_pair.