I have a set of field engineers, each with a specific expertise and I have to plan a schedule and assign customers based on their nearest reachable address based on customer requirement.

Is there an algorithm or any application where i can integrate my existing database and start the route optimization with google, bing maps or any other source ?


It is a traveling saleman problem with skills (some name it technician routing and scheduling problem). For your problem you require both, (i) an algorithm that calculates the least cost path from one location to another AND (ii) an algorithm that calculates the best sequence of locations given your start and end location and additional constraints such as skills and time windows etc..

(i) can be solved with for example Dijkstra, A*, Contraction Hierarchies

(ii) can be solved with Held-Karp, Branch and Bound/Cut [exactly] and Lin-Kernighan, or any other (meta)heuristic that are also applied to solve vehicle routing problems (VRP) [heuristically]

However, implementing these algorithms efficiently is not matter of days. Thus I would recommend you to use existing software. For (i) GraphHopper will be a perfect choice and for (ii) you can try jsprit with which you can model multiple engineers with skills as well as an arbitrary number of additional constraints easily. Both are written in Java and are Open Source.


Independent of implementation, there are two algorithms that you might find useful:

  1. Djikstra's Algorithm: finds the shortest path between two nodes in a graph
  2. Solvers for shortest Hamiltonian Path: AKA the traveling salesman problem. There are a number of algorithms to solve this.

Hope this at least gives you somewhere to start.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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