How Neddan uses Linear Programming Optimization for Team Scheduling

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:

  • Availability (minimizing scheduling conflicts)
  • Workload balancing (ensuring even distribution of appointments)
  • Efficiency (e.g., prioritizing team members with more availability)
  • Other factors (e.g., specialization, priority clients, or revenue maximization)

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 is the decision variable vector (what we're solving for).
  • c is the objective function coefficient vector (weights of importance for maximizing efficiency).
  • A is the constraint matrix.
  • b is the constraint boundary vector.

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:

  • Availability is respected
  • Workload is evenly distributed
  • The most efficient team member is selected based on priority scores


Have you explored optimization techniques like linear programming before? Let’s discuss!!!

要查看或添加评论,请登录

Oriol Manzano Duran的更多文章

社区洞察