影响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

你能帮我辨别一下我的情况下的图表吗?我猜节点是组和项目,而边缘的成本取决于组与项目的方式。但是 容量 属性 是多少?还有如何尊重我原来的约束?

图表应该是这样的:

  1. 源节点。

  2. 汇聚节点

  3. 第一组节点。这些节点对应于学生组(每组一个节点)。从源节点到此集合中的每个节点应该有一条边 capacity = 1(我假设每个组只能做项目)和 cost = 0.

  4. 第二组节点。这些节点对应于项目。从该组的每个节点到具有 cost = 0capacity = the maximum number of groups that are allowed to do this project 的汇节点应该有一条边。

  5. 从第一组的每个节点到第二组的每个节点应该有一条边 capacity = 1cost = -how much this group likes this project(如果需要 -只有这个数字越大,这个群体就越喜欢这个项目)。

  6. 现在我们必须找到从源节点到汇节点的最小成本最大流量。