在课堂上分配学生 - 网络流动?

时间:2018-04-30 12:31:57

标签: algorithm network-flow

我有一个房间,一周几天开放,每天不同时间开放(7:00-14:42,......)

我有多个学生,每个人都可以在不同的日子里,在不同的时间访问房间(学生可能有时间在多天内访问房间)

我需要按照以下规则将所有(或尽我所能)学生分配到会议室:

  • 每个学生必须在一周内访问一次房间,持续50分钟
  • 在(仅)第二名学生在房间后,房间将无法跟随20分钟

第二条规则的例子:

+---------------+-----------------+
|     TIME      |     INFO        |
+---------------+-----------------+
|  7:00 - 7:50  |  Student 1      |
|  7:50 - 8:40  |  Student 2      |
|  8:40 - 9:00  | Mandatory break | // No student may be here
|  9:00 - 9:50  |  Student 3      |
|  9:50 - 10:40 |  Student 4      |
| 10:40 - 11:30 |  Student 5      |
|     . . .     |     . . .       |
+---------------+-----------------+

我该如何解决这个问题?我曾想过在网络中使用流量,但我遇到了一个问题。

我们说我有这个流程。当Student连接到Time时,流应该通过所有组,其中包含Time。如果这些组中的任何一个被占用,那么流量就不能到达那里。因此,当学生与时间连接时,可能与学生的时间重叠的所有时间都被禁用。但是我不知道如何构建算法,这样就可以了。

Flow in network

你能告诉我如何制作算法来使这项工作吗?我不知道该怎么做。谢谢!

0 个答案:

没有答案