Here's the gist of the problem: There are multiple service providers who each have their own schedules of availability. There are multiple customers who seek their services. Customers need to be able to book a reservation time for the service but they should only be able to book times in which some service provider is available (ie they don't really care which particular provider they get so long as they get a provider). Unfortunately, service providers may change schedules between when the customer registers and when the service is provided, meaning that even with the reservation safeguards in place there could still end up being too many reservations for a given time.

I would like to know what work has already been done on this sort of problem, and additionally:

  1. Should providers actually be "assigned" to customers in a persistent way even though providers are interchangeable?
  2. Depending on the answer to the previous question, how might I determine the provider's "next assignment" based on the current time, other providers' schedules, and scheduled reservations?

I've thought a lot about this problem but I am stumped and left with unsatisfying solutions. As someone with no CS background I would appreciate some insight and/or a better way to think about the problem.

  • 2
    If providers' schedules are changed at will, there is nothing you can do (this is called Chaos) to prevent overbooking. Seriously, this is all about Queue Theory. Aug 17, 2013 at 18:10

1 Answer 1


You don't have to bind a reservation to a specific service provider. You already know how to tell if a time slot is fully booked, there is the same number of reservations as service providers scheduled during that slot. So if you're fully booked for a slot and a provider wants to no longer be scheduled during that slot, you either deny the schedule change or cancel one of the reservations.

If that isn't feasible (in which case it's not really a "reservation", is it?), then you just sort the customers by earliest reservation time first, and go down the list.

  • 1
    What happens if all of the service providers withdraw during that time slot? Aug 18, 2013 at 0:18
  • This is kind of the direction I was going, but to @RobertHarvey 's question, how should I handle overbooking as a result of service provider withdrawal? Aug 18, 2013 at 0:47
  • You cancel enough reservations until it's no longer overbooked. Aug 18, 2013 at 2:05
  • @KarlBielefeldt, sure, but say the service is such that the customers will still desire it even if it is late so that it may be more desirable to rearrange the schedules rather than cancel the reservation entirely... Aug 19, 2013 at 6:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.