GuidesAPI Reference
Guides

Minimize tour overlap for driver-friendly routes

Ensure that the optimization algorithm assigns routes to different vehicles without covering the same areas. This is especially important in urban or local delivery scenarios, where overlapping tours can lead to inefficient routes and increased operational costs.

You can reduce tour overlap by including the minimizeTourOverlap advanced objective in the problem JSON, as part of the objectives array which specifies the hierarchy of objectives that govern the tour optimization process.

📘

Note

  • advancedObjectives is an experimental feature. For more information on how to include experimental features in your vehicle routing problems, see Explore experimental features or the sample use case discussed in this tutorial.
  • Using this objective can impact such tour parameters as costs, distance, or duration because of the optimization algorithm trying to separate the tours more distinctly.
  • The order of objectives within the advancedObjectives array is important. The higher the minimizeTourOverlap objective is placed in the array, the more the optimization algorithm prioritizes it. For more information, see Use objective functions for specific optimization goals.

Scenario: Local delivery service

In this scenario, a local delivery service operates four scooters, each with a capacity of 10 orders. The vehicle routing problem for that fleet involves 40 jobs that are densely packed within the service area, as shown in the following example:

A sample problem with 40 delivery jobs spread over a small area

The following sections compare solutions to a single vehicle routing problem - with and without the minimizeTourOverlap objective - to demonstrate its impact on the resulting tours.

Use case 1: Without the minimizeTourOverlap objective

In this case, the vehicle routing problem does contain any specific optimization goals, which means that the optimization algorithm applies only the default objectives when determining the most optimal solution.

This use case serves as a baseline for comparing how solutions using the default objectives behave versus those aiming to reduce tour overlap.

The following section contains the full problem JSON:

Click to expand/collapse the sample JSON
{
  "fleet": {
    "types": [
      {
        "id": "vehicle_1",
        "profile": "vehicle",
        "costs": {
          "fixed": 20,
          "distance": 0.5,
          "time": 0.002
        },
        "shifts": [
          {
            "start": {
              "time": "2023-12-06T09:00:00+02:00",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              }
            },
            "end": {
              "time": "2023-12-06T19:00:00+02:00",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              }
            }
          }
        ],
        "capacity": [
          10
        ],
        "amount": 4
      }
    ],
    "profiles": [
      {
        "type": "scooter",
        "name": "vehicle"
      }
    ]
  },
  "plan": {
    "jobs": [
      {
        "id": "Job_0",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198437,
                    "lng": 21.020396
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_1",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.196852,
                    "lng": 21.01393
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_2",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.210221,
                    "lng": 21.008033
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_3",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.211604,
                    "lng": 21.018408
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_4",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.196201,
                    "lng": 21.003641
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_5",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.201661,
                    "lng": 21.0019
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_6",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208418,
                    "lng": 20.99924
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_7",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208443,
                    "lng": 21.0039
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_8",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.2099,
                    "lng": 21.01501
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_9",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208032,
                    "lng": 21.019491
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_10",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.207339,
                    "lng": 21.013889
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_11",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206026,
                    "lng": 21.011517
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_12",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.207388,
                    "lng": 21.01074
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_13",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206785,
                    "lng": 21.007355
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_14",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.205227,
                    "lng": 21.008841
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_15",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.20263,
                    "lng": 21.009905
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_16",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.202166,
                    "lng": 21.008065
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_17",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.199205,
                    "lng": 21.009271
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_18",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.199146,
                    "lng": 21.005134
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_19",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.19785,
                    "lng": 21.004998
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_20",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.204318,
                    "lng": 21.001053
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_21",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.205608,
                    "lng": 20.999893
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_22",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.204826,
                    "lng": 21.003042
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_23",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206454,
                    "lng": 21.004241
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_24",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.197989,
                    "lng": 21.015325
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_25",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.197208,
                    "lng": 21.018194
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_26",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.200472,
                    "lng": 21.014328
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_27",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.201151,
                    "lng": 21.022592
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_28",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198854,
                    "lng": 21.012977
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_29",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.199743,
                    "lng": 21.01647
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_30",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198428,
                    "lng": 21.017885
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_31",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.202742,
                    "lng": 21.016829
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_32",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.20075,
                    "lng": 21.020079
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_33",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.205546,
                    "lng": 21.021793
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_34",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.20459,
                    "lng": 21.014063
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_35",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.203915,
                    "lng": 21.022401
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_36",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.19966,
                    "lng": 21.023483
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_37",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198207,
                    "lng": 21.022368
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_38",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206908,
                    "lng": 21.017486
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_39",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208587,
                    "lng": 21.01048
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      }
    ]
  }
}

Solution

The following figure illustrates the visual breakdown of the solution. The optimization algorithm addressed the problem efficiently, considering the provided parameters:

Sample solution showing tour overlap

However, as the breakdown demonstrates, all resulting tours overlap with each other and lack compactness. An overlap between tours can lead to decreased efficiency, delays, and could make navigation more complex, especially when using small vehicles to serve jobs across densely populated areas.

The following section contains the full solution JSON:

Click to expand/collapse the sample JSON
{
  "statistic": {
    "cost": 16898.844,
    "distance": 33607,
    "duration": 7672,
    "times": {
      "driving": 5272,
      "serving": 2400,
      "waiting": 0,
      "stopping": 0,
      "break": 0
    }
  },
  "tours": [
    {
      "vehicleId": "vehicle_1_3",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:03:35Z",
            "departure": "2023-12-06T07:04:35Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_3",
              "type": "delivery",
              "location": {
                "lat": 52.211604,
                "lng": 21.018408
              },
              "time": {
                "start": "2023-12-06T07:03:35Z",
                "end": "2023-12-06T07:04:35Z"
              }
            }
          ],
          "location": {
            "lat": 52.211604,
            "lng": 21.018408
          },
          "distance": 1680
        },
        {
          "time": {
            "arrival": "2023-12-06T07:06:01Z",
            "departure": "2023-12-06T07:07:01Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_9",
              "type": "delivery",
              "location": {
                "lat": 52.208032,
                "lng": 21.019491
              },
              "time": {
                "start": "2023-12-06T07:06:01Z",
                "end": "2023-12-06T07:07:01Z"
              }
            }
          ],
          "location": {
            "lat": 52.208032,
            "lng": 21.019491
          },
          "distance": 2367
        },
        {
          "time": {
            "arrival": "2023-12-06T07:08:08Z",
            "departure": "2023-12-06T07:09:08Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_38",
              "type": "delivery",
              "location": {
                "lat": 52.206908,
                "lng": 21.017486
              },
              "time": {
                "start": "2023-12-06T07:08:08Z",
                "end": "2023-12-06T07:09:08Z"
              }
            }
          ],
          "location": {
            "lat": 52.206908,
            "lng": 21.017486
          },
          "distance": 2663
        },
        {
          "time": {
            "arrival": "2023-12-06T07:12:00Z",
            "departure": "2023-12-06T07:13:00Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_35",
              "type": "delivery",
              "location": {
                "lat": 52.203915,
                "lng": 21.022401
              },
              "time": {
                "start": "2023-12-06T07:12:00Z",
                "end": "2023-12-06T07:13:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.203915,
            "lng": 21.022401
          },
          "distance": 3513
        },
        {
          "time": {
            "arrival": "2023-12-06T07:13:52Z",
            "departure": "2023-12-06T07:14:52Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_27",
              "type": "delivery",
              "location": {
                "lat": 52.201151,
                "lng": 21.022592
              },
              "time": {
                "start": "2023-12-06T07:13:52Z",
                "end": "2023-12-06T07:14:52Z"
              }
            }
          ],
          "location": {
            "lat": 52.201151,
            "lng": 21.022592
          },
          "distance": 3951
        },
        {
          "time": {
            "arrival": "2023-12-06T07:15:20Z",
            "departure": "2023-12-06T07:16:20Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_32",
              "type": "delivery",
              "location": {
                "lat": 52.20075,
                "lng": 21.020079
              },
              "time": {
                "start": "2023-12-06T07:15:20Z",
                "end": "2023-12-06T07:16:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.20075,
            "lng": 21.020079
          },
          "distance": 4128
        },
        {
          "time": {
            "arrival": "2023-12-06T07:17:41Z",
            "departure": "2023-12-06T07:18:41Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_26",
              "type": "delivery",
              "location": {
                "lat": 52.200472,
                "lng": 21.014328
              },
              "time": {
                "start": "2023-12-06T07:17:41Z",
                "end": "2023-12-06T07:18:41Z"
              }
            }
          ],
          "location": {
            "lat": 52.200472,
            "lng": 21.014328
          },
          "distance": 4598
        },
        {
          "time": {
            "arrival": "2023-12-06T07:20:30Z",
            "departure": "2023-12-06T07:21:30Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_31",
              "type": "delivery",
              "location": {
                "lat": 52.202742,
                "lng": 21.016829
              },
              "time": {
                "start": "2023-12-06T07:20:30Z",
                "end": "2023-12-06T07:21:30Z"
              }
            }
          ],
          "location": {
            "lat": 52.202742,
            "lng": 21.016829
          },
          "distance": 5157
        },
        {
          "time": {
            "arrival": "2023-12-06T07:22:29Z",
            "departure": "2023-12-06T07:23:29Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_34",
              "type": "delivery",
              "location": {
                "lat": 52.20459,
                "lng": 21.014063
              },
              "time": {
                "start": "2023-12-06T07:22:29Z",
                "end": "2023-12-06T07:23:29Z"
              }
            }
          ],
          "location": {
            "lat": 52.20459,
            "lng": 21.014063
          },
          "distance": 5510
        },
        {
          "time": {
            "arrival": "2023-12-06T07:24:50Z",
            "departure": "2023-12-06T07:25:50Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_11",
              "type": "delivery",
              "location": {
                "lat": 52.206026,
                "lng": 21.011517
              },
              "time": {
                "start": "2023-12-06T07:24:50Z",
                "end": "2023-12-06T07:25:50Z"
              }
            }
          ],
          "location": {
            "lat": 52.206026,
            "lng": 21.011517
          },
          "distance": 5877
        },
        {
          "time": {
            "arrival": "2023-12-06T07:29:03Z",
            "departure": "2023-12-06T07:29:03Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:29:03Z",
                "end": "2023-12-06T07:29:03Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 7394
        }
      ],
      "statistic": {
        "cost": 3720.486,
        "distance": 7394,
        "duration": 1743,
        "times": {
          "driving": 1143,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_4",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:02:37Z",
            "departure": "2023-12-06T07:03:37Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_7",
              "type": "delivery",
              "location": {
                "lat": 52.208443,
                "lng": 21.0039
              },
              "time": {
                "start": "2023-12-06T07:02:37Z",
                "end": "2023-12-06T07:03:37Z"
              }
            }
          ],
          "location": {
            "lat": 52.208443,
            "lng": 21.0039
          },
          "distance": 1086
        },
        {
          "time": {
            "arrival": "2023-12-06T07:04:47Z",
            "departure": "2023-12-06T07:05:47Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_6",
              "type": "delivery",
              "location": {
                "lat": 52.208418,
                "lng": 20.99924
              },
              "time": {
                "start": "2023-12-06T07:04:47Z",
                "end": "2023-12-06T07:05:47Z"
              }
            }
          ],
          "location": {
            "lat": 52.208418,
            "lng": 20.99924
          },
          "distance": 1463
        },
        {
          "time": {
            "arrival": "2023-12-06T07:07:15Z",
            "departure": "2023-12-06T07:08:15Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_23",
              "type": "delivery",
              "location": {
                "lat": 52.206454,
                "lng": 21.004241
              },
              "time": {
                "start": "2023-12-06T07:07:15Z",
                "end": "2023-12-06T07:08:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.206454,
            "lng": 21.004241
          },
          "distance": 2013
        },
        {
          "time": {
            "arrival": "2023-12-06T07:11:04Z",
            "departure": "2023-12-06T07:12:04Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_15",
              "type": "delivery",
              "location": {
                "lat": 52.20263,
                "lng": 21.009905
              },
              "time": {
                "start": "2023-12-06T07:11:04Z",
                "end": "2023-12-06T07:12:04Z"
              }
            }
          ],
          "location": {
            "lat": 52.20263,
            "lng": 21.009905
          },
          "distance": 2974
        },
        {
          "time": {
            "arrival": "2023-12-06T07:14:47Z",
            "departure": "2023-12-06T07:15:47Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_4",
              "type": "delivery",
              "location": {
                "lat": 52.196201,
                "lng": 21.003641
              },
              "time": {
                "start": "2023-12-06T07:14:47Z",
                "end": "2023-12-06T07:15:47Z"
              }
            }
          ],
          "location": {
            "lat": 52.196201,
            "lng": 21.003641
          },
          "distance": 4167
        },
        {
          "time": {
            "arrival": "2023-12-06T07:20:15Z",
            "departure": "2023-12-06T07:21:15Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_0",
              "type": "delivery",
              "location": {
                "lat": 52.198437,
                "lng": 21.020396
              },
              "time": {
                "start": "2023-12-06T07:20:15Z",
                "end": "2023-12-06T07:21:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.198437,
            "lng": 21.020396
          },
          "distance": 5915
        },
        {
          "time": {
            "arrival": "2023-12-06T07:22:41Z",
            "departure": "2023-12-06T07:23:41Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_30",
              "type": "delivery",
              "location": {
                "lat": 52.198428,
                "lng": 21.017885
              },
              "time": {
                "start": "2023-12-06T07:22:41Z",
                "end": "2023-12-06T07:23:41Z"
              }
            }
          ],
          "location": {
            "lat": 52.198428,
            "lng": 21.017885
          },
          "distance": 6231
        },
        {
          "time": {
            "arrival": "2023-12-06T07:24:50Z",
            "departure": "2023-12-06T07:25:50Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_24",
              "type": "delivery",
              "location": {
                "lat": 52.197989,
                "lng": 21.015325
              },
              "time": {
                "start": "2023-12-06T07:24:50Z",
                "end": "2023-12-06T07:25:50Z"
              }
            }
          ],
          "location": {
            "lat": 52.197989,
            "lng": 21.015325
          },
          "distance": 6533
        },
        {
          "time": {
            "arrival": "2023-12-06T07:26:37Z",
            "departure": "2023-12-06T07:27:37Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_28",
              "type": "delivery",
              "location": {
                "lat": 52.198854,
                "lng": 21.012977
              },
              "time": {
                "start": "2023-12-06T07:26:37Z",
                "end": "2023-12-06T07:27:37Z"
              }
            }
          ],
          "location": {
            "lat": 52.198854,
            "lng": 21.012977
          },
          "distance": 6772
        },
        {
          "time": {
            "arrival": "2023-12-06T07:30:24Z",
            "departure": "2023-12-06T07:31:24Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_2",
              "type": "delivery",
              "location": {
                "lat": 52.210221,
                "lng": 21.008033
              },
              "time": {
                "start": "2023-12-06T07:30:24Z",
                "end": "2023-12-06T07:31:24Z"
              }
            }
          ],
          "location": {
            "lat": 52.210221,
            "lng": 21.008033
          },
          "distance": 8141
        },
        {
          "time": {
            "arrival": "2023-12-06T07:34:03Z",
            "departure": "2023-12-06T07:34:03Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:34:03Z",
                "end": "2023-12-06T07:34:03Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 9082
        }
      ],
      "statistic": {
        "cost": 4565.086,
        "distance": 9082,
        "duration": 2043,
        "times": {
          "driving": 1443,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_1",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:02:42Z",
            "departure": "2023-12-06T07:03:42Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_12",
              "type": "delivery",
              "location": {
                "lat": 52.207388,
                "lng": 21.01074
              },
              "time": {
                "start": "2023-12-06T07:02:42Z",
                "end": "2023-12-06T07:03:42Z"
              }
            }
          ],
          "location": {
            "lat": 52.207388,
            "lng": 21.01074
          },
          "distance": 1165
        },
        {
          "time": {
            "arrival": "2023-12-06T07:03:50Z",
            "departure": "2023-12-06T07:04:50Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_39",
              "type": "delivery",
              "location": {
                "lat": 52.208587,
                "lng": 21.01048
              },
              "time": {
                "start": "2023-12-06T07:03:50Z",
                "end": "2023-12-06T07:04:50Z"
              }
            }
          ],
          "location": {
            "lat": 52.208587,
            "lng": 21.01048
          },
          "distance": 1230
        },
        {
          "time": {
            "arrival": "2023-12-06T07:06:25Z",
            "departure": "2023-12-06T07:07:25Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_10",
              "type": "delivery",
              "location": {
                "lat": 52.207339,
                "lng": 21.013889
              },
              "time": {
                "start": "2023-12-06T07:06:25Z",
                "end": "2023-12-06T07:07:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.207339,
            "lng": 21.013889
          },
          "distance": 1688
        },
        {
          "time": {
            "arrival": "2023-12-06T07:09:38Z",
            "departure": "2023-12-06T07:10:38Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_29",
              "type": "delivery",
              "location": {
                "lat": 52.199743,
                "lng": 21.01647
              },
              "time": {
                "start": "2023-12-06T07:09:38Z",
                "end": "2023-12-06T07:10:38Z"
              }
            }
          ],
          "location": {
            "lat": 52.199743,
            "lng": 21.01647
          },
          "distance": 2670
        },
        {
          "time": {
            "arrival": "2023-12-06T07:12:24Z",
            "departure": "2023-12-06T07:13:24Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_1",
              "type": "delivery",
              "location": {
                "lat": 52.196852,
                "lng": 21.01393
              },
              "time": {
                "start": "2023-12-06T07:12:24Z",
                "end": "2023-12-06T07:13:24Z"
              }
            }
          ],
          "location": {
            "lat": 52.196852,
            "lng": 21.01393
          },
          "distance": 3402
        },
        {
          "time": {
            "arrival": "2023-12-06T07:14:10Z",
            "departure": "2023-12-06T07:15:10Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_25",
              "type": "delivery",
              "location": {
                "lat": 52.197208,
                "lng": 21.018194
              },
              "time": {
                "start": "2023-12-06T07:14:10Z",
                "end": "2023-12-06T07:15:10Z"
              }
            }
          ],
          "location": {
            "lat": 52.197208,
            "lng": 21.018194
          },
          "distance": 3693
        },
        {
          "time": {
            "arrival": "2023-12-06T07:16:11Z",
            "departure": "2023-12-06T07:17:11Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_37",
              "type": "delivery",
              "location": {
                "lat": 52.198207,
                "lng": 21.022368
              },
              "time": {
                "start": "2023-12-06T07:16:11Z",
                "end": "2023-12-06T07:17:11Z"
              }
            }
          ],
          "location": {
            "lat": 52.198207,
            "lng": 21.022368
          },
          "distance": 3997
        },
        {
          "time": {
            "arrival": "2023-12-06T07:19:20Z",
            "departure": "2023-12-06T07:20:20Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_36",
              "type": "delivery",
              "location": {
                "lat": 52.19966,
                "lng": 21.023483
              },
              "time": {
                "start": "2023-12-06T07:19:20Z",
                "end": "2023-12-06T07:20:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.19966,
            "lng": 21.023483
          },
          "distance": 4626
        },
        {
          "time": {
            "arrival": "2023-12-06T07:22:22Z",
            "departure": "2023-12-06T07:23:22Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_33",
              "type": "delivery",
              "location": {
                "lat": 52.205546,
                "lng": 21.021793
              },
              "time": {
                "start": "2023-12-06T07:22:22Z",
                "end": "2023-12-06T07:23:22Z"
              }
            }
          ],
          "location": {
            "lat": 52.205546,
            "lng": 21.021793
          },
          "distance": 5469
        },
        {
          "time": {
            "arrival": "2023-12-06T07:25:49Z",
            "departure": "2023-12-06T07:26:49Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_8",
              "type": "delivery",
              "location": {
                "lat": 52.2099,
                "lng": 21.01501
              },
              "time": {
                "start": "2023-12-06T07:25:49Z",
                "end": "2023-12-06T07:26:49Z"
              }
            }
          ],
          "location": {
            "lat": 52.2099,
            "lng": 21.01501
          },
          "distance": 6393
        },
        {
          "time": {
            "arrival": "2023-12-06T07:30:34Z",
            "departure": "2023-12-06T07:30:34Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:30:34Z",
                "end": "2023-12-06T07:30:34Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 7796
        }
      ],
      "statistic": {
        "cost": 3921.668,
        "distance": 7796,
        "duration": 1834,
        "times": {
          "driving": 1234,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_2",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:02:36Z",
            "departure": "2023-12-06T07:03:36Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_14",
              "type": "delivery",
              "location": {
                "lat": 52.205227,
                "lng": 21.008841
              },
              "time": {
                "start": "2023-12-06T07:02:36Z",
                "end": "2023-12-06T07:03:36Z"
              }
            }
          ],
          "location": {
            "lat": 52.205227,
            "lng": 21.008841
          },
          "distance": 1297
        },
        {
          "time": {
            "arrival": "2023-12-06T07:05:15Z",
            "departure": "2023-12-06T07:06:15Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_13",
              "type": "delivery",
              "location": {
                "lat": 52.206785,
                "lng": 21.007355
              },
              "time": {
                "start": "2023-12-06T07:05:15Z",
                "end": "2023-12-06T07:06:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.206785,
            "lng": 21.007355
          },
          "distance": 1884
        },
        {
          "time": {
            "arrival": "2023-12-06T07:08:55Z",
            "departure": "2023-12-06T07:09:55Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_20",
              "type": "delivery",
              "location": {
                "lat": 52.204318,
                "lng": 21.001053
              },
              "time": {
                "start": "2023-12-06T07:08:55Z",
                "end": "2023-12-06T07:09:55Z"
              }
            }
          ],
          "location": {
            "lat": 52.204318,
            "lng": 21.001053
          },
          "distance": 2835
        },
        {
          "time": {
            "arrival": "2023-12-06T07:10:43Z",
            "departure": "2023-12-06T07:11:43Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_21",
              "type": "delivery",
              "location": {
                "lat": 52.205608,
                "lng": 20.999893
              },
              "time": {
                "start": "2023-12-06T07:10:43Z",
                "end": "2023-12-06T07:11:43Z"
              }
            }
          ],
          "location": {
            "lat": 52.205608,
            "lng": 20.999893
          },
          "distance": 3046
        },
        {
          "time": {
            "arrival": "2023-12-06T07:12:45Z",
            "departure": "2023-12-06T07:13:45Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_22",
              "type": "delivery",
              "location": {
                "lat": 52.204826,
                "lng": 21.003042
              },
              "time": {
                "start": "2023-12-06T07:12:45Z",
                "end": "2023-12-06T07:13:45Z"
              }
            }
          ],
          "location": {
            "lat": 52.204826,
            "lng": 21.003042
          },
          "distance": 3479
        },
        {
          "time": {
            "arrival": "2023-12-06T07:16:05Z",
            "departure": "2023-12-06T07:17:05Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_5",
              "type": "delivery",
              "location": {
                "lat": 52.201661,
                "lng": 21.0019
              },
              "time": {
                "start": "2023-12-06T07:16:05Z",
                "end": "2023-12-06T07:17:05Z"
              }
            }
          ],
          "location": {
            "lat": 52.201661,
            "lng": 21.0019
          },
          "distance": 4271
        },
        {
          "time": {
            "arrival": "2023-12-06T07:19:47Z",
            "departure": "2023-12-06T07:20:47Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_19",
              "type": "delivery",
              "location": {
                "lat": 52.19785,
                "lng": 21.004998
              },
              "time": {
                "start": "2023-12-06T07:19:47Z",
                "end": "2023-12-06T07:20:47Z"
              }
            }
          ],
          "location": {
            "lat": 52.19785,
            "lng": 21.004998
          },
          "distance": 5559
        },
        {
          "time": {
            "arrival": "2023-12-06T07:22:51Z",
            "departure": "2023-12-06T07:23:51Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_18",
              "type": "delivery",
              "location": {
                "lat": 52.199146,
                "lng": 21.005134
              },
              "time": {
                "start": "2023-12-06T07:22:51Z",
                "end": "2023-12-06T07:23:51Z"
              }
            }
          ],
          "location": {
            "lat": 52.199146,
            "lng": 21.005134
          },
          "distance": 6091
        },
        {
          "time": {
            "arrival": "2023-12-06T07:25:11Z",
            "departure": "2023-12-06T07:26:11Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_17",
              "type": "delivery",
              "location": {
                "lat": 52.199205,
                "lng": 21.009271
              },
              "time": {
                "start": "2023-12-06T07:25:11Z",
                "end": "2023-12-06T07:26:11Z"
              }
            }
          ],
          "location": {
            "lat": 52.199205,
            "lng": 21.009271
          },
          "distance": 6534
        },
        {
          "time": {
            "arrival": "2023-12-06T07:29:10Z",
            "departure": "2023-12-06T07:30:10Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_16",
              "type": "delivery",
              "location": {
                "lat": 52.202166,
                "lng": 21.008065
              },
              "time": {
                "start": "2023-12-06T07:29:10Z",
                "end": "2023-12-06T07:30:10Z"
              }
            }
          ],
          "location": {
            "lat": 52.202166,
            "lng": 21.008065
          },
          "distance": 7521
        },
        {
          "time": {
            "arrival": "2023-12-06T07:34:12Z",
            "departure": "2023-12-06T07:34:12Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:34:12Z",
                "end": "2023-12-06T07:34:12Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 9335
        }
      ],
      "statistic": {
        "cost": 4691.604,
        "distance": 9335,
        "duration": 2052,
        "times": {
          "driving": 1452,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    }
  ]
}

Use case 2: With the minimizeTourOverlap objective

To prioritize solutions where all tours cover distinct and compact geographical areas without overlapping, modify the vehicle routing problem in the following way:

  • Add the advancedObjectives feature as part of the experimentalFeatures array, as shown in the following snippet:

    "configuration": {
        "experimentalFeatures": [
          "advancedObjectives"
        ]
      }
  • Add the advancedObjectives array, including the minimizeTourOverlap objective, for example:

    "advancedObjectives": [
        [
          {
            "type": "minimizeUnassigned"
          }
        ],
        [
          {
            "type": "minimizeTours"
          }
        ],
        [
          {
            "type": "minimizeTourOverlap"
          }
        ],
        [
          {
            "type": "minimizeCost"
          }
        ]
      ]
📘

Note

Consider the following points about the objectives and their hierarchy, as provided in the previous example:

  • Placing the minimizeTourOverlap objective below the minimizeUnassigned and minimizeTours objectives ensures that the primary goals of minimizing unassigned jobs and using the optimal number of vehicles remain top priorities. This approach helps maintain predictable and efficient tour planning.
  • Placing the minimizeTourOverlap objective below the minimizeCost objective might have little effect in reducing tour overlap. In the example described, minimizeTourOverlap was intentionally placed above minimizeCost to ensure that reducing overlap remains a higher priority, while maintaining efficient and distinct routes.

See the full problem JSON for more information:

Click to expand/collapse the sample JSON
{
  "fleet": {
    "types": [
      {
        "id": "vehicle_1",
        "profile": "vehicle",
        "costs": {
          "fixed": 20,
          "distance": 0.5,
          "time": 0.002
        },
        "shifts": [
          {
            "start": {
              "time": "2023-12-06T09:00:00+02:00",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              }
            },
            "end": {
              "time": "2023-12-06T19:00:00+02:00",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              }
            }
          }
        ],
        "capacity": [
          10
        ],
        "amount": 4
      }
    ],
    "profiles": [
      {
        "type": "scooter",
        "name": "vehicle"
      }
    ]
  },
  "plan": {
    "jobs": [
      {
        "id": "Job_0",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198437,
                    "lng": 21.020396
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_1",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.196852,
                    "lng": 21.01393
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_2",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.210221,
                    "lng": 21.008033
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_3",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.211604,
                    "lng": 21.018408
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_4",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.196201,
                    "lng": 21.003641
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_5",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.201661,
                    "lng": 21.0019
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_6",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208418,
                    "lng": 20.99924
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_7",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208443,
                    "lng": 21.0039
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_8",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.2099,
                    "lng": 21.01501
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_9",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208032,
                    "lng": 21.019491
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_10",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.207339,
                    "lng": 21.013889
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_11",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206026,
                    "lng": 21.011517
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_12",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.207388,
                    "lng": 21.01074
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_13",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206785,
                    "lng": 21.007355
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_14",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.205227,
                    "lng": 21.008841
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_15",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.20263,
                    "lng": 21.009905
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_16",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.202166,
                    "lng": 21.008065
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_17",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.199205,
                    "lng": 21.009271
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_18",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.199146,
                    "lng": 21.005134
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_19",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.19785,
                    "lng": 21.004998
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_20",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.204318,
                    "lng": 21.001053
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_21",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.205608,
                    "lng": 20.999893
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_22",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.204826,
                    "lng": 21.003042
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_23",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206454,
                    "lng": 21.004241
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_24",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.197989,
                    "lng": 21.015325
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_25",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.197208,
                    "lng": 21.018194
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_26",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.200472,
                    "lng": 21.014328
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_27",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.201151,
                    "lng": 21.022592
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_28",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198854,
                    "lng": 21.012977
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_29",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.199743,
                    "lng": 21.01647
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_30",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198428,
                    "lng": 21.017885
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_31",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.202742,
                    "lng": 21.016829
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_32",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.20075,
                    "lng": 21.020079
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_33",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.205546,
                    "lng": 21.021793
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_34",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.20459,
                    "lng": 21.014063
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_35",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.203915,
                    "lng": 21.022401
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_36",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.19966,
                    "lng": 21.023483
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_37",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.198207,
                    "lng": 21.022368
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_38",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.206908,
                    "lng": 21.017486
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_39",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.208587,
                    "lng": 21.01048
                  },
                  "duration": 60
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      }
    ]
  },
  "configuration": {
    "experimentalFeatures": [
      "advancedObjectives"
    ]
  },
  "advancedObjectives": [
    [
      {
        "type": "minimizeUnassigned"
      }
    ],
    [
      {
        "type": "minimizeTours"
      }
    ],
    [
      {
        "type": "minimizeTourOverlap"
      }
    ],
    [
      {
        "type": "minimizeCost"
      }
    ]
  ]
}

Solution

Because the objective to minimize tour overlap was included in the problem parameters, the optimization algorithm reflected that by creating much more separated and compact tours, as shown in the following figure:

Sample solution with non-overlapping tours

This updated tour plan enabled the scooter vehicles to cover smaller, more manageable areas, likely reducing the likelihood of delays caused by traffic congestion or route confusion.

The following section contains the full solution JSON:

Click to expand/collapse the sample JSON
{
  "statistic": {
    "cost": 17541.021999999997,
    "distance": 34891,
    "duration": 7761,
    "times": {
      "driving": 5361,
      "serving": 2400,
      "waiting": 0,
      "stopping": 0,
      "break": 0
    }
  },
  "tours": [
    {
      "vehicleId": "vehicle_1_2",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:02:37Z",
            "departure": "2023-12-06T07:03:37Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_7",
              "type": "delivery",
              "location": {
                "lat": 52.208443,
                "lng": 21.0039
              },
              "time": {
                "start": "2023-12-06T07:02:37Z",
                "end": "2023-12-06T07:03:37Z"
              }
            }
          ],
          "location": {
            "lat": 52.208443,
            "lng": 21.0039
          },
          "distance": 1086
        },
        {
          "time": {
            "arrival": "2023-12-06T07:04:47Z",
            "departure": "2023-12-06T07:05:47Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_6",
              "type": "delivery",
              "location": {
                "lat": 52.208418,
                "lng": 20.99924
              },
              "time": {
                "start": "2023-12-06T07:04:47Z",
                "end": "2023-12-06T07:05:47Z"
              }
            }
          ],
          "location": {
            "lat": 52.208418,
            "lng": 20.99924
          },
          "distance": 1463
        },
        {
          "time": {
            "arrival": "2023-12-06T07:07:21Z",
            "departure": "2023-12-06T07:08:21Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_22",
              "type": "delivery",
              "location": {
                "lat": 52.204826,
                "lng": 21.003042
              },
              "time": {
                "start": "2023-12-06T07:07:21Z",
                "end": "2023-12-06T07:08:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.204826,
            "lng": 21.003042
          },
          "distance": 2006
        },
        {
          "time": {
            "arrival": "2023-12-06T07:09:55Z",
            "departure": "2023-12-06T07:10:55Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_20",
              "type": "delivery",
              "location": {
                "lat": 52.204318,
                "lng": 21.001053
              },
              "time": {
                "start": "2023-12-06T07:09:55Z",
                "end": "2023-12-06T07:10:55Z"
              }
            }
          ],
          "location": {
            "lat": 52.204318,
            "lng": 21.001053
          },
          "distance": 2491
        },
        {
          "time": {
            "arrival": "2023-12-06T07:11:43Z",
            "departure": "2023-12-06T07:12:43Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_21",
              "type": "delivery",
              "location": {
                "lat": 52.205608,
                "lng": 20.999893
              },
              "time": {
                "start": "2023-12-06T07:11:43Z",
                "end": "2023-12-06T07:12:43Z"
              }
            }
          ],
          "location": {
            "lat": 52.205608,
            "lng": 20.999893
          },
          "distance": 2702
        },
        {
          "time": {
            "arrival": "2023-12-06T07:13:39Z",
            "departure": "2023-12-06T07:14:39Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_23",
              "type": "delivery",
              "location": {
                "lat": 52.206454,
                "lng": 21.004241
              },
              "time": {
                "start": "2023-12-06T07:13:39Z",
                "end": "2023-12-06T07:14:39Z"
              }
            }
          ],
          "location": {
            "lat": 52.206454,
            "lng": 21.004241
          },
          "distance": 3142
        },
        {
          "time": {
            "arrival": "2023-12-06T07:16:43Z",
            "departure": "2023-12-06T07:17:43Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_5",
              "type": "delivery",
              "location": {
                "lat": 52.201661,
                "lng": 21.0019
              },
              "time": {
                "start": "2023-12-06T07:16:43Z",
                "end": "2023-12-06T07:17:43Z"
              }
            }
          ],
          "location": {
            "lat": 52.201661,
            "lng": 21.0019
          },
          "distance": 3906
        },
        {
          "time": {
            "arrival": "2023-12-06T07:18:59Z",
            "departure": "2023-12-06T07:19:59Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_16",
              "type": "delivery",
              "location": {
                "lat": 52.202166,
                "lng": 21.008065
              },
              "time": {
                "start": "2023-12-06T07:18:59Z",
                "end": "2023-12-06T07:19:59Z"
              }
            }
          ],
          "location": {
            "lat": 52.202166,
            "lng": 21.008065
          },
          "distance": 4589
        },
        {
          "time": {
            "arrival": "2023-12-06T07:23:45Z",
            "departure": "2023-12-06T07:24:45Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_14",
              "type": "delivery",
              "location": {
                "lat": 52.205227,
                "lng": 21.008841
              },
              "time": {
                "start": "2023-12-06T07:23:45Z",
                "end": "2023-12-06T07:24:45Z"
              }
            }
          ],
          "location": {
            "lat": 52.205227,
            "lng": 21.008841
          },
          "distance": 5778
        },
        {
          "time": {
            "arrival": "2023-12-06T07:26:24Z",
            "departure": "2023-12-06T07:27:24Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_13",
              "type": "delivery",
              "location": {
                "lat": 52.206785,
                "lng": 21.007355
              },
              "time": {
                "start": "2023-12-06T07:26:24Z",
                "end": "2023-12-06T07:27:24Z"
              }
            }
          ],
          "location": {
            "lat": 52.206785,
            "lng": 21.007355
          },
          "distance": 6365
        },
        {
          "time": {
            "arrival": "2023-12-06T07:32:04Z",
            "departure": "2023-12-06T07:32:04Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:32:04Z",
                "end": "2023-12-06T07:32:04Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 8166
        }
      ],
      "statistic": {
        "cost": 4106.848,
        "distance": 8166,
        "duration": 1924,
        "times": {
          "driving": 1324,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_3",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:05:33Z",
            "departure": "2023-12-06T07:06:33Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_0",
              "type": "delivery",
              "location": {
                "lat": 52.198437,
                "lng": 21.020396
              },
              "time": {
                "start": "2023-12-06T07:05:33Z",
                "end": "2023-12-06T07:06:33Z"
              }
            }
          ],
          "location": {
            "lat": 52.198437,
            "lng": 21.020396
          },
          "distance": 2642
        },
        {
          "time": {
            "arrival": "2023-12-06T07:07:59Z",
            "departure": "2023-12-06T07:08:59Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_30",
              "type": "delivery",
              "location": {
                "lat": 52.198428,
                "lng": 21.017885
              },
              "time": {
                "start": "2023-12-06T07:07:59Z",
                "end": "2023-12-06T07:08:59Z"
              }
            }
          ],
          "location": {
            "lat": 52.198428,
            "lng": 21.017885
          },
          "distance": 2958
        },
        {
          "time": {
            "arrival": "2023-12-06T07:09:50Z",
            "departure": "2023-12-06T07:10:50Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_25",
              "type": "delivery",
              "location": {
                "lat": 52.197208,
                "lng": 21.018194
              },
              "time": {
                "start": "2023-12-06T07:09:50Z",
                "end": "2023-12-06T07:10:50Z"
              }
            }
          ],
          "location": {
            "lat": 52.197208,
            "lng": 21.018194
          },
          "distance": 3267
        },
        {
          "time": {
            "arrival": "2023-12-06T07:11:51Z",
            "departure": "2023-12-06T07:12:51Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_37",
              "type": "delivery",
              "location": {
                "lat": 52.198207,
                "lng": 21.022368
              },
              "time": {
                "start": "2023-12-06T07:11:51Z",
                "end": "2023-12-06T07:12:51Z"
              }
            }
          ],
          "location": {
            "lat": 52.198207,
            "lng": 21.022368
          },
          "distance": 3571
        },
        {
          "time": {
            "arrival": "2023-12-06T07:15:00Z",
            "departure": "2023-12-06T07:16:00Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_36",
              "type": "delivery",
              "location": {
                "lat": 52.19966,
                "lng": 21.023483
              },
              "time": {
                "start": "2023-12-06T07:15:00Z",
                "end": "2023-12-06T07:16:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.19966,
            "lng": 21.023483
          },
          "distance": 4200
        },
        {
          "time": {
            "arrival": "2023-12-06T07:18:02Z",
            "departure": "2023-12-06T07:19:02Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_33",
              "type": "delivery",
              "location": {
                "lat": 52.205546,
                "lng": 21.021793
              },
              "time": {
                "start": "2023-12-06T07:18:02Z",
                "end": "2023-12-06T07:19:02Z"
              }
            }
          ],
          "location": {
            "lat": 52.205546,
            "lng": 21.021793
          },
          "distance": 5043
        },
        {
          "time": {
            "arrival": "2023-12-06T07:20:52Z",
            "departure": "2023-12-06T07:21:52Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_35",
              "type": "delivery",
              "location": {
                "lat": 52.203915,
                "lng": 21.022401
              },
              "time": {
                "start": "2023-12-06T07:20:52Z",
                "end": "2023-12-06T07:21:52Z"
              }
            }
          ],
          "location": {
            "lat": 52.203915,
            "lng": 21.022401
          },
          "distance": 5610
        },
        {
          "time": {
            "arrival": "2023-12-06T07:22:44Z",
            "departure": "2023-12-06T07:23:44Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_27",
              "type": "delivery",
              "location": {
                "lat": 52.201151,
                "lng": 21.022592
              },
              "time": {
                "start": "2023-12-06T07:22:44Z",
                "end": "2023-12-06T07:23:44Z"
              }
            }
          ],
          "location": {
            "lat": 52.201151,
            "lng": 21.022592
          },
          "distance": 6048
        },
        {
          "time": {
            "arrival": "2023-12-06T07:24:12Z",
            "departure": "2023-12-06T07:25:12Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_32",
              "type": "delivery",
              "location": {
                "lat": 52.20075,
                "lng": 21.020079
              },
              "time": {
                "start": "2023-12-06T07:24:12Z",
                "end": "2023-12-06T07:25:12Z"
              }
            }
          ],
          "location": {
            "lat": 52.20075,
            "lng": 21.020079
          },
          "distance": 6225
        },
        {
          "time": {
            "arrival": "2023-12-06T07:26:21Z",
            "departure": "2023-12-06T07:27:21Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_31",
              "type": "delivery",
              "location": {
                "lat": 52.202742,
                "lng": 21.016829
              },
              "time": {
                "start": "2023-12-06T07:26:21Z",
                "end": "2023-12-06T07:27:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.202742,
            "lng": 21.016829
          },
          "distance": 6632
        },
        {
          "time": {
            "arrival": "2023-12-06T07:31:35Z",
            "departure": "2023-12-06T07:31:35Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:31:35Z",
                "end": "2023-12-06T07:31:35Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 8718
        }
      ],
      "statistic": {
        "cost": 4382.79,
        "distance": 8718,
        "duration": 1895,
        "times": {
          "driving": 1295,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_4",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:02:42Z",
            "departure": "2023-12-06T07:03:42Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_12",
              "type": "delivery",
              "location": {
                "lat": 52.207388,
                "lng": 21.01074
              },
              "time": {
                "start": "2023-12-06T07:02:42Z",
                "end": "2023-12-06T07:03:42Z"
              }
            }
          ],
          "location": {
            "lat": 52.207388,
            "lng": 21.01074
          },
          "distance": 1165
        },
        {
          "time": {
            "arrival": "2023-12-06T07:03:50Z",
            "departure": "2023-12-06T07:04:50Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_39",
              "type": "delivery",
              "location": {
                "lat": 52.208587,
                "lng": 21.01048
              },
              "time": {
                "start": "2023-12-06T07:03:50Z",
                "end": "2023-12-06T07:04:50Z"
              }
            }
          ],
          "location": {
            "lat": 52.208587,
            "lng": 21.01048
          },
          "distance": 1230
        },
        {
          "time": {
            "arrival": "2023-12-06T07:06:25Z",
            "departure": "2023-12-06T07:07:25Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_10",
              "type": "delivery",
              "location": {
                "lat": 52.207339,
                "lng": 21.013889
              },
              "time": {
                "start": "2023-12-06T07:06:25Z",
                "end": "2023-12-06T07:07:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.207339,
            "lng": 21.013889
          },
          "distance": 1688
        },
        {
          "time": {
            "arrival": "2023-12-06T07:08:32Z",
            "departure": "2023-12-06T07:09:32Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_34",
              "type": "delivery",
              "location": {
                "lat": 52.20459,
                "lng": 21.014063
              },
              "time": {
                "start": "2023-12-06T07:08:32Z",
                "end": "2023-12-06T07:09:32Z"
              }
            }
          ],
          "location": {
            "lat": 52.20459,
            "lng": 21.014063
          },
          "distance": 2061
        },
        {
          "time": {
            "arrival": "2023-12-06T07:12:12Z",
            "departure": "2023-12-06T07:13:12Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_8",
              "type": "delivery",
              "location": {
                "lat": 52.2099,
                "lng": 21.01501
              },
              "time": {
                "start": "2023-12-06T07:12:12Z",
                "end": "2023-12-06T07:13:12Z"
              }
            }
          ],
          "location": {
            "lat": 52.2099,
            "lng": 21.01501
          },
          "distance": 2962
        },
        {
          "time": {
            "arrival": "2023-12-06T07:15:20Z",
            "departure": "2023-12-06T07:16:20Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_3",
              "type": "delivery",
              "location": {
                "lat": 52.211604,
                "lng": 21.018408
              },
              "time": {
                "start": "2023-12-06T07:15:20Z",
                "end": "2023-12-06T07:16:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.211604,
            "lng": 21.018408
          },
          "distance": 3710
        },
        {
          "time": {
            "arrival": "2023-12-06T07:17:46Z",
            "departure": "2023-12-06T07:18:46Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_9",
              "type": "delivery",
              "location": {
                "lat": 52.208032,
                "lng": 21.019491
              },
              "time": {
                "start": "2023-12-06T07:17:46Z",
                "end": "2023-12-06T07:18:46Z"
              }
            }
          ],
          "location": {
            "lat": 52.208032,
            "lng": 21.019491
          },
          "distance": 4397
        },
        {
          "time": {
            "arrival": "2023-12-06T07:19:53Z",
            "departure": "2023-12-06T07:20:53Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_38",
              "type": "delivery",
              "location": {
                "lat": 52.206908,
                "lng": 21.017486
              },
              "time": {
                "start": "2023-12-06T07:19:53Z",
                "end": "2023-12-06T07:20:53Z"
              }
            }
          ],
          "location": {
            "lat": 52.206908,
            "lng": 21.017486
          },
          "distance": 4693
        },
        {
          "time": {
            "arrival": "2023-12-06T07:22:32Z",
            "departure": "2023-12-06T07:23:32Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_11",
              "type": "delivery",
              "location": {
                "lat": 52.206026,
                "lng": 21.011517
              },
              "time": {
                "start": "2023-12-06T07:22:32Z",
                "end": "2023-12-06T07:23:32Z"
              }
            }
          ],
          "location": {
            "lat": 52.206026,
            "lng": 21.011517
          },
          "distance": 5262
        },
        {
          "time": {
            "arrival": "2023-12-06T07:25:43Z",
            "departure": "2023-12-06T07:26:43Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_2",
              "type": "delivery",
              "location": {
                "lat": 52.210221,
                "lng": 21.008033
              },
              "time": {
                "start": "2023-12-06T07:25:43Z",
                "end": "2023-12-06T07:26:43Z"
              }
            }
          ],
          "location": {
            "lat": 52.210221,
            "lng": 21.008033
          },
          "distance": 6064
        },
        {
          "time": {
            "arrival": "2023-12-06T07:29:22Z",
            "departure": "2023-12-06T07:29:22Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:29:22Z",
                "end": "2023-12-06T07:29:22Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 7005
        }
      ],
      "statistic": {
        "cost": 3526.024,
        "distance": 7005,
        "duration": 1762,
        "times": {
          "driving": 1162,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_1",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2023-12-06T07:00:00Z",
            "departure": "2023-12-06T07:00:00Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:00:00Z",
                "end": "2023-12-06T07:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2023-12-06T07:02:55Z",
            "departure": "2023-12-06T07:03:55Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_15",
              "type": "delivery",
              "location": {
                "lat": 52.20263,
                "lng": 21.009905
              },
              "time": {
                "start": "2023-12-06T07:02:55Z",
                "end": "2023-12-06T07:03:55Z"
              }
            }
          ],
          "location": {
            "lat": 52.20263,
            "lng": 21.009905
          },
          "distance": 1561
        },
        {
          "time": {
            "arrival": "2023-12-06T07:06:38Z",
            "departure": "2023-12-06T07:07:38Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_4",
              "type": "delivery",
              "location": {
                "lat": 52.196201,
                "lng": 21.003641
              },
              "time": {
                "start": "2023-12-06T07:06:38Z",
                "end": "2023-12-06T07:07:38Z"
              }
            }
          ],
          "location": {
            "lat": 52.196201,
            "lng": 21.003641
          },
          "distance": 2754
        },
        {
          "time": {
            "arrival": "2023-12-06T07:11:52Z",
            "departure": "2023-12-06T07:12:52Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_19",
              "type": "delivery",
              "location": {
                "lat": 52.19785,
                "lng": 21.004998
              },
              "time": {
                "start": "2023-12-06T07:11:52Z",
                "end": "2023-12-06T07:12:52Z"
              }
            }
          ],
          "location": {
            "lat": 52.19785,
            "lng": 21.004998
          },
          "distance": 4843
        },
        {
          "time": {
            "arrival": "2023-12-06T07:14:56Z",
            "departure": "2023-12-06T07:15:56Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_18",
              "type": "delivery",
              "location": {
                "lat": 52.199146,
                "lng": 21.005134
              },
              "time": {
                "start": "2023-12-06T07:14:56Z",
                "end": "2023-12-06T07:15:56Z"
              }
            }
          ],
          "location": {
            "lat": 52.199146,
            "lng": 21.005134
          },
          "distance": 5375
        },
        {
          "time": {
            "arrival": "2023-12-06T07:17:16Z",
            "departure": "2023-12-06T07:18:16Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_17",
              "type": "delivery",
              "location": {
                "lat": 52.199205,
                "lng": 21.009271
              },
              "time": {
                "start": "2023-12-06T07:17:16Z",
                "end": "2023-12-06T07:18:16Z"
              }
            }
          ],
          "location": {
            "lat": 52.199205,
            "lng": 21.009271
          },
          "distance": 5818
        },
        {
          "time": {
            "arrival": "2023-12-06T07:21:31Z",
            "departure": "2023-12-06T07:22:31Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_1",
              "type": "delivery",
              "location": {
                "lat": 52.196852,
                "lng": 21.01393
              },
              "time": {
                "start": "2023-12-06T07:21:31Z",
                "end": "2023-12-06T07:22:31Z"
              }
            }
          ],
          "location": {
            "lat": 52.196852,
            "lng": 21.01393
          },
          "distance": 7165
        },
        {
          "time": {
            "arrival": "2023-12-06T07:24:13Z",
            "departure": "2023-12-06T07:25:13Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_24",
              "type": "delivery",
              "location": {
                "lat": 52.197989,
                "lng": 21.015325
              },
              "time": {
                "start": "2023-12-06T07:24:13Z",
                "end": "2023-12-06T07:25:13Z"
              }
            }
          ],
          "location": {
            "lat": 52.197989,
            "lng": 21.015325
          },
          "distance": 7619
        },
        {
          "time": {
            "arrival": "2023-12-06T07:26:00Z",
            "departure": "2023-12-06T07:27:00Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_28",
              "type": "delivery",
              "location": {
                "lat": 52.198854,
                "lng": 21.012977
              },
              "time": {
                "start": "2023-12-06T07:26:00Z",
                "end": "2023-12-06T07:27:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.198854,
            "lng": 21.012977
          },
          "distance": 7858
        },
        {
          "time": {
            "arrival": "2023-12-06T07:27:50Z",
            "departure": "2023-12-06T07:28:50Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_29",
              "type": "delivery",
              "location": {
                "lat": 52.199743,
                "lng": 21.01647
              },
              "time": {
                "start": "2023-12-06T07:27:50Z",
                "end": "2023-12-06T07:28:50Z"
              }
            }
          ],
          "location": {
            "lat": 52.199743,
            "lng": 21.01647
          },
          "distance": 8170
        },
        {
          "time": {
            "arrival": "2023-12-06T07:30:10Z",
            "departure": "2023-12-06T07:31:10Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_26",
              "type": "delivery",
              "location": {
                "lat": 52.200472,
                "lng": 21.014328
              },
              "time": {
                "start": "2023-12-06T07:30:10Z",
                "end": "2023-12-06T07:31:10Z"
              }
            }
          ],
          "location": {
            "lat": 52.200472,
            "lng": 21.014328
          },
          "distance": 8554
        },
        {
          "time": {
            "arrival": "2023-12-06T07:36:20Z",
            "departure": "2023-12-06T07:36:20Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.213985,
                "lng": 21.004046
              },
              "time": {
                "start": "2023-12-06T07:36:20Z",
                "end": "2023-12-06T07:36:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.213985,
            "lng": 21.004046
          },
          "distance": 11002
        }
      ],
      "statistic": {
        "cost": 5525.36,
        "distance": 11002,
        "duration": 2180,
        "times": {
          "driving": 1580,
          "serving": 600,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    }
  ]
}

Next steps

  • For more information about formulating problems in the HERE Tour Planning API, see Problem.
  • For an in-depth exploration of the HERE Tour Planning API methods, endpoints, and parameters, see the API Reference.