一尘不染

布尔可满足性的类计划[多项式时间减少]最后一部分

algorithm

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

在他们两个人中,我都得到了我的答案(再次感谢@Amit),但是现在到达了最后一部分,它将使该项目可用:)

我现在可以管理:

  • N个时间间隔。
  • C课程。
  • T老师。
  • S房间。

我的约束如下:

  • 2个老师不能同时在同一房间。
  • 2门课程不能同时在同一房间。
  • 教师只能教授特定的课程。
  • 有些课程只能在特定的时间间隔上进行。

所以这是现在,我的结果是:

目前我最终输出的图示

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

  • 一个小组只有一些课程要做。
  • 2个以上的小组只能在同一时间同时在同一房间参加特定课程(例如,裁判官课程)

同样,我成功地隔离了约束,但是我不知道如何将该约束转换为“时间间隔不应重叠”约束。

在此先感谢您,最好的问候,


阅读 228

收藏
2020-07-28

共1个答案

一尘不染

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

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

编辑:

不同的学生群体重叠不应受到任何限制。如果您有这样的限制,则应将其删除!

约束条件是课程。如果安排课程A的讲义,则该课程可能不会与参加课程A的学生团体的任何其他课程的讲义重叠。也可能不会与同一位老师主持的任何其他课程重叠。

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

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

关于

2个以上的小组只能在同一时间同时在同一房间参加特定课程(例如,裁判官课程)

如果各组可能不会混合使用,那么课程就不会相同(即使主题可能相同)。因此,如果两个学生组不能混合使用Java,则需要将其建模为两个单独的课程,Javagroup1并且Java group2

2020-07-28