How Neddan uses Linear Programming Optimization for Team Scheduling
When we started integrating team scheduling logics in Needan, if a guest booked an appointment at a time where multiple team members were available, we had to find a way to determine the most optimal team member based on availability and other optimization criteria
We’ve been tackling this problem using linear programming to determine which appointment to prioritize when multiple bookings overlap.
We wanted to assign an appointment to one of the available team members while optimizing based on:
General Linear Programming Formulation
This article is not an indepth explanation of linear programming, for a clear understanding of Linear Programming check out wikipedia. As a general idea, linear programming can be expressed in standard form as:
where:
x≥0 ensures that the solution remains feasible(no negative assignments).
Applying this to Neddan's Appointment Scheduling
We define our optimization problem as:
Subject to:
Each appointment must be assigned to exactly one team member:
No single team member is overloaded with too many appointments. By setting a limit L, we prevents one team member from getting overloaded. We have different L constraints, such as the workload limit and the availability of each team member:
Binary assignment constraint is used. (1 if appointment j is assigned to team member i, 0 otherwise).
Simple Example: Assigning an Appointment to the Optimal Team Member
Suppose three team members (A, B, C) are available for an appointment:
Our linear programming model will determine which team member gets assigned the appointment, ensuring:
Have you explored optimization techniques like linear programming before? Let’s discuss!!!