Data-Driven Shift Scheduling
Mathematical Formulation
Minimize $\sum_{i \in I, j \in J} c_{ij} \cdot x_{ij}$
Subject to:
- $\sum_{j \in J} x_{ij} = 1$ for all $i \in I$ (each employee gets exactly one shift)
- $\sum_{i \in I} x_{ij} \geq r_j$ for all $j \in J$ (each shift meets minimum staffing requirement)
- $x_{ij} \in \{0,1\}$ for all $i \in I, j \in J$
Where:
- $I$ is the set of employees
- $J$ is the set of shifts
- $c_{ij}$ is the cost of assigning employee $i$ to shift $j$
- $r_j$ is the minimum staffing requirement for shift $j$
- $x_{ij}$ is the decision variable: 1 if employee $i$ is assigned to shift $j$, 0 otherwise
Instructions
Upload an Excel file with the following sheets (template data):
- 'costs' sheet: Cost matrix for assigning employees to shifts (employees as rows, shifts as columns)
- 'employees' sheet: Information about employees (ID as index, with employee attributes)
- 'shifts' sheet: Information about shifts (ID as index, with min_staff, start_time, and end_time)
- 'params' sheet (optional): General parameters for the model
- 'preferences' sheet (optional): Employee shift preferences (1=preferred, 0=not preferred)