我正在考虑一个假设性问题,并从算法的角度寻找如何解决问题的指导。
问题:
考虑一所大学。您有以下对象:
鉴于有关入学的信息(即每篇论文中有多少学生注册,以及分配给每篇论文分配的工作人员),我如何计算遵守以下限制的时间表:
讨论:
实际上我并不太关心上面概述的情况 - 这是我很好奇的一般问题。乍一看在我看来,它似乎非常适合遗传算法,但这种算法的适应度函数将非常复杂。
尝试解决这种约束满足问题的好方法是什么?
我想可能没有办法完美地解决这个问题,因为学生们可能会采用一系列导致不可能出现的情况的论文,特别是学生和学生的数量。论文增长。
答案 0 :(得分:3)
坚持遗传算法,我不认为这个的适应度函数会非常复杂,恰恰相反。
你基本上只是检查每个约束的候选解决方案(无论编码)(你只有5个)并为它们分配一个权重,这样当一个约束不满足时,权重就会加到一个总分上代表健身。
在这种情况下,您只需最小化适应度函数(因为可能的最佳适应度为0,意味着满足所有约束条件)并让GA处理数字。
编码需要稍微搞清楚,但一旦完成,它应该是直截了当的,除非我遗漏了某些东西,当然:)
答案 1 :(得分:2)
此问题的限制版本是NP-Complete。
考虑只有一名学生可以拿纸的情况。
现在对于一个给定的时间段(比如说这篇论文是全天教授的),你可以用房间,论文和学生构建一个三分图,如果学生想要拿一篇论文和学生之间的边缘它。还要在纸张和可能的房间之间添加边缘。
我们现在看到3 Dimensional matching problem是您问题的一个实例:您需要为该特定时段选择一个非重叠(学生,纸张,房间)组合。
对于一般问题,你可能会有一些启发式方法。对不起,我在那里帮不了你。
希望有所帮助。