9

我们正在着手对员工排班系统进行一些研发,我知道有一些建议的算法,例如模因算法等,但我在网上找不到任何其他信息。

有谁知道任何可以更好地解释这些算法的研究期刊或伪代码?

谢谢,德文

4

5 回答 5

12

这是一个有用的文件:

护士排班的模因算法 (pdf)

它包含一点理论和伪代码。

调度问题是 NP 难题,通常使用遗传算法 (GA) 来解决。你可以从维基百科文章
开始学习 GA

于 2008-10-16T05:39:23.833 回答
6

您可能还想查看一种称为“模拟退火”的技术。与遗传算法一样,它使用评估函数来确定候选解决方案的质量——但候选解决方案的生成往往更简单。在某些情况下,每种类型的算法都能提供更好的结果——从谷歌的一项简短调查来看,感觉基因具有优势,但退火会更快地实施。

这是一份比较论文(针对不同的域,而不是调度): http ://www.ee.utulsa.edu/~tmanikas/Pubs/gasa-TR-96-101.pdf

我们在大型调度应用程序中使用了模拟退火,并且效果很好。

老实说,如果员工数量少于 40 人,我会建议提供花名册的可视化表示并让用户最终确定时间表。也许您会使用一种算法来生成一个候选时间表,然后让用户使用它。您仍然可以使用评估功能来检查用户的工作并就他们的解决方案的好坏提供反馈。

于 2008-10-16T07:03:15.490 回答
2

在设置花名册时间表时需要考虑很多很多问题,所以 aku 关于遗传算法的提示是最好的。

您需要一个良好的评估函数来确定此类算法的花名册质量,您可以而且应该考虑以下事项(但不限于):

  • 你用这个名册解决了工作量问题吗?(即,您是否始终有足够的人在工作?)
  • 如果没有,你能承受后果吗?(对于医院,您可能需要将午餐推迟 15 分钟,以便有足够的人吃,或者只是及时将其稍微拖出来)
  • 考虑到每个人的轮班稳定性,他们的休息日,他们是否有规律地在周末休息
  • 名册合法吗?考虑到当地法规之类的事情,这些规定例如一个班次和另一个班次之间必须经过多少时间(停机时间),每个人在给定的时间间隔内可以工作多少时间(天、周、月)
于 2008-10-16T06:17:35.770 回答
0

不久前,我阅读了这些人的排班算法论文。

于 2009-06-22T12:41:18.563 回答
-1

或使用 OR ;)

于 2008-10-26T00:26:54.343 回答