首页 > 解决方案 > 通过最小化特定变量的总和来优化人员调度

问题描述

所以,这可能有点远,因为这是一个相当复杂的问题,或者至少对我来说是这样。

我的一般问题是优化员工时间表。我有项目信息和员工信息等输入。每个员工都是四个团队之一的成员,并且具有特定的技能组合和每周特定数量的可用时间。项目具有所需的团队、技能组合、开始和结束日期、预计完成时间以及与之相关的优先级。

我开发了一个启发式模型,该模型将这些特征考虑在内,并考虑了以下约束:员工不能在每周的可用时间内工作,项目必须由指定团队内的员工完成,项目必须在开始 - 结束日期完成大体时间。我开发的模型肯定不是最优的,它只是将估计的小时数除以工作人员的数量,然后将该数字除以完成每个员工每周所需的小时数所需的周数。

我现在正试图弄清楚如何优化它。我将举一个例子来解释我是如何考虑这样做的。我的目标函数是最小化每个员工的时间过度分配的总和。

假设我有 3 个项目要安排,我有 5 名可能满足项目技能和团队要求的员工:

在此处输入图像描述

假设我有一个计数器来衡量,我该如何减少过度分配的数量?我知道纸浆可能是最好的包,但我需要一些关于如何开始的指导。

TLDR;我有一个功能启发式,它考虑了约束,我想通过最小化目标函数来优化它。非常感谢任何线性编程或一般建议。

重要说明:计划的项目数量各不相同,因此如果我有 x 个要计划的项目,我无法进行 x for 循环。

标签: pythonlinear-programmingpulp

解决方案


推荐阅读