昨天在试图入睡时,我开始考虑如何解决下面的问题,并意识到我无法想出一个好的算法。即使它看起来像一个,这不是一个学校作业,我只想找到答案。 :)生成时间表 - 需要好的算法
基本上让我们设想一个工作时间表,在一家商店的员工。该计划应根据一系列要求生成计划建议。
的要求是:
- 只有一个员工任何一周的工作。
- 员工无法连续工作两周。
- 应该有防止雇员从得到 安排某一周(假期)的工作方式。
- 分配应该尽可能平均,即如果我们有 员工A,B和C,他们应该获得大约相同的周数 ,并且这些周应该尽可能均匀地分配为 。
什么是攻击这个问题的最好方法是什么?也许函数式编程更适合解决这个问题?
编辑:现在我知道这种类型的问题被称为“资源约束调度”。由于“调度”常常涉及计划任务或线程等事情,所以对于这一点有点困难。对于谁仍然认为我所要求的作业方案(尽管我明确地声称,否则以上)的人,你可以看看我以前的问题,我想他们清楚地表明我不是一个学生......
贪婪:使用一个PriorityQueue应该是一个很好的启发式方法,但如果某个员工在最后一个预定的几周内有一个长期“奉献”,可能会失败。 – amit
什么是假期限制? – naveen
尝试将输入参数和输出值添加到问题中的算法,因为这会使其更清晰 – Ankur