【问题标题】:Minimum Distance最小距离
【发布时间】:2012-12-07 01:45:41
【问题描述】:

有一组 9 名学生和 3 所学校每所学校最多可以分配 3 名学生。每个学校和学生都有自己的坐标。现在我们必须以这样的方式分配学生,即与所有学生的距离总和到学校应该是最少的。

我在一次采访中被问到这个问题。有人可以为此建议一个算法吗?

最初我尝试了贪婪的方法,但不起作用。然后我尝试应用动态规划方法,但无法提出最佳的子结构。

【问题讨论】:

标签: algorithm


【解决方案1】:

每所学校有 3 个名额,所有 3 所学校都有 9 个名额。你应该找到 9 个地方和 9 个学生之间的最佳匹配。

这个分配问题可以用Hungarian algorithm解决。

【讨论】:

    【解决方案2】:

    由于问题规模足够小,如何进行穷举搜索?

    • 第一所学校从 9 名学生中选择 3 名开始。
    • 第二所学校从剩下的 6 名学生中选择了 3 名。
    • 最后一所学校被剩下的 3 名学生困住了。

    所以(9 choose 3) * (6 choose 3) = 1680

    【讨论】:

    • 我正在寻找一个有效的解决方案。