Consider the following problem of Technician Routing and Scheduling Problem. We have:
- A set of customers where each customer needs the intervention of a technician to do some job. Each customer has a time-window of presence and a geographical local. Each job requires a set of skills and has a known processing time.
- A set of technicians, each with some skills and with time-windows of working hours.
The TSR problem involves assignment, scheduling, and routing of multi-skilled technicians to serve customers. The objectives are to minimise the cost (involving the distance and the time to move from one location to another) and to maximise customer satisfaction (this objective needs some interpretation).
The problem is that in real-life there is a lot of uncertainties. Jobs or travel-times may take longer than expected. The schedules are not so "robust", a 10-minutes lateness may create a big chaos. Some technicians will not have the time to visit all their assigned customers, which make them unhappy.
How to cope with that in some "clever" way? I don't have any data to forecast things.
For example, I thought about making each customer choose two time windows rather than one. This way, I always have a second chance if things go wrong. PS: The second time slot will not be used from the beginning but only if the first one is missed. Somehow, it's like having a "new" customer. The point is we don't bother him by asking a second time "when will you be be available?", we already know the answer (which is the time window of the second slot).
Any other suggestions?