Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
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. –  Deer Hunter Aug 17 '13 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.

share|improve this answer
1  
What happens if all of the service providers withdraw during that time slot? –  Robert Harvey Aug 18 '13 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? –  tacos_tacos_tacos Aug 18 '13 at 0:47
    
You cancel enough reservations until it's no longer overbooked. –  Karl Bielefeldt Aug 18 '13 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... –  tacos_tacos_tacos Aug 19 '13 at 6:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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