将课程分组的可能性有多个标准

时间:2017-08-16 09:09:43

标签: math combinations np

我必须划分一个由50名学生组成的班级,他们分别在10个不同的讨论小组中,每个小组由5名成员组成。理论上,有1.35363x10 ^ 37种可能的方法,这只是{50!} / {(5!^ 10)* 10!)}的结果,如果已经确定这些组将包括5.

但是,每个小组都由一名协调人领导。这大大减少了可能组合的数量,因为每个辅助设备在5个可能的组合中具有一个专业领域,应该尽可能地与学生正在撰写的主题相匹配。如果有三个具有能力A的辅导员,三个具有能力B,两个具有能力C,一个具有能力D,一个具有能力E,并且15个学生被分配到A,15到B,10到C,5到D和5到E,可能的组合数量降至252 505。

但是学生和辅导员都在不断倡导使用更多标准,而不是仅仅专注于专业领域。例如,想要成为一群相互认识的学生,或者与具有特定研究方法特定知识的辅导员在一个小组中。

我试图说明我的直觉推理,它告诉我,如果目标是一个完全有效的解决方案,每个新标准都会增加任务的复杂性/不可能性。但是,我无法以令人满意的方式分析表达这一点。

我的推理是否正确,添加标准会减少包含 - 排除原则后可以丢弃的可能性,从而使任务更复杂,增加可能的组合?我还认为,如果标准不相容(例如,如果相互了解的学生正在撰写不同的主题,而且没有足够的主管推动者),那么某些约束就变得不可行了。

1 个答案:

答案 0 :(得分:0)

您需要区分计算复杂性和人类复杂性。添加约束几乎会自动增加问题的人为复杂性,因为它意味着有更多的东西可以包裹你的思想。但是 - 计算复杂性增加并不是真的。至少有时会减少。

例如,假设您有一组200个项目,并且您想要确定是否存在满足某些约束的子集。根据约束,可能没有可行的方法。毕竟,2 ^ 200 很多太大而无法暴力。现在添加子集需要具有正好3个元素的约束。现在突然间 可能是暴力(只需要遍历所有1,313,400个3元素子集,直到找到解决方案或确定不存在)。这足以表明添加约束总是使问题本质上更加困难。在离散情况下,新约束可以以可被利用的方式减少搜索空间的大小。在连续的情况下,它可以降低自由度,从而降低问题的维度。这并不是说它总是让它变得更容易。可能作为经验法则,额外的约束倾向于使问题更加困难。

您的实际问题并不足以提供具体建议。一种可能性(以及处理有些无关限制的扩散的一种方式)是将约束分成需要满足的硬约束和仅仅需要但不是严格需要的软约束。将其转化为优化问题:找到最大化满足的软约束数量的解决方案,条件是它满足硬约束条件。也许您可以将其表述为integer programming问题,并希望找到一个确切的解决方案。或者,如果很容易生成满足硬约束的解决方案,并且很容易改变一个这样的解决方案以获得另一个(例如交换两个不同组的学生),那么evolutionary algorithm将是一个合理的启发式