# Workforce Scheduling

Workforce scheduling problems emerge in a wide range of service delivery settings and involve the scheduling of shifts for different types of personnel including restaurant workers, hotel reservation agents, airline crew members, contact center operators, retail store workers, nurses, and police officers. Fundamentally, these problems involve creating shift schedules that maximize resource utilization while ensuring that shift labor requirements and other business constraints are satisfied.

Workforce scheduling problems can be formulated as a multi-objective mixed-integer-programming (MIP) models, implemented using the Gurobi Python API, and solved using the Gurobi Optimizer. Access the Gurobi Workforce Scheduling Jupyter Notebook and Optimization Application Demo below to see how it works.

### Workforce Scheduling Optimization Application Demo

This demo entails assigning shifts to personnel from a service company in order to cover the demand for resources, which fluctuates over time. In this example, we want to minimize the number of extra workers (temps) that we may need to satisfy resource requirements and also balance the workload of employed workers.

#### Register for a Free Gurobi Account

To access the Workforce Scheduling demo application and create your scenario using your own data from a blank template or to play with existing default scenarios, you must first register for a Gurobi website account and then view the demo.

Read this whitepaper to learn how to create your own Workforce Scheduling scenario

### Workforce Scheduling Jupyter Notebook Modeling Problem

This Jupyter Notebook describes a workforce scheduling optimization problem that is common in the services industry. The problem is formulated as a multi-objective mixed-integer-programming (MIP) model. The model is implemented using the Gurobi Python API and solved using the Gurobi Optimizer.

This modeling example is at the advanced level, where we assume that you know Python and the Gurobi Python API and that you have advanced knowledge of building mathematical optimization models. Typically, the objective function and/or constraints of these examples are complex or require advanced features of the Gurobi Python API.

Modeling examples are coded using the Gurobi Python API in Jupyter Notebook. In order to use the Jupyter Notebooks, you must have a Gurobi License. If you do not have a license, you can request an Evaluation License as a Commercial User or download a free license as an Academic User.

#### Access the Jupyter Notebook Modeling Example

Click on the button below to be directed to GitHub where you can download the repository for the Workforce Scheduling Jupyter Notebook modeling example.

Workforce Scheduling Problem