I'm honestly not sure where / what to post this as, but I will be very grateful to anyone for any advice that you may be able to provide.
I am looking to create an algorithm which will calculate the most optimal schedule for a taxi (long-distance private hire) company, with multiple drivers and multiple bookings.
On any one day, there may be up to around 5-10 jobs, each taking varying amounts of times with varying amounts of miles.
I can obtain the coordinates, and distance between all locations through the Google Distance API.
I want to calculate the optimal schedule whereby driver mileage/time is minimised in order to complete ALL jobs as effectively as possible. The job times and locations are fixed, however the driver can be any from a pool of up to 10. Each driver does not necessarily have to complete a job each day. Some drivers may complete multiple jobs in one day, as long as they do not overlap.
For Example:
Driver A goes from Point A to Point B.
There is another job from Point B later in the day, so Driver A should naturally be assigned to this job, as Driver A can wait at Point B until the next job's start time, rather than wasting fuel for another driver to go to Point B with an empty car.
I have tried to be concise, apologies for the length. I don't expect a full answer but if anyone's attempted similar, some tips would be appreciated!