dougai2427 2013-08-09 17:41
浏览 69
已采纳

非循环劳动力调度算法

There seems to be a large amount of information about Cyclic (or "Rotating") Workforce Scheduling problems. I am searching for an algorithm that will help generate a schedule of employee shifts that does not care what the previous week's schedule looked like. From my research, this sounds like a non-cyclic workforce scheduling problem.

Essentially, I have the employee's availability, their min/max hours, and their requested time off. With that information, I want to create an optimized schedule that caters to the employee's desired availability while also meeting the number of required shifts for each day.

Does anyone have tips on a good algorithm for this purpose? Thanks!

  • 写回答

1条回答 默认 最新

  • douzhang5121 2013-08-09 22:24
    关注

    For problems like employee scheduling where there are a lot of constraints on the solution, I prefer approaches that never violate any constraints, or as near as possible. (Some approaches such as genetic crossover will violate constraints and then perform additional operations to fix the solution - this is also a valid approach, but you need to beware of going down a blind alley.)

    Two approaches are based on using a greedy algorithm.

    The first is to use a semi random greedy algorithm; if you have two choices then ordinarily you would always select the locally optimal choice, but with a semi random greedy approach you introduce the possibility of selecting the choice that isn't locally optimal. For example choice one has a weight of 5 and choice two has a weight of 2; ordinarily you would select choice one, but in this case you would use a random number generator and select choice one if rand(5 + 2) is less than 5, else select choice two. Now run the algorithm several times and take the "best" solution.

    The second option is to start with a greedy or semi random greedy solution, and to use a local search algorithm to reassign employee slots in an attempt to improve the solution. For example, if an employee has fewer than their desired hours then bump an employee occupying a slot that's legal for the sub optimal employee and assign the sub optimal emoloyee to it, continuing the search to reassign the bumped employee if need be. Unlike the first solution, this one may not terminate if you're not careful.

    The two approaches can be combined, generating several solutions with the semi random greedy approach and then conducting local searches to improve the best results.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)