在过去的几个月里,我一直在努力寻找一种我通常手工完成的算法。我很确定那里一定有一些想法,但我还没有找到。
问题如下:
假设我们有 X 个用户和 X 个工作要做(相同数量的用户和工作)。其中一些工作令人讨厌、无聊或令人筋疲力尽,而其他工作则很好、有创意且开放。我希望能够生成一个工作列表给每个用户一个星期,每天都有不同的职位(例如)。当然,所有的用户都应该有“美好的时光”,“无聊的任务”也不得不做......
在一个非常小的例子中:
Tasks = X (boring) / Y (cool)
Users = A / B
Day 1:
A -> X
B -> Y第 2 天:
A -> Y
B -> X
主要思想是在所有用户之间建立一个均匀的工作流程(因此所有人都有好的和坏的作品)。
如果可以定义某些用户更“特殊”并值得“更好的对待”,则加分。此外,任务不仅可以按“好/坏”分类,还可以按编号进行分类。
到目前为止我的想法:
我想到的最好的算法或想法是对用户进行排序,并首先为首选用户提供最佳位置,直到我分发所有工作。然后在第二天,我将最差的与最好的交换,依此类推(1 与 X,2 与 X-1...)。这是我的担忧:
- 第三天不知道如何继续(如果我重复同样的想法,1 将回到 1,X 回到 X 然后他们整个星期只做两个任务...
- 首选的人,第一名,开始执行“最糟糕的任务”X。此外,中间的人可能不会改变任务(只是不好和不好)。
如果我能更好地解释我的想法,或者您有任何提示,请告诉我。 (包括图表、其他可能的想法等)。
最佳答案
我相信除了分配无聊和酷的状态之外,您还可以找出每项事件花费的(平均)时间量,以便您可以平衡工作。这就是装配线的平衡方式(基于时间量),所有工作单元每天都必须分配相同数量的工作时间,这样一些工作单元将有例如 12 到 20 个事件,而一些只是一两个,但时间量将大致相同。
关于algorithm - 有什么算法可以在用户之间分配工作,确保所有人至少有 "nice work"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352196/