I'm working on an employee scheduling program in python. Having never done this before, I've been researching different libraries that can be used to accomplish the task.
Unfortunately, none of the examples I have been able to find for scheduling problems (for any library) seem to address one of the most common scheduling requirements - optimally scheduling breaks and lunches.
My program is ultimately going to fit the "coffee shop scheduling" model found here: https://towardsdatascience.com/how-to-solve-a-staff-scheduling-problem-with-python-63ae50435ba4
I know how many employees I need to meet demand every hour, but it swings wildly. So I need the program to select the optimal shifts to staff, from a list of known shifts, to be able to meet all demand.
For reference, number of employees needed would look something like this:
I'd have a list of shifts to pull from, with pre-defined breaks. It's essentially a cartesian product of all acceptable shift/break/lunch combinations:
I'm sure there are a number of ways to do this, but what would be one possible way to incorporate the break/lunch schedules into PuLP, Pyomo, or Google OR-Tools? I've researched PuLP, Pyomo, and Google OR-Tools and I'm willing to use whichever library can best solve for this problem, they all seem like they can do the rest of what I need.
Any help or general direction would be greatly appreciated. I'm a little bit stuck at this juncture.