会议调度解决方案

时间:2014-09-12 21:21:30

标签: algorithm constants scheduling mathematical-optimization linear-programming

我想开发一个程序来帮助安排辅导会议。我看过背包问题和护士名单问题,但我不确定他们是否最适合我的问题。我的要求概述是:

(我将在我的例子中使用销售辅导)

  • 员工名单将从考勤系统(时间/日期)填入系统。
  • 将有一批尚未参加销售培训的员工
  • 部分员工是销售助理,他们将主持一个辅导课程(每个课程一个教练)
  • 根据工作人员名单,我希望系统能够生成一个辅导课程表(同一会话的多次出现),以容纳需要参加的工作人员队列。此计划的逻辑基于强制和可选标准(可由用户选择)

强制性标准

(1)每个会话都必须有一个教练,即一个教师没有被列入工作的时间内无法安排会话

(2)每个会话都有一个最大容量

可选标准

(1)会议的可用名额按雇用日期顺序排列给员工(老员工优先考虑)

(2)可以从特定部门参加会议的员工人数达到最大阈值(单个会话中不能有90-100%的员工来自一个部门)

(3)会话有一个最低门槛(对于只安排一个人的会话没有意义)

显然,我想首先只使用强制性标准来开发调度程序,但重要的是要注意它需要支持可选标准。

我不确定这个问题有多复杂,虽然我认为它可能比背包和护士问题容易,因为会话的数量可以增长 - 我不受有限空间的限制。

我知道所有参加者都可能无法满足所有标准,但我正在寻找最适合的人选。

此外,该系统不关心轮班的实际排班和可能发生的非计算问题(A人不想与B人合作等)。就该系统而言,名册是来自T& A系统的简单输入。

我正处于研究这个阶段的早期阶段,所以我很感激建议我应该用什么来解决这个问题:护士问题,背包问题,图论,蛮力,遗传,还有什么?我基本上是在寻找一个起点。

感谢。

1 个答案:

答案 0 :(得分:1)

了解您可以从其他标准问题中获得什么,但不要限制自己以适合这些形式的问题。如果你愿意,可以尝试蛮力,因为它有时有助于理解为什么它不会缩小过去的琐碎例子。我会尝试使用optaplanner或minizinc和minion等现有工具之一来获得感觉。如果你有时间,绝对尝试实现自己的约束求解器是非常有益的。了解其他人如何做到这一点,因为它并不简单,并且有几个陷阱等着你。另外,请查看本地搜索提示,因为一旦您的思维方式正确,它们就会非常容易实现。遗传算法方法似乎更难以适合我。祝好运。