0

What is the best way to use Google OR-Tools to solve Vehicle Routing Problem combined with Resource Scheduling?

The case is that some sites needs 1 worker and some others need many workers. For example, one site visit needs 1 field technician with skill A. While some others need: 2 field technicians, one with skill A and the other with skill B. The third site needs 1 field technician with skill B.

I do not want to assign workers to groups; Because it will involve time wasting in some cases.

The case is very generic that suppose to handle all cases of any complexity. However, the current number of locations are hundreds of thousands sites, current workers are in hundreds or thousands, and the number of skills are above 10.

Muhammad Altabba
  • 2,583
  • 19
  • 31

2 Answers2

1

You're going to need to simplify this significantly before you can solve it.

Given the size, you will likely need to be able to split it into different subproblems in some way. Vehicle routing problem decomposition is tricky, but there are some research papers out there on it.

Also having jobs sometimes require one technician and sometimes two is hard, unless you can simplify further. If you can't simplify, then you have a 'synchronised' vehicle routing problem (this is the term used in the research literature), which I suspect you probably won't be able to solve just using OR Tools. Possible ways to simplify:

  • Can you assume a team of 2 technicians works together for the entire day, so you just model them as a single route? So, you have some routes which are a single technician and some routes which are 2 technicians, BUT 2 separate routes of 1 technician each NEVER come together to do a 2-technician job?

  • Do jobs that require 2 technicians last the whole day, so you don't have to model independencies between 2x1 technician routes working on a 2 technician-job together? I.e. you don't have to model the delay to technician B if technician A does another job before they do a job together?

  • Are 2-technician jobs rare enough such that you could automatically schedule the 1-technician jobs and then get a human planner to manually slot in the 2-technician jobs around them?

Skills should be relatively straightforward. Other things you might need to consider are:

  • Do you need to model multiple days at once?

  • Is this a realtime / dynamic vehicle routing problem or a static one? Our video here gives a simple explanation of the difference. If you have jobs that are booked on the same day they're served, or the duration of jobs is uncertain (i.e. you don't know how long they'll take), then you have a realtime routing problem which must be treated/solved differently to a static case.

  • Thanks for sharing. I up-voted but did not mark as the answer because I still think that there is some better way of using OR-Tools. Let us see and decided later... – Muhammad Altabba Feb 04 '19 at 13:12
  • Fair enough. If you definitely have a synchronised vehicle routing problem, you might still be able to use OR-tools as a starting point for solving it, but I suspect you've got a **lot** of work to do on top of it. I don't know of any open source or commercial solver that handles synchronisation constraints, though there are quite a lot of research papers which look at the VRPs with synchronisation constraints. – Open Door Logistics Feb 05 '19 at 09:32
0

How big is your problem? (number of visits, number of workers, number of skills)

Laurent Perron
  • 8,594
  • 1
  • 8
  • 22