In the {\sc Course Allocation} problem, there are a set of students and a set of courses at a given university. University courses may have different numbers of credits, typically related to different numbers of learning hours, and there may be other constraints such as courses running concurrently. Our goal is to allocate the students to the courses such that the resulting matching is stable, which means that no student and course(s) have an incentive to break away from the matching and become assigned to one another. We study several definitions of stability and for each we give a mixture of polynomial-time algorithms and hardness results for problems involving verifying the stability of a matching, finding a stable matching or determining that none exists, and finding a maximum size stable matching. We also study variants of the problem with master lists of students, and lower quotas on the number of students allocated to a course, establishing additional complexity results in these settings.
翻译:在课程分配问题中,给定大学存在一组学生和一组课程。大学课程可能具有不同的学分,通常与不同的学习时数相关,并且可能存在其他约束条件,例如课程同时开设。我们的目标是将学生分配到课程中,使得最终形成的匹配是稳定的,这意味着不存在学生和课程有动机脱离当前匹配而相互重新匹配的情况。我们研究了稳定性的多种定义,并针对每种定义,对涉及验证匹配稳定性、寻找稳定匹配或判定其不存在性、以及寻找最大规模稳定匹配等问题,给出了多项式时间算法与计算复杂性结果的混合分析。我们还研究了包含学生主列表以及课程最低分配人数限制的变体问题,在这些设定中建立了额外的计算复杂性结果。