Resolve equal solutions with tie-breaking objectives
When multiple solutions have similar costs or performance metrics, you need a way to choose the best one based on additional criteria. The tieBreak objective solves this problem by allowing you to define a primary objective with an acceptable threshold range, and then use secondary objectives to break ties between solutions that fall within that range.
This hierarchical approach helps you find solutions that not only meet your primary optimization goals but also improve other important operational aspects when multiple equally valid options exist. Specifically, this feature is valuable in scenarios where small cost increases are acceptable in exchange for other operational benefits, such as reduced tour overlap or better route compactness.
Sample business scenario: balance cost optimization with operational efficiency
Consider a delivery service operating in a densely populated commercial district of a major city. The service employs two drivers who typically handle up to 50 orders each during their tour.
To maintain profitability, the service focuses on minimizing tour costs. However, the challenge the service faces is that the route combinations have nearly identical costs ($2-3 difference), yet they vary significantly in operational efficiency. This can result in cost-optimal tours that overlap, with multiple vehicles covering the same area, leading to suboptimal routes, driver frustration, and an increased risk of delivery mix-ups.
With tieBreak objectives, the optimization algorithm delivers cost-efficient tours while accepting slight cost increase in exchange for an improvement in operational efficiency, which in this case, corresponds to more compact tours.
The following sections cover this scenario, showing how to configure tieBreak objectives within the context of a HERE Tour Planning API problem. The sections compare a base scenario without the tieBreak objective and one that includes it, demonstrating how to achieve fewer overlapping tours at the expense of a slightly increased yet acceptable tour cost.
Understand tieBreak parameters
Before exploring the sample scenarios, you must understand how to configure tieBreak objectives and then fit them within a problem JSON.
Note
This is an experimental feature in development. To enable this feature, add
advancedObjectivesto theexperimentalFeaturesarray in the problem specification. For more information, see Experimental features.
The following snippet provides a sample advancedObjectives configuration that includes a tieBreak objective, where the minimizeCost is the primary tiebreak objective, and the minimizeTourOverlap is the secondary tiebreak objective:
// Remaining problem components omitted for brevity
"advancedObjectives": [
[
{
"type": "minimizeUnassigned"
}
],
[
{
"type": "tieBreak",
"objectives": [
{
"objective": {
"type": "minimizeCost"
},
"tieThreshold": 0.04
},
{
"objective": {
"type": "minimizeTourOverlap"
},
"improvementThreshold": 0.05
}
]
}
]
]As the snippet shows, the tieBreak objective uses several key parameters to control the hierarchical optimization process:
tieThreshold: Sets the acceptable range for the primarytieBreakobjective's Key Performance Indicator (KPI). Solutions within this threshold are considered "tied" and eligible for secondary optimization. In other words, when setting this parameter, specify how many percentage points of the primary objective's KPI you are willing to compromise to achieve an improvement in the secondary objective.improvementThreshold: Sets the minimum improvement required in the secondarytieBreakobjective to justify selecting a different solution.
The previous snippet showcases also how to create a hierarchical objective configuration with a two-level optimization structure:
Level 1 - Primary Objective: minimizeUnassigned
- Priority: Highest
- Purpose: Ensures all jobs are assigned to vehicles if possible.
Level 2 - tieBreak Objective
This creates a hierarchical tie-breaking system within this level of priority:
Primary tiebreak objective: minimizeCost
tieThreshold: 0.04: If two solutions have costs within 4% of each other, they are considered "tied".- Example: Solutions with costs
100and103are considered equal (3% difference < 4% threshold).
Secondary tiebreak objective: minimizeTourOverlap
improvementThreshold: 0.05: To break a tie from theminimizeCostobjective, the overlap reduction must be at least 5% for any of the tied solutions.
Example: Minimize cost with tour overlap as a tiebreaker
This example sets the previously discussed use case in the context of a full problem JSON. In this specific use case, a delivery service operates two vehicles serving 49 jobs across a densely populated area.
The primary goal is to minimize total cost, but when multiple solutions have similar costs (within a five percent threshold), the algorithm should prefer solutions with minimal tour overlap to improve operational efficiency and reduce driver confusion.
The following sections compare approaches with and without the tieBreak objective to demonstrate how using this objective type can improve solution quality while maintaining cost effectiveness.
Scenario #1: Default optimization without tieBreak
The first scenario represents the baseline approach using multi-objective optimization without tie-breaking. The optimization uses three separate objective levels to minimize unassigned jobs, minimize cost, and minimize tour overlap, with the most important objective on the top, as shown in the following snippet:
"advancedObjectives": [
[
{
"type": "minimizeUnassigned"
}
],
[
{
"type": "minimizeCost"
}
],
[
{
"type": "minimizeTourOverlap"
}
]
]The following section shows the full problem JSON:
Click to expand/collapse the sample JSON
{
"configuration": {
"experimentalFeatures": [
"advancedObjectives"
]
},
"fleet": {
"types": [
{
"profile": "car",
"amount": 2,
"capacity": [
25
],
"costs": {
"time": 0.02,
"distance": 0.01,
"fixed": 10
},
"id": "vehicle_1",
"shifts": [
{
"start": {
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132913
},
"time": "2024-07-31T06:00:00+02:00"
},
"end": {
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132913
},
"time": "2024-07-31T19:00:00+02:00"
}
}
]
}
],
"profiles": [
{
"name": "car",
"type": "car"
}
]
},
"plan": {
"jobs": [
{
"id": "Job_1",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.63329,
"lng": 13.3138
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_2",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.62738533184079,
"lng": 13.3789
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_3",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.51635175288175,
"lng": 13.343661020679571
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_4",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.456,
"lng": 13.403260583257188
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_5",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.63256,
"lng": 13.37322
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_6",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.45810373923444,
"lng": 13.331808942475499
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_7",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.439442845393685,
"lng": 13.336118100685782
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_8",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.53213114000045,
"lng": 13.373517153879769
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_9",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.4823,
"lng": 13.4703
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_10",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.5313,
"lng": 13.35356
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_11",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.457844833248835,
"lng": 13.322525701671735
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_12",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.4329271708958,
"lng": 13.376558539227483
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_13",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.48128598928299,
"lng": 13.4944
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_14",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.580380893737356,
"lng": 13.304479222218161
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_15",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.444597854004236,
"lng": 13.42729037972278
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_16",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.5102,
"lng": 13.3444
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_17",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.48903177127663,
"lng": 13.495944342993262
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_18",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.62863,
"lng": 13.3621182
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_19",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.65831976801964,
"lng": 13.359646771531477
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_20",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.61955,
"lng": 13.29845
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_21",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.49949154428338,
"lng": 13.40857671284082
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_22",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.465255531970406,
"lng": 13.511537556934355
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_23",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.4312,
"lng": 13.45023
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_24",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.5293,
"lng": 13.38507204916371
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_25",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.6378,
"lng": 13.48675
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_26",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.53754,
"lng": 13.34152
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_27",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.48811100200862,
"lng": 13.376
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_28",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.4745,
"lng": 13.42
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_29",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.58884270031872,
"lng": 13.352068415230912
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_30",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.60079217247425,
"lng": 13.339813254226156
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_31",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.4779,
"lng": 13.5012
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_32",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.60066027234286,
"lng": 13.502741838681837
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_33",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.55437436208552,
"lng": 13.503142187091647
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_34",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.48446152479127,
"lng": 13.392004256315916
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_35",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.482203294624796,
"lng": 13.391214601891551
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_36",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.60842932011795,
"lng": 13.46922174529483
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_37",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.47651505101506,
"lng": 13.459944175857151
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_38",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.50488105730338,
"lng": 13.355333507786808
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_39",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.6029,
"lng": 13.3113
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_40",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.6543,
"lng": 13.39278
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_41",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.51508491755749,
"lng": 13.38
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_42",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.63313572894435,
"lng": 13.506488581249922
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_43",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.459450803409204,
"lng": 13.396015195980405
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_44",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.54433793446157,
"lng": 13.49579242116612
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_45",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.486517527979494,
"lng": 13.382057792236846
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_46",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.55606147412602,
"lng": 13.41517487839967
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_47",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.591995183321515,
"lng": 13.36000789424169
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_48",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.56223251898173,
"lng": 13.471999398223556
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_49",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.595251760429065,
"lng": 13.456764166098564
},
"duration": 30
}
],
"demand": [
1
]
}
]
}
}
]
},
"advancedObjectives": [
[
{
"type": "minimizeUnassigned"
}
],
[
{
"type": "minimizeCost"
}
],
[
{
"type": "minimizeTourOverlap"
}
]
]
}Solution
The following figure provides the visualization of the previous problem's solution that the optimization algorithm determined to be most optimal:
As demonstrated by the solution overview, all vehicles completed their tours without any unassigned jobs in a cost-efficient manner. While the solution achieves its primary objective, it does not necessarily represent the optimal trade-off for minimizing tour overlap. Specifically, the two tours exhibit substantial overlap with each other.
The following section shows the full solution JSON:
Click to expand/collapse the sample JSON
{
"statistic": {
"cost": 2575.08,
"distance": 203776,
"duration": 25866,
"times": {
"driving": 24396,
"serving": 1470,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"tours": [
{
"vehicleId": "vehicle_1_1",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2024-07-31T04:00:00Z",
"departure": "2024-07-31T04:00:00Z"
},
"load": [
25
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T04:00:00Z",
"end": "2024-07-31T04:00:00Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 0
},
{
"time": {
"arrival": "2024-07-31T04:08:02Z",
"departure": "2024-07-31T04:08:32Z"
},
"load": [
24
],
"activities": [
{
"jobId": "Job_2",
"type": "delivery",
"location": {
"lat": 52.62738533184079,
"lng": 13.3789
},
"time": {
"start": "2024-07-31T04:08:02Z",
"end": "2024-07-31T04:08:32Z"
}
}
],
"location": {
"lat": 52.62738533184079,
"lng": 13.3789
},
"distance": 3848
},
{
"time": {
"arrival": "2024-07-31T04:16:12Z",
"departure": "2024-07-31T04:16:42Z"
},
"load": [
23
],
"activities": [
{
"jobId": "Job_18",
"type": "delivery",
"location": {
"lat": 52.62863,
"lng": 13.3621182
},
"time": {
"start": "2024-07-31T04:16:12Z",
"end": "2024-07-31T04:16:42Z"
}
}
],
"location": {
"lat": 52.62863,
"lng": 13.3621182
},
"distance": 6630
},
{
"time": {
"arrival": "2024-07-31T04:19:36Z",
"departure": "2024-07-31T04:20:06Z"
},
"load": [
22
],
"activities": [
{
"jobId": "Job_5",
"type": "delivery",
"location": {
"lat": 52.63256,
"lng": 13.37322
},
"time": {
"start": "2024-07-31T04:19:36Z",
"end": "2024-07-31T04:20:06Z"
}
}
],
"location": {
"lat": 52.63256,
"lng": 13.37322
},
"distance": 7682
},
{
"time": {
"arrival": "2024-07-31T04:29:16Z",
"departure": "2024-07-31T04:29:46Z"
},
"load": [
21
],
"activities": [
{
"jobId": "Job_40",
"type": "delivery",
"location": {
"lat": 52.6543,
"lng": 13.39278
},
"time": {
"start": "2024-07-31T04:29:16Z",
"end": "2024-07-31T04:29:46Z"
}
}
],
"location": {
"lat": 52.6543,
"lng": 13.39278
},
"distance": 12685
},
{
"time": {
"arrival": "2024-07-31T04:34:47Z",
"departure": "2024-07-31T04:35:17Z"
},
"load": [
20
],
"activities": [
{
"jobId": "Job_19",
"type": "delivery",
"location": {
"lat": 52.65831976801964,
"lng": 13.359646771531477
},
"time": {
"start": "2024-07-31T04:34:47Z",
"end": "2024-07-31T04:35:17Z"
}
}
],
"location": {
"lat": 52.65831976801964,
"lng": 13.359646771531477
},
"distance": 15405
},
{
"time": {
"arrival": "2024-07-31T04:41:55Z",
"departure": "2024-07-31T04:42:25Z"
},
"load": [
19
],
"activities": [
{
"jobId": "Job_1",
"type": "delivery",
"location": {
"lat": 52.63329,
"lng": 13.3138
},
"time": {
"start": "2024-07-31T04:41:55Z",
"end": "2024-07-31T04:42:25Z"
}
}
],
"location": {
"lat": 52.63329,
"lng": 13.3138
},
"distance": 20277
},
{
"time": {
"arrival": "2024-07-31T04:48:35Z",
"departure": "2024-07-31T04:49:05Z"
},
"load": [
18
],
"activities": [
{
"jobId": "Job_20",
"type": "delivery",
"location": {
"lat": 52.61955,
"lng": 13.29845
},
"time": {
"start": "2024-07-31T04:48:35Z",
"end": "2024-07-31T04:49:05Z"
}
}
],
"location": {
"lat": 52.61955,
"lng": 13.29845
},
"distance": 23538
},
{
"time": {
"arrival": "2024-07-31T04:57:26Z",
"departure": "2024-07-31T04:57:56Z"
},
"load": [
17
],
"activities": [
{
"jobId": "Job_39",
"type": "delivery",
"location": {
"lat": 52.6029,
"lng": 13.3113
},
"time": {
"start": "2024-07-31T04:57:26Z",
"end": "2024-07-31T04:57:56Z"
}
}
],
"location": {
"lat": 52.6029,
"lng": 13.3113
},
"distance": 27911
},
{
"time": {
"arrival": "2024-07-31T05:03:23Z",
"departure": "2024-07-31T05:03:53Z"
},
"load": [
16
],
"activities": [
{
"jobId": "Job_30",
"type": "delivery",
"location": {
"lat": 52.60079217247425,
"lng": 13.339813254226156
},
"time": {
"start": "2024-07-31T05:03:23Z",
"end": "2024-07-31T05:03:53Z"
}
}
],
"location": {
"lat": 52.60079217247425,
"lng": 13.339813254226156
},
"distance": 30697
},
{
"time": {
"arrival": "2024-07-31T05:10:47Z",
"departure": "2024-07-31T05:11:17Z"
},
"load": [
15
],
"activities": [
{
"jobId": "Job_14",
"type": "delivery",
"location": {
"lat": 52.58038089373736,
"lng": 13.30447922221816
},
"time": {
"start": "2024-07-31T05:10:47Z",
"end": "2024-07-31T05:11:17Z"
}
}
],
"location": {
"lat": 52.58038089373736,
"lng": 13.30447922221816
},
"distance": 34566
},
{
"time": {
"arrival": "2024-07-31T05:23:45Z",
"departure": "2024-07-31T05:24:15Z"
},
"load": [
14
],
"activities": [
{
"jobId": "Job_26",
"type": "delivery",
"location": {
"lat": 52.53754,
"lng": 13.34152
},
"time": {
"start": "2024-07-31T05:23:45Z",
"end": "2024-07-31T05:24:15Z"
}
}
],
"location": {
"lat": 52.53754,
"lng": 13.34152
},
"distance": 42184
},
{
"time": {
"arrival": "2024-07-31T05:31:08Z",
"departure": "2024-07-31T05:31:38Z"
},
"load": [
13
],
"activities": [
{
"jobId": "Job_3",
"type": "delivery",
"location": {
"lat": 52.51635175288175,
"lng": 13.343661020679573
},
"time": {
"start": "2024-07-31T05:31:08Z",
"end": "2024-07-31T05:31:38Z"
}
}
],
"location": {
"lat": 52.51635175288175,
"lng": 13.343661020679573
},
"distance": 45476
},
{
"time": {
"arrival": "2024-07-31T05:36:47Z",
"departure": "2024-07-31T05:37:17Z"
},
"load": [
12
],
"activities": [
{
"jobId": "Job_16",
"type": "delivery",
"location": {
"lat": 52.5102,
"lng": 13.3444
},
"time": {
"start": "2024-07-31T05:36:47Z",
"end": "2024-07-31T05:37:17Z"
}
}
],
"location": {
"lat": 52.5102,
"lng": 13.3444
},
"distance": 47767
},
{
"time": {
"arrival": "2024-07-31T05:41:24Z",
"departure": "2024-07-31T05:41:54Z"
},
"load": [
11
],
"activities": [
{
"jobId": "Job_38",
"type": "delivery",
"location": {
"lat": 52.50488105730338,
"lng": 13.355333507786808
},
"time": {
"start": "2024-07-31T05:41:24Z",
"end": "2024-07-31T05:41:54Z"
}
}
],
"location": {
"lat": 52.50488105730338,
"lng": 13.355333507786808
},
"distance": 49207
},
{
"time": {
"arrival": "2024-07-31T05:48:53Z",
"departure": "2024-07-31T05:49:23Z"
},
"load": [
10
],
"activities": [
{
"jobId": "Job_27",
"type": "delivery",
"location": {
"lat": 52.48811100200862,
"lng": 13.376
},
"time": {
"start": "2024-07-31T05:48:53Z",
"end": "2024-07-31T05:49:23Z"
}
}
],
"location": {
"lat": 52.48811100200862,
"lng": 13.376
},
"distance": 52971
},
{
"time": {
"arrival": "2024-07-31T05:53:24Z",
"departure": "2024-07-31T05:53:54Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_45",
"type": "delivery",
"location": {
"lat": 52.486517527979494,
"lng": 13.382057792236846
},
"time": {
"start": "2024-07-31T05:53:24Z",
"end": "2024-07-31T05:53:54Z"
}
}
],
"location": {
"lat": 52.486517527979494,
"lng": 13.382057792236846
},
"distance": 54183
},
{
"time": {
"arrival": "2024-07-31T05:58:05Z",
"departure": "2024-07-31T05:58:35Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_34",
"type": "delivery",
"location": {
"lat": 52.48446152479127,
"lng": 13.392004256315916
},
"time": {
"start": "2024-07-31T05:58:05Z",
"end": "2024-07-31T05:58:35Z"
}
}
],
"location": {
"lat": 52.48446152479127,
"lng": 13.392004256315916
},
"distance": 55333
},
{
"time": {
"arrival": "2024-07-31T06:02:58Z",
"departure": "2024-07-31T06:03:28Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_35",
"type": "delivery",
"location": {
"lat": 52.4822032946248,
"lng": 13.391214601891551
},
"time": {
"start": "2024-07-31T06:02:58Z",
"end": "2024-07-31T06:03:28Z"
}
}
],
"location": {
"lat": 52.4822032946248,
"lng": 13.391214601891551
},
"distance": 56961
},
{
"time": {
"arrival": "2024-07-31T06:10:48Z",
"departure": "2024-07-31T06:11:18Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_28",
"type": "delivery",
"location": {
"lat": 52.4745,
"lng": 13.42
},
"time": {
"start": "2024-07-31T06:10:48Z",
"end": "2024-07-31T06:11:18Z"
}
}
],
"location": {
"lat": 52.4745,
"lng": 13.42
},
"distance": 60168
},
{
"time": {
"arrival": "2024-07-31T06:20:45Z",
"departure": "2024-07-31T06:21:15Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_21",
"type": "delivery",
"location": {
"lat": 52.49949154428338,
"lng": 13.40857671284082
},
"time": {
"start": "2024-07-31T06:20:45Z",
"end": "2024-07-31T06:21:15Z"
}
}
],
"location": {
"lat": 52.49949154428338,
"lng": 13.40857671284082
},
"distance": 64566
},
{
"time": {
"arrival": "2024-07-31T06:28:46Z",
"departure": "2024-07-31T06:29:16Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_41",
"type": "delivery",
"location": {
"lat": 52.51508491755749,
"lng": 13.38
},
"time": {
"start": "2024-07-31T06:28:46Z",
"end": "2024-07-31T06:29:16Z"
}
}
],
"location": {
"lat": 52.51508491755749,
"lng": 13.38
},
"distance": 68051
},
{
"time": {
"arrival": "2024-07-31T06:35:12Z",
"departure": "2024-07-31T06:35:42Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_24",
"type": "delivery",
"location": {
"lat": 52.5293,
"lng": 13.38507204916371
},
"time": {
"start": "2024-07-31T06:35:12Z",
"end": "2024-07-31T06:35:42Z"
}
}
],
"location": {
"lat": 52.5293,
"lng": 13.38507204916371
},
"distance": 70278
},
{
"time": {
"arrival": "2024-07-31T06:39:11Z",
"departure": "2024-07-31T06:39:41Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_8",
"type": "delivery",
"location": {
"lat": 52.53213114000045,
"lng": 13.373517153879767
},
"time": {
"start": "2024-07-31T06:39:11Z",
"end": "2024-07-31T06:39:41Z"
}
}
],
"location": {
"lat": 52.53213114000045,
"lng": 13.373517153879767
},
"distance": 71472
},
{
"time": {
"arrival": "2024-07-31T06:50:47Z",
"departure": "2024-07-31T06:51:17Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_46",
"type": "delivery",
"location": {
"lat": 52.55606147412602,
"lng": 13.41517487839967
},
"time": {
"start": "2024-07-31T06:50:47Z",
"end": "2024-07-31T06:51:17Z"
}
}
],
"location": {
"lat": 52.55606147412602,
"lng": 13.41517487839967
},
"distance": 76725
},
{
"time": {
"arrival": "2024-07-31T07:07:25Z",
"departure": "2024-07-31T07:07:55Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_47",
"type": "delivery",
"location": {
"lat": 52.591995183321515,
"lng": 13.36000789424169
},
"time": {
"start": "2024-07-31T07:07:25Z",
"end": "2024-07-31T07:07:55Z"
}
}
],
"location": {
"lat": 52.591995183321515,
"lng": 13.36000789424169
},
"distance": 85000
},
{
"time": {
"arrival": "2024-07-31T07:16:06Z",
"departure": "2024-07-31T07:16:06Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T07:16:06Z",
"end": "2024-07-31T07:16:06Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 88604
}
],
"statistic": {
"cost": 1131.36,
"distance": 88604,
"duration": 11766,
"times": {
"driving": 11016,
"serving": 750,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_2",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2024-07-31T04:00:00Z",
"departure": "2024-07-31T04:00:00Z"
},
"load": [
24
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T04:00:00Z",
"end": "2024-07-31T04:00:00Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 0
},
{
"time": {
"arrival": "2024-07-31T04:13:07Z",
"departure": "2024-07-31T04:13:37Z"
},
"load": [
23
],
"activities": [
{
"jobId": "Job_29",
"type": "delivery",
"location": {
"lat": 52.58884270031872,
"lng": 13.352068415230912
},
"time": {
"start": "2024-07-31T04:13:07Z",
"end": "2024-07-31T04:13:37Z"
}
}
],
"location": {
"lat": 52.58884270031872,
"lng": 13.352068415230912
},
"distance": 5493
},
{
"time": {
"arrival": "2024-07-31T04:31:05Z",
"departure": "2024-07-31T04:31:35Z"
},
"load": [
22
],
"activities": [
{
"jobId": "Job_10",
"type": "delivery",
"location": {
"lat": 52.5313,
"lng": 13.35356
},
"time": {
"start": "2024-07-31T04:31:05Z",
"end": "2024-07-31T04:31:35Z"
}
}
],
"location": {
"lat": 52.5313,
"lng": 13.35356
},
"distance": 13798
},
{
"time": {
"arrival": "2024-07-31T04:48:18Z",
"departure": "2024-07-31T04:48:48Z"
},
"load": [
21
],
"activities": [
{
"jobId": "Job_11",
"type": "delivery",
"location": {
"lat": 52.457844833248835,
"lng": 13.322525701671736
},
"time": {
"start": "2024-07-31T04:48:18Z",
"end": "2024-07-31T04:48:48Z"
}
}
],
"location": {
"lat": 52.457844833248835,
"lng": 13.322525701671736
},
"distance": 24686
},
{
"time": {
"arrival": "2024-07-31T04:51:45Z",
"departure": "2024-07-31T04:52:15Z"
},
"load": [
20
],
"activities": [
{
"jobId": "Job_6",
"type": "delivery",
"location": {
"lat": 52.45810373923444,
"lng": 13.3318089424755
},
"time": {
"start": "2024-07-31T04:51:45Z",
"end": "2024-07-31T04:52:15Z"
}
}
],
"location": {
"lat": 52.45810373923444,
"lng": 13.3318089424755
},
"distance": 25874
},
{
"time": {
"arrival": "2024-07-31T04:57:58Z",
"departure": "2024-07-31T04:58:28Z"
},
"load": [
19
],
"activities": [
{
"jobId": "Job_7",
"type": "delivery",
"location": {
"lat": 52.439442845393685,
"lng": 13.336118100685782
},
"time": {
"start": "2024-07-31T04:57:58Z",
"end": "2024-07-31T04:58:28Z"
}
}
],
"location": {
"lat": 52.439442845393685,
"lng": 13.336118100685782
},
"distance": 28655
},
{
"time": {
"arrival": "2024-07-31T05:06:13Z",
"departure": "2024-07-31T05:06:43Z"
},
"load": [
18
],
"activities": [
{
"jobId": "Job_12",
"type": "delivery",
"location": {
"lat": 52.4329271708958,
"lng": 13.376558539227483
},
"time": {
"start": "2024-07-31T05:06:13Z",
"end": "2024-07-31T05:06:43Z"
}
}
],
"location": {
"lat": 52.4329271708958,
"lng": 13.376558539227483
},
"distance": 32940
},
{
"time": {
"arrival": "2024-07-31T05:14:54Z",
"departure": "2024-07-31T05:15:24Z"
},
"load": [
17
],
"activities": [
{
"jobId": "Job_43",
"type": "delivery",
"location": {
"lat": 52.4594508034092,
"lng": 13.396015195980404
},
"time": {
"start": "2024-07-31T05:14:54Z",
"end": "2024-07-31T05:15:24Z"
}
}
],
"location": {
"lat": 52.4594508034092,
"lng": 13.396015195980404
},
"distance": 37063
},
{
"time": {
"arrival": "2024-07-31T05:17:28Z",
"departure": "2024-07-31T05:17:58Z"
},
"load": [
16
],
"activities": [
{
"jobId": "Job_4",
"type": "delivery",
"location": {
"lat": 52.456,
"lng": 13.403260583257188
},
"time": {
"start": "2024-07-31T05:17:28Z",
"end": "2024-07-31T05:17:58Z"
}
}
],
"location": {
"lat": 52.456,
"lng": 13.403260583257188
},
"distance": 37965
},
{
"time": {
"arrival": "2024-07-31T05:24:52Z",
"departure": "2024-07-31T05:25:22Z"
},
"load": [
15
],
"activities": [
{
"jobId": "Job_15",
"type": "delivery",
"location": {
"lat": 52.44459785400424,
"lng": 13.42729037972278
},
"time": {
"start": "2024-07-31T05:24:52Z",
"end": "2024-07-31T05:25:22Z"
}
}
],
"location": {
"lat": 52.44459785400424,
"lng": 13.42729037972278
},
"distance": 41865
},
{
"time": {
"arrival": "2024-07-31T05:33:20Z",
"departure": "2024-07-31T05:33:50Z"
},
"load": [
14
],
"activities": [
{
"jobId": "Job_23",
"type": "delivery",
"location": {
"lat": 52.4312,
"lng": 13.45023
},
"time": {
"start": "2024-07-31T05:33:20Z",
"end": "2024-07-31T05:33:50Z"
}
}
],
"location": {
"lat": 52.4312,
"lng": 13.45023
},
"distance": 46176
},
{
"time": {
"arrival": "2024-07-31T05:46:24Z",
"departure": "2024-07-31T05:46:54Z"
},
"load": [
13
],
"activities": [
{
"jobId": "Job_37",
"type": "delivery",
"location": {
"lat": 52.47651505101506,
"lng": 13.459944175857151
},
"time": {
"start": "2024-07-31T05:46:24Z",
"end": "2024-07-31T05:46:54Z"
}
}
],
"location": {
"lat": 52.47651505101506,
"lng": 13.459944175857151
},
"distance": 54456
},
{
"time": {
"arrival": "2024-07-31T05:53:00Z",
"departure": "2024-07-31T05:53:30Z"
},
"load": [
12
],
"activities": [
{
"jobId": "Job_9",
"type": "delivery",
"location": {
"lat": 52.4823,
"lng": 13.4703
},
"time": {
"start": "2024-07-31T05:53:00Z",
"end": "2024-07-31T05:53:30Z"
}
}
],
"location": {
"lat": 52.4823,
"lng": 13.4703
},
"distance": 57168
},
{
"time": {
"arrival": "2024-07-31T06:03:43Z",
"departure": "2024-07-31T06:04:13Z"
},
"load": [
11
],
"activities": [
{
"jobId": "Job_13",
"type": "delivery",
"location": {
"lat": 52.48128598928299,
"lng": 13.4944
},
"time": {
"start": "2024-07-31T06:03:43Z",
"end": "2024-07-31T06:04:13Z"
}
}
],
"location": {
"lat": 52.48128598928299,
"lng": 13.4944
},
"distance": 59295
},
{
"time": {
"arrival": "2024-07-31T06:18:48Z",
"departure": "2024-07-31T06:19:18Z"
},
"load": [
10
],
"activities": [
{
"jobId": "Job_22",
"type": "delivery",
"location": {
"lat": 52.465255531970406,
"lng": 13.511537556934355
},
"time": {
"start": "2024-07-31T06:18:48Z",
"end": "2024-07-31T06:19:18Z"
}
}
],
"location": {
"lat": 52.465255531970406,
"lng": 13.511537556934355
},
"distance": 63948
},
{
"time": {
"arrival": "2024-07-31T06:26:07Z",
"departure": "2024-07-31T06:26:37Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_31",
"type": "delivery",
"location": {
"lat": 52.4779,
"lng": 13.5012
},
"time": {
"start": "2024-07-31T06:26:07Z",
"end": "2024-07-31T06:26:37Z"
}
}
],
"location": {
"lat": 52.4779,
"lng": 13.5012
},
"distance": 66449
},
{
"time": {
"arrival": "2024-07-31T06:31:30Z",
"departure": "2024-07-31T06:32:00Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_17",
"type": "delivery",
"location": {
"lat": 52.48903177127663,
"lng": 13.495944342993262
},
"time": {
"start": "2024-07-31T06:31:30Z",
"end": "2024-07-31T06:32:00Z"
}
}
],
"location": {
"lat": 52.48903177127663,
"lng": 13.495944342993262
},
"distance": 67814
},
{
"time": {
"arrival": "2024-07-31T06:45:55Z",
"departure": "2024-07-31T06:46:25Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_44",
"type": "delivery",
"location": {
"lat": 52.54433793446157,
"lng": 13.49579242116612
},
"time": {
"start": "2024-07-31T06:45:55Z",
"end": "2024-07-31T06:46:25Z"
}
}
],
"location": {
"lat": 52.54433793446157,
"lng": 13.49579242116612
},
"distance": 75952
},
{
"time": {
"arrival": "2024-07-31T06:50:36Z",
"departure": "2024-07-31T06:51:06Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_33",
"type": "delivery",
"location": {
"lat": 52.55437436208552,
"lng": 13.503142187091647
},
"time": {
"start": "2024-07-31T06:50:36Z",
"end": "2024-07-31T06:51:06Z"
}
}
],
"location": {
"lat": 52.55437436208552,
"lng": 13.503142187091647
},
"distance": 77960
},
{
"time": {
"arrival": "2024-07-31T06:57:38Z",
"departure": "2024-07-31T06:58:08Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_48",
"type": "delivery",
"location": {
"lat": 52.56223251898173,
"lng": 13.471999398223556
},
"time": {
"start": "2024-07-31T06:57:38Z",
"end": "2024-07-31T06:58:08Z"
}
}
],
"location": {
"lat": 52.56223251898173,
"lng": 13.471999398223556
},
"distance": 81957
},
{
"time": {
"arrival": "2024-07-31T07:06:00Z",
"departure": "2024-07-31T07:06:30Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_32",
"type": "delivery",
"location": {
"lat": 52.60066027234286,
"lng": 13.502741838681835
},
"time": {
"start": "2024-07-31T07:06:00Z",
"end": "2024-07-31T07:06:30Z"
}
}
],
"location": {
"lat": 52.60066027234286,
"lng": 13.502741838681835
},
"distance": 87622
},
{
"time": {
"arrival": "2024-07-31T07:19:25Z",
"departure": "2024-07-31T07:19:55Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_42",
"type": "delivery",
"location": {
"lat": 52.63313572894435,
"lng": 13.506488581249922
},
"time": {
"start": "2024-07-31T07:19:25Z",
"end": "2024-07-31T07:19:55Z"
}
}
],
"location": {
"lat": 52.63313572894435,
"lng": 13.506488581249922
},
"distance": 96453
},
{
"time": {
"arrival": "2024-07-31T07:24:05Z",
"departure": "2024-07-31T07:24:35Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_25",
"type": "delivery",
"location": {
"lat": 52.6378,
"lng": 13.48675
},
"time": {
"start": "2024-07-31T07:24:05Z",
"end": "2024-07-31T07:24:35Z"
}
}
],
"location": {
"lat": 52.6378,
"lng": 13.48675
},
"distance": 98012
},
{
"time": {
"arrival": "2024-07-31T07:33:32Z",
"departure": "2024-07-31T07:34:02Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_36",
"type": "delivery",
"location": {
"lat": 52.60842932011795,
"lng": 13.46922174529483
},
"time": {
"start": "2024-07-31T07:33:32Z",
"end": "2024-07-31T07:34:02Z"
}
}
],
"location": {
"lat": 52.60842932011795,
"lng": 13.46922174529483
},
"distance": 103248
},
{
"time": {
"arrival": "2024-07-31T07:39:20Z",
"departure": "2024-07-31T07:39:50Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_49",
"type": "delivery",
"location": {
"lat": 52.595251760429065,
"lng": 13.456764166098564
},
"time": {
"start": "2024-07-31T07:39:20Z",
"end": "2024-07-31T07:39:50Z"
}
}
],
"location": {
"lat": 52.595251760429065,
"lng": 13.456764166098564
},
"distance": 106092
},
{
"time": {
"arrival": "2024-07-31T07:55:00Z",
"departure": "2024-07-31T07:55:00Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T07:55:00Z",
"end": "2024-07-31T07:55:00Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 115172
}
],
"statistic": {
"cost": 1443.72,
"distance": 115172,
"duration": 14100,
"times": {
"driving": 13380,
"serving": 720,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
}
]
}Scenario #2: Hierarchical objectives with tiebreaker
This scenario demonstrates the enhanced approach using the tieBreak objective to create intelligent trade-offs between cost and tour overlap. When multiple solutions have costs within five percent of each other, the algorithm selects the one with better tour overlap performance.
This scenario demonstrates the exact problem configuration as shown in the previous scenario, with the following exception:
"advancedObjectives": [
[
{
"type": "minimizeUnassigned"
}
],
[
{
"type": "tieBreak",
"objectives": [
{
"objective": {
"type": "minimizeCost"
},
"tieThreshold": 0.04
},
{
"objective": {
"type": "minimizeTourOverlap"
},
"improvementThreshold": 0.05
}
]
}
]
]The key difference in this configuration is the tieBreak objective structure:
- Primary objective:
minimizeCostwith atieThresholdof0.04(four percent) - Secondary objective:
minimizeTourOverlapwith animprovementThresholdof0.05(five percent)
Because of that change, the algorithm first finds solutions that minimize cost. If multiple solutions have costs within four percent of the best cost, the algorithm then selects the one with the best tour overlap performance, provided the improvement meets the five percent improvement threshold.
Solution
The following figure visualizes the solution of the problem with the tieBreak objective:
The approach with tie-breaking produces a solution that balances cost efficiency with operational benefits:
- Cost impact: The enhanced solution might incur a slightly higher total cost, but still remains within the four percent threshold. Specifically, the solution that includes the
tieBreakobjective costs2629, compared to2575for the more cost-efficient alternative, representing an increase of only 2.01%, which is well within the acceptable cost tie threshold. - Tour overlap improvement: The solution demonstrates no overlap between vehicle tours, leading to clear territorial boundaries and potentially more efficient operations. The following figure shows the comparison in terms of tour overlap between the two solutions:

- Operational benefits: Reduced tour overlap translates to less driver confusion, decreased chance of customer service conflicts, and improved overall fleet coordination.
The following section shows the full solution JSON:
Click to expand/collapse the sample JSON
{
"statistic": {
"cost": 2629.0299999999997,
"distance": 207879,
"duration": 26512,
"times": {
"driving": 25042,
"serving": 1470,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"tours": [
{
"vehicleId": "vehicle_1_1",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2024-07-31T04:00:00Z",
"departure": "2024-07-31T04:00:00Z"
},
"load": [
24
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T04:00:00Z",
"end": "2024-07-31T04:00:00Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 0
},
{
"time": {
"arrival": "2024-07-31T04:18:41Z",
"departure": "2024-07-31T04:19:11Z"
},
"load": [
23
],
"activities": [
{
"jobId": "Job_46",
"type": "delivery",
"location": {
"lat": 52.55606147412602,
"lng": 13.41517487839967
},
"time": {
"start": "2024-07-31T04:18:41Z",
"end": "2024-07-31T04:19:11Z"
}
}
],
"location": {
"lat": 52.55606147412602,
"lng": 13.41517487839967
},
"distance": 10885
},
{
"time": {
"arrival": "2024-07-31T04:34:09Z",
"departure": "2024-07-31T04:34:39Z"
},
"load": [
22
],
"activities": [
{
"jobId": "Job_21",
"type": "delivery",
"location": {
"lat": 52.49949154428338,
"lng": 13.40857671284082
},
"time": {
"start": "2024-07-31T04:34:09Z",
"end": "2024-07-31T04:34:39Z"
}
}
],
"location": {
"lat": 52.49949154428338,
"lng": 13.40857671284082
},
"distance": 18440
},
{
"time": {
"arrival": "2024-07-31T04:41:33Z",
"departure": "2024-07-31T04:42:03Z"
},
"load": [
21
],
"activities": [
{
"jobId": "Job_34",
"type": "delivery",
"location": {
"lat": 52.48446152479127,
"lng": 13.392004256315916
},
"time": {
"start": "2024-07-31T04:41:33Z",
"end": "2024-07-31T04:42:03Z"
}
}
],
"location": {
"lat": 52.48446152479127,
"lng": 13.392004256315916
},
"distance": 21185
},
{
"time": {
"arrival": "2024-07-31T04:46:26Z",
"departure": "2024-07-31T04:46:56Z"
},
"load": [
20
],
"activities": [
{
"jobId": "Job_35",
"type": "delivery",
"location": {
"lat": 52.4822032946248,
"lng": 13.391214601891551
},
"time": {
"start": "2024-07-31T04:46:26Z",
"end": "2024-07-31T04:46:56Z"
}
}
],
"location": {
"lat": 52.4822032946248,
"lng": 13.391214601891551
},
"distance": 22813
},
{
"time": {
"arrival": "2024-07-31T04:54:18Z",
"departure": "2024-07-31T04:54:48Z"
},
"load": [
19
],
"activities": [
{
"jobId": "Job_28",
"type": "delivery",
"location": {
"lat": 52.4745,
"lng": 13.42
},
"time": {
"start": "2024-07-31T04:54:18Z",
"end": "2024-07-31T04:54:48Z"
}
}
],
"location": {
"lat": 52.4745,
"lng": 13.42
},
"distance": 26020
},
{
"time": {
"arrival": "2024-07-31T05:03:33Z",
"departure": "2024-07-31T05:04:03Z"
},
"load": [
18
],
"activities": [
{
"jobId": "Job_4",
"type": "delivery",
"location": {
"lat": 52.456,
"lng": 13.403260583257188
},
"time": {
"start": "2024-07-31T05:03:33Z",
"end": "2024-07-31T05:04:03Z"
}
}
],
"location": {
"lat": 52.456,
"lng": 13.403260583257188
},
"distance": 30182
},
{
"time": {
"arrival": "2024-07-31T05:06:11Z",
"departure": "2024-07-31T05:06:41Z"
},
"load": [
17
],
"activities": [
{
"jobId": "Job_43",
"type": "delivery",
"location": {
"lat": 52.4594508034092,
"lng": 13.396015195980404
},
"time": {
"start": "2024-07-31T05:06:11Z",
"end": "2024-07-31T05:06:41Z"
}
}
],
"location": {
"lat": 52.4594508034092,
"lng": 13.396015195980404
},
"distance": 31084
},
{
"time": {
"arrival": "2024-07-31T05:14:13Z",
"departure": "2024-07-31T05:14:43Z"
},
"load": [
16
],
"activities": [
{
"jobId": "Job_12",
"type": "delivery",
"location": {
"lat": 52.4329271708958,
"lng": 13.376558539227483
},
"time": {
"start": "2024-07-31T05:14:13Z",
"end": "2024-07-31T05:14:43Z"
}
}
],
"location": {
"lat": 52.4329271708958,
"lng": 13.376558539227483
},
"distance": 35146
},
{
"time": {
"arrival": "2024-07-31T05:23:47Z",
"departure": "2024-07-31T05:24:17Z"
},
"load": [
15
],
"activities": [
{
"jobId": "Job_15",
"type": "delivery",
"location": {
"lat": 52.44459785400424,
"lng": 13.42729037972278
},
"time": {
"start": "2024-07-31T05:23:47Z",
"end": "2024-07-31T05:24:17Z"
}
}
],
"location": {
"lat": 52.44459785400424,
"lng": 13.42729037972278
},
"distance": 40167
},
{
"time": {
"arrival": "2024-07-31T05:32:15Z",
"departure": "2024-07-31T05:32:45Z"
},
"load": [
14
],
"activities": [
{
"jobId": "Job_23",
"type": "delivery",
"location": {
"lat": 52.4312,
"lng": 13.45023
},
"time": {
"start": "2024-07-31T05:32:15Z",
"end": "2024-07-31T05:32:45Z"
}
}
],
"location": {
"lat": 52.4312,
"lng": 13.45023
},
"distance": 44478
},
{
"time": {
"arrival": "2024-07-31T05:45:19Z",
"departure": "2024-07-31T05:45:49Z"
},
"load": [
13
],
"activities": [
{
"jobId": "Job_37",
"type": "delivery",
"location": {
"lat": 52.47651505101506,
"lng": 13.459944175857151
},
"time": {
"start": "2024-07-31T05:45:19Z",
"end": "2024-07-31T05:45:49Z"
}
}
],
"location": {
"lat": 52.47651505101506,
"lng": 13.459944175857151
},
"distance": 52758
},
{
"time": {
"arrival": "2024-07-31T05:51:55Z",
"departure": "2024-07-31T05:52:25Z"
},
"load": [
12
],
"activities": [
{
"jobId": "Job_9",
"type": "delivery",
"location": {
"lat": 52.4823,
"lng": 13.4703
},
"time": {
"start": "2024-07-31T05:51:55Z",
"end": "2024-07-31T05:52:25Z"
}
}
],
"location": {
"lat": 52.4823,
"lng": 13.4703
},
"distance": 55470
},
{
"time": {
"arrival": "2024-07-31T06:02:38Z",
"departure": "2024-07-31T06:03:08Z"
},
"load": [
11
],
"activities": [
{
"jobId": "Job_13",
"type": "delivery",
"location": {
"lat": 52.48128598928299,
"lng": 13.4944
},
"time": {
"start": "2024-07-31T06:02:38Z",
"end": "2024-07-31T06:03:08Z"
}
}
],
"location": {
"lat": 52.48128598928299,
"lng": 13.4944
},
"distance": 57597
},
{
"time": {
"arrival": "2024-07-31T06:17:43Z",
"departure": "2024-07-31T06:18:13Z"
},
"load": [
10
],
"activities": [
{
"jobId": "Job_22",
"type": "delivery",
"location": {
"lat": 52.465255531970406,
"lng": 13.511537556934355
},
"time": {
"start": "2024-07-31T06:17:43Z",
"end": "2024-07-31T06:18:13Z"
}
}
],
"location": {
"lat": 52.465255531970406,
"lng": 13.511537556934355
},
"distance": 62250
},
{
"time": {
"arrival": "2024-07-31T06:25:02Z",
"departure": "2024-07-31T06:25:32Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_31",
"type": "delivery",
"location": {
"lat": 52.4779,
"lng": 13.5012
},
"time": {
"start": "2024-07-31T06:25:02Z",
"end": "2024-07-31T06:25:32Z"
}
}
],
"location": {
"lat": 52.4779,
"lng": 13.5012
},
"distance": 64751
},
{
"time": {
"arrival": "2024-07-31T06:30:25Z",
"departure": "2024-07-31T06:30:55Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_17",
"type": "delivery",
"location": {
"lat": 52.48903177127663,
"lng": 13.495944342993262
},
"time": {
"start": "2024-07-31T06:30:25Z",
"end": "2024-07-31T06:30:55Z"
}
}
],
"location": {
"lat": 52.48903177127663,
"lng": 13.495944342993262
},
"distance": 66116
},
{
"time": {
"arrival": "2024-07-31T06:44:49Z",
"departure": "2024-07-31T06:45:19Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_44",
"type": "delivery",
"location": {
"lat": 52.54433793446157,
"lng": 13.49579242116612
},
"time": {
"start": "2024-07-31T06:44:49Z",
"end": "2024-07-31T06:45:19Z"
}
}
],
"location": {
"lat": 52.54433793446157,
"lng": 13.49579242116612
},
"distance": 74254
},
{
"time": {
"arrival": "2024-07-31T06:49:30Z",
"departure": "2024-07-31T06:50:00Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_33",
"type": "delivery",
"location": {
"lat": 52.55437436208552,
"lng": 13.503142187091647
},
"time": {
"start": "2024-07-31T06:49:30Z",
"end": "2024-07-31T06:50:00Z"
}
}
],
"location": {
"lat": 52.55437436208552,
"lng": 13.503142187091647
},
"distance": 76262
},
{
"time": {
"arrival": "2024-07-31T06:56:32Z",
"departure": "2024-07-31T06:57:02Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_48",
"type": "delivery",
"location": {
"lat": 52.56223251898173,
"lng": 13.471999398223556
},
"time": {
"start": "2024-07-31T06:56:32Z",
"end": "2024-07-31T06:57:02Z"
}
}
],
"location": {
"lat": 52.56223251898173,
"lng": 13.471999398223556
},
"distance": 80259
},
{
"time": {
"arrival": "2024-07-31T07:04:54Z",
"departure": "2024-07-31T07:05:24Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_32",
"type": "delivery",
"location": {
"lat": 52.60066027234286,
"lng": 13.502741838681835
},
"time": {
"start": "2024-07-31T07:04:54Z",
"end": "2024-07-31T07:05:24Z"
}
}
],
"location": {
"lat": 52.60066027234286,
"lng": 13.502741838681835
},
"distance": 85924
},
{
"time": {
"arrival": "2024-07-31T07:18:17Z",
"departure": "2024-07-31T07:18:47Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_42",
"type": "delivery",
"location": {
"lat": 52.63313572894435,
"lng": 13.506488581249922
},
"time": {
"start": "2024-07-31T07:18:17Z",
"end": "2024-07-31T07:18:47Z"
}
}
],
"location": {
"lat": 52.63313572894435,
"lng": 13.506488581249922
},
"distance": 94755
},
{
"time": {
"arrival": "2024-07-31T07:22:57Z",
"departure": "2024-07-31T07:23:27Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_25",
"type": "delivery",
"location": {
"lat": 52.6378,
"lng": 13.48675
},
"time": {
"start": "2024-07-31T07:22:57Z",
"end": "2024-07-31T07:23:27Z"
}
}
],
"location": {
"lat": 52.6378,
"lng": 13.48675
},
"distance": 96314
},
{
"time": {
"arrival": "2024-07-31T07:32:25Z",
"departure": "2024-07-31T07:32:55Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_36",
"type": "delivery",
"location": {
"lat": 52.60842932011795,
"lng": 13.46922174529483
},
"time": {
"start": "2024-07-31T07:32:25Z",
"end": "2024-07-31T07:32:55Z"
}
}
],
"location": {
"lat": 52.60842932011795,
"lng": 13.46922174529483
},
"distance": 101552
},
{
"time": {
"arrival": "2024-07-31T07:38:13Z",
"departure": "2024-07-31T07:38:43Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_49",
"type": "delivery",
"location": {
"lat": 52.595251760429065,
"lng": 13.456764166098564
},
"time": {
"start": "2024-07-31T07:38:13Z",
"end": "2024-07-31T07:38:43Z"
}
}
],
"location": {
"lat": 52.595251760429065,
"lng": 13.456764166098564
},
"distance": 104396
},
{
"time": {
"arrival": "2024-07-31T07:53:54Z",
"departure": "2024-07-31T07:53:54Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T07:53:54Z",
"end": "2024-07-31T07:53:54Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 113476
}
],
"statistic": {
"cost": 1425.44,
"distance": 113476,
"duration": 14034,
"times": {
"driving": 13314,
"serving": 720,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_2",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2024-07-31T04:00:00Z",
"departure": "2024-07-31T04:00:00Z"
},
"load": [
25
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T04:00:00Z",
"end": "2024-07-31T04:00:00Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 0
},
{
"time": {
"arrival": "2024-07-31T04:08:02Z",
"departure": "2024-07-31T04:08:32Z"
},
"load": [
24
],
"activities": [
{
"jobId": "Job_2",
"type": "delivery",
"location": {
"lat": 52.62738533184079,
"lng": 13.3789
},
"time": {
"start": "2024-07-31T04:08:02Z",
"end": "2024-07-31T04:08:32Z"
}
}
],
"location": {
"lat": 52.62738533184079,
"lng": 13.3789
},
"distance": 3848
},
{
"time": {
"arrival": "2024-07-31T04:16:12Z",
"departure": "2024-07-31T04:16:42Z"
},
"load": [
23
],
"activities": [
{
"jobId": "Job_18",
"type": "delivery",
"location": {
"lat": 52.62863,
"lng": 13.3621182
},
"time": {
"start": "2024-07-31T04:16:12Z",
"end": "2024-07-31T04:16:42Z"
}
}
],
"location": {
"lat": 52.62863,
"lng": 13.3621182
},
"distance": 6630
},
{
"time": {
"arrival": "2024-07-31T04:19:36Z",
"departure": "2024-07-31T04:20:06Z"
},
"load": [
22
],
"activities": [
{
"jobId": "Job_5",
"type": "delivery",
"location": {
"lat": 52.63256,
"lng": 13.37322
},
"time": {
"start": "2024-07-31T04:19:36Z",
"end": "2024-07-31T04:20:06Z"
}
}
],
"location": {
"lat": 52.63256,
"lng": 13.37322
},
"distance": 7682
},
{
"time": {
"arrival": "2024-07-31T04:29:15Z",
"departure": "2024-07-31T04:29:45Z"
},
"load": [
21
],
"activities": [
{
"jobId": "Job_40",
"type": "delivery",
"location": {
"lat": 52.6543,
"lng": 13.39278
},
"time": {
"start": "2024-07-31T04:29:15Z",
"end": "2024-07-31T04:29:45Z"
}
}
],
"location": {
"lat": 52.6543,
"lng": 13.39278
},
"distance": 12685
},
{
"time": {
"arrival": "2024-07-31T04:34:46Z",
"departure": "2024-07-31T04:35:16Z"
},
"load": [
20
],
"activities": [
{
"jobId": "Job_19",
"type": "delivery",
"location": {
"lat": 52.65831976801964,
"lng": 13.359646771531477
},
"time": {
"start": "2024-07-31T04:34:46Z",
"end": "2024-07-31T04:35:16Z"
}
}
],
"location": {
"lat": 52.65831976801964,
"lng": 13.359646771531477
},
"distance": 15405
},
{
"time": {
"arrival": "2024-07-31T04:41:54Z",
"departure": "2024-07-31T04:42:24Z"
},
"load": [
19
],
"activities": [
{
"jobId": "Job_1",
"type": "delivery",
"location": {
"lat": 52.63329,
"lng": 13.3138
},
"time": {
"start": "2024-07-31T04:41:54Z",
"end": "2024-07-31T04:42:24Z"
}
}
],
"location": {
"lat": 52.63329,
"lng": 13.3138
},
"distance": 20277
},
{
"time": {
"arrival": "2024-07-31T04:48:34Z",
"departure": "2024-07-31T04:49:04Z"
},
"load": [
18
],
"activities": [
{
"jobId": "Job_20",
"type": "delivery",
"location": {
"lat": 52.61955,
"lng": 13.29845
},
"time": {
"start": "2024-07-31T04:48:34Z",
"end": "2024-07-31T04:49:04Z"
}
}
],
"location": {
"lat": 52.61955,
"lng": 13.29845
},
"distance": 23538
},
{
"time": {
"arrival": "2024-07-31T04:57:24Z",
"departure": "2024-07-31T04:57:54Z"
},
"load": [
17
],
"activities": [
{
"jobId": "Job_39",
"type": "delivery",
"location": {
"lat": 52.6029,
"lng": 13.3113
},
"time": {
"start": "2024-07-31T04:57:24Z",
"end": "2024-07-31T04:57:54Z"
}
}
],
"location": {
"lat": 52.6029,
"lng": 13.3113
},
"distance": 27911
},
{
"time": {
"arrival": "2024-07-31T05:03:21Z",
"departure": "2024-07-31T05:03:51Z"
},
"load": [
16
],
"activities": [
{
"jobId": "Job_30",
"type": "delivery",
"location": {
"lat": 52.60079217247425,
"lng": 13.339813254226156
},
"time": {
"start": "2024-07-31T05:03:21Z",
"end": "2024-07-31T05:03:51Z"
}
}
],
"location": {
"lat": 52.60079217247425,
"lng": 13.339813254226156
},
"distance": 30697
},
{
"time": {
"arrival": "2024-07-31T05:10:44Z",
"departure": "2024-07-31T05:11:14Z"
},
"load": [
15
],
"activities": [
{
"jobId": "Job_14",
"type": "delivery",
"location": {
"lat": 52.58038089373736,
"lng": 13.30447922221816
},
"time": {
"start": "2024-07-31T05:10:44Z",
"end": "2024-07-31T05:11:14Z"
}
}
],
"location": {
"lat": 52.58038089373736,
"lng": 13.30447922221816
},
"distance": 34566
},
{
"time": {
"arrival": "2024-07-31T05:23:40Z",
"departure": "2024-07-31T05:24:10Z"
},
"load": [
14
],
"activities": [
{
"jobId": "Job_26",
"type": "delivery",
"location": {
"lat": 52.53754,
"lng": 13.34152
},
"time": {
"start": "2024-07-31T05:23:40Z",
"end": "2024-07-31T05:24:10Z"
}
}
],
"location": {
"lat": 52.53754,
"lng": 13.34152
},
"distance": 42184
},
{
"time": {
"arrival": "2024-07-31T05:28:24Z",
"departure": "2024-07-31T05:28:54Z"
},
"load": [
13
],
"activities": [
{
"jobId": "Job_10",
"type": "delivery",
"location": {
"lat": 52.5313,
"lng": 13.35356
},
"time": {
"start": "2024-07-31T05:28:24Z",
"end": "2024-07-31T05:28:54Z"
}
}
],
"location": {
"lat": 52.5313,
"lng": 13.35356
},
"distance": 44009
},
{
"time": {
"arrival": "2024-07-31T05:36:06Z",
"departure": "2024-07-31T05:36:36Z"
},
"load": [
12
],
"activities": [
{
"jobId": "Job_3",
"type": "delivery",
"location": {
"lat": 52.51635175288175,
"lng": 13.343661020679573
},
"time": {
"start": "2024-07-31T05:36:06Z",
"end": "2024-07-31T05:36:36Z"
}
}
],
"location": {
"lat": 52.51635175288175,
"lng": 13.343661020679573
},
"distance": 47041
},
{
"time": {
"arrival": "2024-07-31T05:41:45Z",
"departure": "2024-07-31T05:42:15Z"
},
"load": [
11
],
"activities": [
{
"jobId": "Job_16",
"type": "delivery",
"location": {
"lat": 52.5102,
"lng": 13.3444
},
"time": {
"start": "2024-07-31T05:41:45Z",
"end": "2024-07-31T05:42:15Z"
}
}
],
"location": {
"lat": 52.5102,
"lng": 13.3444
},
"distance": 49332
},
{
"time": {
"arrival": "2024-07-31T05:46:22Z",
"departure": "2024-07-31T05:46:52Z"
},
"load": [
10
],
"activities": [
{
"jobId": "Job_38",
"type": "delivery",
"location": {
"lat": 52.50488105730338,
"lng": 13.355333507786808
},
"time": {
"start": "2024-07-31T05:46:22Z",
"end": "2024-07-31T05:46:52Z"
}
}
],
"location": {
"lat": 52.50488105730338,
"lng": 13.355333507786808
},
"distance": 50772
},
{
"time": {
"arrival": "2024-07-31T06:02:39Z",
"departure": "2024-07-31T06:03:09Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_7",
"type": "delivery",
"location": {
"lat": 52.439442845393685,
"lng": 13.336118100685782
},
"time": {
"start": "2024-07-31T06:02:39Z",
"end": "2024-07-31T06:03:09Z"
}
}
],
"location": {
"lat": 52.439442845393685,
"lng": 13.336118100685782
},
"distance": 59371
},
{
"time": {
"arrival": "2024-07-31T06:09:21Z",
"departure": "2024-07-31T06:09:51Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_11",
"type": "delivery",
"location": {
"lat": 52.457844833248835,
"lng": 13.322525701671736
},
"time": {
"start": "2024-07-31T06:09:21Z",
"end": "2024-07-31T06:09:51Z"
}
}
],
"location": {
"lat": 52.457844833248835,
"lng": 13.322525701671736
},
"distance": 62131
},
{
"time": {
"arrival": "2024-07-31T06:12:48Z",
"departure": "2024-07-31T06:13:18Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_6",
"type": "delivery",
"location": {
"lat": 52.45810373923444,
"lng": 13.3318089424755
},
"time": {
"start": "2024-07-31T06:12:48Z",
"end": "2024-07-31T06:13:18Z"
}
}
],
"location": {
"lat": 52.45810373923444,
"lng": 13.3318089424755
},
"distance": 63319
},
{
"time": {
"arrival": "2024-07-31T06:22:06Z",
"departure": "2024-07-31T06:22:36Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_27",
"type": "delivery",
"location": {
"lat": 52.48811100200862,
"lng": 13.376
},
"time": {
"start": "2024-07-31T06:22:06Z",
"end": "2024-07-31T06:22:36Z"
}
}
],
"location": {
"lat": 52.48811100200862,
"lng": 13.376
},
"distance": 69146
},
{
"time": {
"arrival": "2024-07-31T06:26:37Z",
"departure": "2024-07-31T06:27:07Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_45",
"type": "delivery",
"location": {
"lat": 52.486517527979494,
"lng": 13.382057792236846
},
"time": {
"start": "2024-07-31T06:26:37Z",
"end": "2024-07-31T06:27:07Z"
}
}
],
"location": {
"lat": 52.486517527979494,
"lng": 13.382057792236846
},
"distance": 70358
},
{
"time": {
"arrival": "2024-07-31T06:37:43Z",
"departure": "2024-07-31T06:38:13Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_41",
"type": "delivery",
"location": {
"lat": 52.51508491755749,
"lng": 13.38
},
"time": {
"start": "2024-07-31T06:37:43Z",
"end": "2024-07-31T06:38:13Z"
}
}
],
"location": {
"lat": 52.51508491755749,
"lng": 13.38
},
"distance": 74664
},
{
"time": {
"arrival": "2024-07-31T06:44:09Z",
"departure": "2024-07-31T06:44:39Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_24",
"type": "delivery",
"location": {
"lat": 52.5293,
"lng": 13.38507204916371
},
"time": {
"start": "2024-07-31T06:44:09Z",
"end": "2024-07-31T06:44:39Z"
}
}
],
"location": {
"lat": 52.5293,
"lng": 13.38507204916371
},
"distance": 76891
},
{
"time": {
"arrival": "2024-07-31T06:48:08Z",
"departure": "2024-07-31T06:48:38Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_8",
"type": "delivery",
"location": {
"lat": 52.53213114000045,
"lng": 13.373517153879767
},
"time": {
"start": "2024-07-31T06:48:08Z",
"end": "2024-07-31T06:48:38Z"
}
}
],
"location": {
"lat": 52.53213114000045,
"lng": 13.373517153879767
},
"distance": 78085
},
{
"time": {
"arrival": "2024-07-31T07:06:36Z",
"departure": "2024-07-31T07:07:06Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_29",
"type": "delivery",
"location": {
"lat": 52.58884270031872,
"lng": 13.352068415230912
},
"time": {
"start": "2024-07-31T07:06:36Z",
"end": "2024-07-31T07:07:06Z"
}
}
],
"location": {
"lat": 52.58884270031872,
"lng": 13.352068415230912
},
"distance": 86144
},
{
"time": {
"arrival": "2024-07-31T07:19:17Z",
"departure": "2024-07-31T07:19:47Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_47",
"type": "delivery",
"location": {
"lat": 52.591995183321515,
"lng": 13.36000789424169
},
"time": {
"start": "2024-07-31T07:19:17Z",
"end": "2024-07-31T07:19:47Z"
}
}
],
"location": {
"lat": 52.591995183321515,
"lng": 13.36000789424169
},
"distance": 90799
},
{
"time": {
"arrival": "2024-07-31T07:27:58Z",
"departure": "2024-07-31T07:27:58Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"time": {
"start": "2024-07-31T07:27:58Z",
"end": "2024-07-31T07:27:58Z"
}
}
],
"location": {
"lat": 52.61213641890272,
"lng": 13.368000177132911
},
"distance": 94403
}
],
"statistic": {
"cost": 1203.59,
"distance": 94403,
"duration": 12478,
"times": {
"driving": 11728,
"serving": 750,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
}
]
}Conclusions
This tutorial demonstrated how using the tieBreak objective enables intelligent trade-offs that consider both primary optimization goals and secondary operational requirements, resulting in more practical solutions for real-world operations.
Next steps
For more information, see:
Updated 28 days ago