gpt4 book ai didi

c# - 生成时间表 - 需要好的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:34 25 4
gpt4 key购买 nike

昨天,在试图休眠时,我开始思考如何解决下面的问题,并意识到我无法想出一个好的算法。这不是学校作业,即使看起来像作业,我只是想找到答案。 :)

基本上让我们想象一下商店员工的工作时间表。该程序应根据一组要求生成调度建议。

要求是:

  • 每周只有一名员工工作。
  • 员工不能连续工作两周。
  • 应该有办法防止员工得到计划在某一周(假期)工作。
  • 分布应该尽可能均匀,即如果我们有员工 A、B 和 C 他们应该得到大致相同的金额休息周数,这些周应尽可能均匀地分配可能。

解决此问题的最佳方法是什么?也许函数式编程更适合解决这个问题?

编辑:现在我知道这类问题叫做“资源约束调度”。对此有点难以理解,因为"dispatch"通常指的是计划任务或线程之类的东西。对于那些仍然认为我在要求作业解决方案的人(尽管我在上面明确声明并非如此),你可以查看我以前的问题,我认为它们清楚地表明我不是学生......

最佳答案

前两点是问题的约束条件。第三点表示一种对候选解决方案进行排序的方法,如果将其形式化,则会得到一个优化问题。事实上,您正在尝试最小化工作分配上的差异。

请注意,由于限制,问题可能没有可接受的解决方案。

这是一个组合优化问题,您可以使用整数线性规划方法精确求解,也可以使用随机局部搜索方法(它们也称为元启发式或许多其他名称)近似求解,例如遗传算法、模拟退火、禁忌搜索、迭代局部搜索、蚁群优化等。

这一类特定的问题被称为作业调度,并且有很多关于它的变体的文献。

如果这不是作业我想这应该足以满足你的好奇心,如果是我想我告诉你你可以看什么。

关于c# - 生成时间表 - 需要好的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7227345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com