影响n组的m个学生?
Affect m students to n groups?
我想影响 m 组 (m ~ 20) 的学生到 n 个项目 (n ~ 6)。还有一个额外的限制:我只能影响每个项目的 p (p ~ 4) 到 q (q ~ 6) 组之间。
每个小组必须将项目从最喜欢的到最差的排序。
我读过我可以在一般情况下使用 Hungarian algorithm if m = n and I should use the Ford-Fulkerson algorithm or the Edmonds–Karp algorithm。
你能帮我辨别一下我的情况下的图表吗?我猜节点是组和项目,而边缘的成本取决于组与项目的方式。但是 容量 属性 是多少?还有如何尊重我原来的约束?
图表应该是这样的:
源节点。
汇聚节点
第一组节点。这些节点对应于学生组(每组一个节点)。从源节点到此集合中的每个节点应该有一条边 capacity = 1
(我假设每个组只能做项目)和 cost = 0
.
第二组节点。这些节点对应于项目。从该组的每个节点到具有 cost = 0
和 capacity = the maximum number of groups that are allowed to do this project
的汇节点应该有一条边。
从第一组的每个节点到第二组的每个节点应该有一条边 capacity = 1
和 cost = -how much this group likes this project
(如果需要 -
只有这个数字越大,这个群体就越喜欢这个项目)。
现在我们必须找到从源节点到汇节点的最小成本最大流量。
我想影响 m 组 (m ~ 20) 的学生到 n 个项目 (n ~ 6)。还有一个额外的限制:我只能影响每个项目的 p (p ~ 4) 到 q (q ~ 6) 组之间。
每个小组必须将项目从最喜欢的到最差的排序。
我读过我可以在一般情况下使用 Hungarian algorithm if m = n and I should use the Ford-Fulkerson algorithm or the Edmonds–Karp algorithm。
你能帮我辨别一下我的情况下的图表吗?我猜节点是组和项目,而边缘的成本取决于组与项目的方式。但是 容量 属性 是多少?还有如何尊重我原来的约束?
图表应该是这样的:
源节点。
汇聚节点
第一组节点。这些节点对应于学生组(每组一个节点)。从源节点到此集合中的每个节点应该有一条边
capacity = 1
(我假设每个组只能做项目)和cost = 0
.第二组节点。这些节点对应于项目。从该组的每个节点到具有
cost = 0
和capacity = the maximum number of groups that are allowed to do this project
的汇节点应该有一条边。从第一组的每个节点到第二组的每个节点应该有一条边
capacity = 1
和cost = -how much this group likes this project
(如果需要-
只有这个数字越大,这个群体就越喜欢这个项目)。现在我们必须找到从源节点到汇节点的最小成本最大流量。