用于计算时间表的算法给出限制

时间:2011-01-26 02:05:00

标签: algorithm language-agnostic genetic-algorithm

我正在考虑一个假设性问题,并从算法的角度寻找如何解决问题的指导。

问题:

考虑一所大学。您有以下对象:

  • 教学人员。每位工作人员都会教一篇或多篇论文。
  • 生。每个学生都会拿一篇或多篇论文。
  • 房间。房间里有一定数量的学生,并且包含某些类型的设备。
  • 论文。需要某种类型的设备,每周需要一定的时间。

鉴于有关入学的信息(即每篇论文中有多少学生注册,以及分配给每篇论文分配的工作人员),我如何计算遵守以下限制的时间表:

  1. 工作人员一次只能教一件事。
  2. 学生一次只能参加一篇论文。
  3. 客房只能容纳一定数量的学生。
  4. 需要某种设备的纸张只能放在提供此类设备的房间内。
  5. 营业时间为周一至周五,8-12和1-5。
  6. 讨论:

    实际上我并不太关心上面概述的情况 - 这是我很好奇的一般问题。乍一看在我看来,它似乎非常适合遗传算法,但这种算法的适应度函数将非常复杂。

    尝试解决这种约束满足问题的好方法是什么?

    我想可能没有办法完美地解决这个问题,因为学生们可能会采用一系列导致不可能出现的情况的论文,特别是学生和学生的数量。论文增长。

2 个答案:

答案 0 :(得分:3)

坚持遗传算法,我不认为这个的适应度函数会非常复杂,恰恰相反。

你基本上只是检查每个约束的候选解决方案(无论编码)(你只有5个)并为它们分配一个权重,这样当一个约束不满足时,权重就会加到一个总分上代表健身。

在这种情况下,您只需最小化适应度函数(因为可能的最佳适应度为0,意味着满足所有约束条件)并让GA处理数字。

编码需要稍微搞清楚,但一旦完成,它应该是直截了当的,除非我遗漏了某些东西,当然:)

答案 1 :(得分:2)

此问题的限制版本是NP-Complete。

考虑只有一名学生可以拿纸的情况。

现在对于一个给定的时间段(比如说这篇论文是全天教授的),你可以用房间,论文和学生构建一个三分图,如果学生想要拿一篇论文和学生之间的边缘它。还要在纸张和可能的房间之间添加边缘。

我们现在看到3 Dimensional matching problem是您问题的一个实例:您需要为该特定时段选择一个非重叠(学生,纸张,房间)组合。

对于一般问题,你可能会有一些启发式方法。对不起,我在那里帮不了你。

希望有所帮助。