TimeWise
Generate schedules for your workforce in less than 15 minutes- TimeWise was built as a proof-of-concept to spead awareness of linear programming, which is an underused problem-solving paradigm. We believe in LP because it's more precise than traditional methods. It guarantees the best possible outcome based on the defined constraints.
How it works
The scheduler follows a simple structure where each week has days, every day has time slots, and every time slot has shifts.
The time slots specifically are an abstraction to allow for multiple concurrent shifts.
To illustrate this, let's think of a hospital where we need a schedule.
The hospital has three major working blocks each day (namely: early, late, and night shifts). In every working block, both the ER and OR need to be staffed. I.e. the working blocks are represented by time slots, while the shifts
could account for different workplaces or differing departments when sharing one worker pool.
Constraint Options
There are a couple of parameters one can access in the scheduler. Like other ILP problems, this one requires a target function and constraints. All parameters for the problem can be accessed via the checkbox menu.
Expense Minimizing
This option is used to set the target function to minimize the objective value of staffing costs Staffing costs are just the sum of the product of every employee's hourly wage and the length of the shifts in which they work.
Strain Minimizing
To allow for approximate fairness between each employee, we introduced a strain value associated with each shift. Strain incentivizes the scheduler to distribute shifts more equally within the given constraints. The target function is, similar to the Expense Minimizing objective, just a sum of the sum of strain in the shifts they worked for every employee.
No double shift constraint
This constraint limits the use of every employee to 1 time per day. It should nearly always be turned on, unless you know what you are doing, as this might lead to workers' rights violations (in Europe, at least).
Maximum working hour constraint
This constraint is straightforward and limits the working hours per week of every employee to the value specified by the slider
Ensure qualified personnel constraint
This constraint only permits the scheduling of employees for the shifts their qualifications match.
It is also the case for hybrid shifts. Both employees and shifts can require mixed qualifications.
For example, employee "Jeff" is both doctor and OR-qualified. That would qualify him for the OR Shift,
which requires one doctor with OR qualifications, one anesthesiologist, and one surgeon. Employee "Hannah"
on the other hand, is both a doctor, OR-qualified, and a surgeon and is, therefore, eligible for two of the positions in that shift.
Solution
If your model is solvable within the constraints (you will receive an error message if it isn't), a solution tree will appear.
This solution tree consists of a list of the weeks, days, time slots, and shifts. If you expand it fully, you will then be able
to see the names of the employees designated for a specific shift.
Alternatively, you can use the box to input an employee's name and filter their working days and shifts.