Class布尔可满足性的调度[多项式时间缩减]最终部分

Class Scheduling to Boolean satisfiability [Polynomial-time reduction] Final Part

几周以来我一直在从事一个非常有趣但不幸的是背景非常复杂的项目。

我已经问了 3 个问题:

在他们两个中,我得到了答案(再次感谢@Amit)但现在到了最后一部分,谁将使这个项目可用:)

我现在可以管理:

我的约束如下:

所以这是暂时的,我的结果:

但这是我要添加的最后一部分:我想管理一组学生,具有以下限制:

再次,我成功隔离了约束,但我不知道如何将此约束转换为 "time-intervals should not overlap" 约束。

提前致谢, 最好的问候,

由于学生一次只能在一个地方:

属于同一学生组的课程的授课时间不应重叠。

编辑:

不应该限制不同学生群体重叠。如果你有这样的限制,你应该删除它!

限制在课程上。如果您为课程 A 安排了一个讲座,那么它可能不会与参加课程 A 的学生组的任何其他课程的讲座重叠。它也可能不会与同一位老师开设的任何其他课程重叠。

因此,学生和课程之间存在多对多关系,教师和课程之间存在多对多关系。

您希望为每门课程安排多个讲座,但没有老师和学生有重叠的讲座。

关于

2+ groups can be in the same room in the same time only for specific courses (like Magistral course for example)

如果小组不能混在一起,那么这不是同一门课程(即使主题可能相同)。因此,如果 Java 的两个学生组不能混合,那么您需要将其建模为两个单独的课程,Java group1Java group2