我正在解决一个问题,即通过创建流网络,根据某些限制创建考试时间表。
如果学生正在修读c1和c2课程,那么这两门考试不能同时举行。
我无法根据这些限制创建流网络。 这是我到目前为止尝试制作的网络之一。
黑色节点是源和接收器。 红色是学生。 绿色是课程。 橙色是天。 蓝色是房间。
数字代表流量。
创建合适的流程图后,我知道我会使用Ford-Fulkerson算法来查找最大流量。
答案 0 :(得分:3)
这不是流动问题。它实际上是NP完全的;你可以按如下方式减少图形着色问题:
在图形着色实例中将图形的顶点集作为一组课程。对于该图表中的每个边缘,例如在u
和v
之间,创建一个只接受课程u
和v
的学生。拥有与可用颜色一样多的时隙。
然后一个可行的时间表(没有学生同时进行两项考试)将成为你的图表的颜色。
您可能会更好地构建问题的整数编程模型。