Distributing a shift evenly amongst employees

linear programmingmathematical modelingmixed-integer programmingoperations researchoptimization

For employee scheduling, I am writing a MIP. I am trying to distribute the shifts amongst the employees with the same skills as even as possible.

e.g.

=============================

Three employees with the same skill: Bob, Michel, Terry

Bob payroll 10\$/hour; Michel payroll 15\$/hour; Terry payroll 20\$/hour

Prefered Assigning: Monday: Bob -> 9 to 5; Tuesday: Michel -> 9 to 5; Wednesday: Terry -> 9 to 5

=============================

In my MIP it is possible to count the hours that an employee is working.

Is it possible to write a constraint in order to evenly distribute the shifts?

Does this idea even make sense if my objective function is to target the minimization of costs or prioritization of some employees? I am not sure that in this case, multi-objective optimization would work properly.

Best Answer

Assuming your original objective is to minimize payroll costs, you could create constraints limiting the maximum discrepancy in hours between the most and least used workers, or you could create constraints limiting the absolute difference between the hours of any worker and the average hours per worker overall (total hours divided by number of workers). If neither of those alternatives appeals to you, you could combine some measure of inequality with the cost function, but that would require you to quantify the trade-off (e.g., getting one hour closer to equality in workloads is worth $K$ dollars in increased staffing cost).

Related Question