【问题标题】:Algorithm for dividing student into N groups将学生分成 N 组的算法
【发布时间】:2017-09-08 06:11:06
【问题描述】:

我想把 M 个学生分成 N 个小组。这并不难,但有一些限制。

1.constraint: (A,B) 一对学生必须在一个小组中。这意味着学生A希望与学生B在同一个组中。

2.constraints:(A,B)一对学生(学生A和学生B)不能在一个组中。

我有 M 个学生,想通过这个约束创建 N 个组。如果无法划分它们,请找到违反约束最少的最佳解决方案。

知道如何通过算法解决吗?

【问题讨论】:

  • 这是你的家庭作业,不是我们的。

标签: algorithm graph grouping


【解决方案1】:

您可能会发现将其视为graph colouring problem 很有用。该链接包含各种建议的算法。

顶点代表学生,颜色代表不同的群体。

顶点之间的边表示这些学生希望分在不同的组中。如果学生想在同一组中,只需合并顶点即可。

不幸的是,即使将学生分成 3 组,这也证明了您的问题是 NP 难的(因为您可以使用它来为图形找到 3 色 - 这个问题是 NP-complete

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    相关资源
    最近更新 更多