具有中间节点的最大流量二分

时间:2013-04-10 23:48:12

标签: algorithm networking graph flow

我正在解决一个问题,即通过创建流网络,根据某些限制创建考试时间表。

  • 一系列课程C
  • 设定天数D
  • 一定数量的房间R
  • 学生S与课程的映射

如果学生正在修读c1和c2课程,那么这两门考试不能同时举行。

我无法根据这些限制创建流网络。 这是我到目前为止尝试制作的网络之一。 Flow Network

黑色节点是源和接收器。 红色是学生。 绿色是课程。 橙色是天。 蓝色是房间。

数字代表流量。

创建合适的流程图后,我知道我会使用Ford-Fulkerson算法来查找最大流量。

1 个答案:

答案 0 :(得分:3)

这不是流动问题。它实际上是NP完全的;你可以按如下方式减少图形着色问题:

在图形着色实例中将图形的顶点集作为一组课程。对于该图表中的每个边缘,例如在uv之间,创建一个只接受课程uv的学生。拥有与可用颜色一样多的时隙。

然后一个可行的时间表(没有学生同时进行两项考试)将成为你的图表的颜色。

您可能会更好地构建问题的整数编程模型。