需要一个以下分布的算法

时间:2013-11-07 10:48:12

标签: algorithm math data-structures

我需要一个针对以下问题的算法。

我有老师,每位老师都有他们喜欢的科目。例如,

教师1可能更喜欢science, maths and computers
教师2可能更喜欢english and maths
教师3可能更喜欢science, english and maths
像这样......

我有N个答题纸。每个都属于任何一个主题(english, science, maths and computers)。我需要根据他们的偏好为每位老师分配这些答题纸。但最多我们可以为教师分配50篇论文。如果我们有1000张答题纸,我们将拥有最少20名教师(1000/50)

如果我们在maths中有112个答题纸,并且如果我们有两个具有maths偏好的教师,我们可以为他们分配100个,其余12个我们可以分配给任何教师(来自非首选类别)。

该算法的成功将取决于根据学生的偏好为教师分配答题纸的效率,以及他们拥有非偏好答题纸的程度。

谁能告诉我哪种算法适合它?

1 个答案:

答案 0 :(得分:3)

此问题可以表述为简单的assignment problem(为n工作人员分配n个职位:

每位教师作为工人出现50次,每张作为工作出现一次。

如果教师是他喜欢的科目之一,则教师会连接到重量为0的工作表,如果不是,则为1。如果工作人员(50 * number of teachers)多于工作,则添加虚拟工作(直到工人数量等于工作数量)与所有工作重量为0的工人相关联,这些工作可以忽略在解决方案中。

从这一点开始,请参考解决分配问题的任何算法(请参阅wiki链接)。你想找到最小重量的作业。