【发布时间】:2011-11-13 14:45:51
【问题描述】:
您好,我正在制定一个计划,让学生报名参加在全国多个城市举办的考试。在报名时,学生会按照自己的喜好提供他们想参加考试的三个城市的列表。因此,学生可能会说他最喜欢的考试中心是纽约,其次是芝加哥,然后是波士顿。
现在请记住,由于考试中心的容量有限,它们无法容纳每个学生的首选。但是,我们会尝试为尽可能多的学生提供他们的首选或第二选择中心,并尽可能避免学生不得不放弃学生的第三选择中心
现在任何可以使这个过程更有效的排序算法的想法。简单的方法是首先通过学生分配尽可能多的第一选择列表,然后通过第二选择列表并分配。然而,这可能会导致列表中的第一个学生获得他们的第一个中心,而最后一个学生获得他们的第三个选择,或者更糟糕的是没有他们的选择。任何可以提高效率的方法
【问题讨论】:
-
我的直觉是,一个“完美”的算法将是 NP 完全的,你必须接受一个近似值。
-
为什么不让第一批报名的学生优先呢?无论如何,你必须区分它们。
-
问题是客户明确告诉我们不要采用先到先得的方式。原因是不同地方的学生填写考试表格的日期不同,所以他们填写的时间比其他人晚也不是他们的错。
-
为什么不随机挑选学生呢?这种方式没有歧视;)
-
分配资源的过程不叫排序。我更改了标题以更贴近您的问题。
标签: algorithm