我想开发一个程序来帮助安排辅导会议。我看过背包问题和护士名单问题,但我不确定他们是否最适合我的问题。我的要求概述是:
(我将在我的例子中使用销售辅导)
强制性标准
(1)每个会话都必须有一个教练,即一个教师没有被列入工作的时间内无法安排会话
(2)每个会话都有一个最大容量
可选标准
(1)会议的可用名额按雇用日期顺序排列给员工(老员工优先考虑)
(2)可以从特定部门参加会议的员工人数达到最大阈值(单个会话中不能有90-100%的员工来自一个部门)
(3)会话有一个最低门槛(对于只安排一个人的会话没有意义)
显然,我想首先只使用强制性标准来开发调度程序,但重要的是要注意它需要支持可选标准。
我不确定这个问题有多复杂,虽然我认为它可能比背包和护士问题容易,因为会话的数量可以增长 - 我不受有限空间的限制。
我知道所有参加者都可能无法满足所有标准,但我正在寻找最适合的人选。
此外,该系统不关心轮班的实际排班和可能发生的非计算问题(A人不想与B人合作等)。就该系统而言,名册是来自T& A系统的简单输入。
我正处于研究这个阶段的早期阶段,所以我很感激建议我应该用什么来解决这个问题:护士问题,背包问题,图论,蛮力,遗传,还有什么?我基本上是在寻找一个起点。
感谢。
答案 0 :(得分:1)
了解您可以从其他标准问题中获得什么,但不要限制自己以适合这些形式的问题。如果你愿意,可以尝试蛮力,因为它有时有助于理解为什么它不会缩小过去的琐碎例子。我会尝试使用optaplanner或minizinc和minion等现有工具之一来获得感觉。如果你有时间,绝对尝试实现自己的约束求解器是非常有益的。了解其他人如何做到这一点,因为它并不简单,并且有几个陷阱等着你。另外,请查看本地搜索提示,因为一旦您的思维方式正确,它们就会非常容易实现。遗传算法方法似乎更难以适合我。祝好运。