Help

Time-Dependent Route Optimization API

We are happy to announce our new product: time-dependent route optimization.

To illustrate what this actually means, let us assume we have a number of drivers who need to serve 40 customers in London within a time window of 2 hours. All drivers start from the airport London Heathrow and do not need to return to Heathrow anymore after all customers are served. The optimization goal is to minimize the number of required drivers first, and second, to minimize total transport time.

Our current time-independent Route Optimization API calculates the following plan:

It takes 6 vehicles and in total 8 hours and 55 minutes to serve all customers no matter whether the drivers start at 3am, 7am, 1pm or 6pm. Here travel times are average values of the entire day. De facto, however, travel times vary significantly throughout the day so that it actually does matter when drivers start. Our new time-dependent Route Optimization API takes this into account. It considers detailed historical traffic information from TomTom within the optimization. For each road and time of day we are provided with travel time data aggregated from millions of anonymously-collected data points. This way we are able to predict travel times much more precise which in turn yields more realistic and cost effective vehicle route plans.

For our example above, it means that all customers can be served with 4 vehicles and in 6 hours and 30 minutes when starting at 2am.

However, when starting at 8am, it even requires 7 vehicles and almost 11 hours to serve all customers.

The following table illustrates how the route plans of our example change with the departure time of drivers.

Departure Time Number of Vehicles Total Transport Time (hh:mm)
02:00 4 06:30
04:00 5 06:57
06:00 7 10:43
08:00 7 10:42
10:00 6 09:38
12:00 6 09:38
14:00 6 10:22
16:00 6 09:26
18:00 5 08:23
20:00 5 07:30
22:00 4 06:30
00:00 4 06:30

As you can see, taking traffic into account can have considerable implications on total costs.

Considering historical traffic information from TomTom is as simple as specifying "consider_traffic":true and "network_data_provider":"tomtom". It is still possible to switch between free flow ("consider_traffic": false) and traffic. You can switch between the different data providers (currently openstreetmap and tomtom) but only tomtom supports the consider_traffic parameter.

You can view and analyse the entire problem in our API Explorer.

For more technical information, please visit our forum.

To get an overview about us and our work, please watch this video and/or sign up here to try out the GraphHopper Directions API.