员工排班算法

发布于 2024-07-06 14:18:52 字数 119 浏览 11 评论 0原文

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

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

谢谢, 德万

We are embarking on some R&D for a staff rostering system, and I know that there are some suggested algorithms such as the memetic algorithm etc., but I cannot find any additional information on the web.

Does anyone know any research journals, or pseudocode out there which better explains these algorithms?

Thanks,
Devan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

醉殇 2024-07-13 14:18:52

这是一个有用的文档:

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

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

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

Here is a useful document:

Memetic Algorithms for Nurse Rostering (pdf)

It contains a little bit of theory and pseudo-code.

Scheduling problem is NP-hard and usually being solved using genetic algorithms (GA).
You can start learning GA from Wikipedia article

往日情怀 2024-07-13 14:18:52

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

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

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

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

You may also want to look at a technique called "simulated annealing". Like genetic algorithms, this uses an evaluation function to determine the quality of candidate solutions - but the generating of the candidates tends to be simpler. Each type of algorithm gives better results in certain circumstances - from a brief Google survey it feels like genetic has the edge, but annealing will be quicker to implement.

Here is a comparison paper (for a different domain, not scheduling):
http://www.ee.utulsa.edu/~tmanikas/Pubs/gasa-TR-96-101.pdf

We have used simulated annealing in a large scheduling application and it did work well.

To be honest, if the volume of staff is less than about 40, I would recommend giving a visual representation of the roster and letting the user finalise the schedule. Perhaps you would use an algorithm to produce a candidate schedule to start with, and then let the user play with it. You could still use the evaluation function to check the user's work and give feedback on how good their solution is.

夜血缘 2024-07-13 14:18:52

在设置名册时间表时需要考虑很多很多问题,因此 aku 关于遗传算法的建议是最好的。

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

  • 您是否解决了该名册的工作量问题? (即,您是否有足够的人员始终在工作?)
  • 如果没有,您能承受后果吗? (对于医院,您可能需要将午餐推迟一天 15 分钟,以便有足够的人手来享用午餐,或者只是稍微拖延一下时间)
  • 考虑到以下因素,名单是否是一个名单每个人的轮班稳定性、休息日、周末是否定期休息,
  • 名册是否合法? 考虑到当地法规等因素,这些法规规定了一个班次与另一个班次之间必须经过多长时间(停机时间)、每个人在给定时间间隔(天、周、月)内可以工作多少时间

There are many many many issues to consider when setting up a roster schedule, so aku's tip about genetic algorithms is the best one.

You need a good evaluation function to determine the quality of the roster for such an algorithm, and you can, and should, consider things like the following (but not limited to):

  • have you solved the workload problem with this roster? (ie. do you have enough people at work at all times?)
  • if not, can you live with the consequences? (for hospitals, you might have to postpone lunch 15 min one day in order to have enough people available for it, or just drag it slightly out in time)
  • is the roster a good one, considering things like shift stability for each person, their days off, whether or not they get weekends off with some regularity
  • is the roster legal? taking things like local regulations into account, that regulate things like how much time must pass between one shift and another (downtime), how much can each person work inside a given interval (day, week, month)
仲春光 2024-07-13 14:18:52

不久前我读到了 CSIRO 的一篇排班算法论文。

更新的链接 - https ://web.archive.org/web/20140204021235/http://www.cmis.csiro.au/or/rostering/railtex.htm

I read a rostering algo paper by CSIRO a while back.

Updated link - https://web.archive.org/web/20140204021235/http://www.cmis.csiro.au/or/rostering/railtex.htm

余生再见 2024-07-13 14:18:52

或者使用 OR ;)

Or by using OR ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文