最小化有序任务算法的员工空闲时间

时间:2019-07-16 04:21:27

标签: algorithm optimization schedule np

假设有一种产品要在工厂生产,从头到尾都需要o操作。每个操作都需要时间t_o才能完成。每次操作至少有一名员工,并且没有员工可以执行一项以上的操作。但是,每个操作最多只能由2名员工执行(因此,员工总数不得超过2*o)。

目标是为每个操作分配正确的员工人数(1或2名员工),以使每位员工的平均等待时间最小化。

例如: 有2个操作,分别需要1.0分钟和0.5分钟。

案例1:1名员工执行工序1(我们叫o1),1名员工执行o2。然后,生产线的总等待时间为0.5分钟(因为第二名员工每次闲置0.5分钟),每名员工的平均等待时间为0.5 / 2 = 0.25

情况2:2名员工执行o1,1名员工执行o2。然后,总等待时间为0分钟,因为在1分钟内,两个操作都可以完成两次。因此,每位员工的平均等待时间为0/3 = 0

情况3:1名员工执行o1,2名员工执行o2。然后,总等待时间为1.5分钟,因为在1分钟内o1一次完成,而o2由单个员工在0.5分钟内完成(因此,第一名o2员工处于闲置状态)持续0.5分钟,第二位o2雇员则是整个1分钟的理想选择)。因此,每位员工的平均等待时间为1.5 / 3 = 0.5

在这里,我们选择案例2,因为它可以使每位员工的平均等待时间(0分钟/员工)最小化。

我目前正在使用一种贪婪的方法,首先从每个操作分配一名员工开始。然后,我遍历操作列表,并增加导致最长等待时间的操作的员工人数。我不确定这近似值有多好,但是我正在寻找一种接近最佳的解决方案。

我研究了任务调度算法和匈牙利算法,但是在将这些示例中的任何一个应用于我的问题时遇到了困难。

0 个答案:

没有答案