ガイドAPIリファレンス
ガイド

ツアーごとの超過コストを計算する

効率的な物流業務を実現するには、業務コストの管理が必要不可欠です。一部のシナリオでは、車両の運行管理に関連する追加コストが発生することがあります。たとえば、ツアー中に車両が契約で指定された最大数よりも多くの停車地に止まる場合、車両に設定された制限を超えた停車地ごとに追加の支払いが発生することがあります。

こうした超過費用や超過費用の計算手段の欠如は、収益性や競争力に悪影響を与える可能性があるため、このことからも効果的なコスト管理がいかに重要かがわかります。HERE Tour Planning APIは、excessCosts機能を通じて、コストに影響を与える可能性のある主要な領域 (停止回数、ツアーの所要時間、待ち時間、距離) を最適化することで、超過コストの管理をサポートします。

📘

  • これはベータ機能であり、開発の最終段階にあります。ベータ機能には後方互換性があり、削除されることはありません。重大なバグはないものの、カバレージ、品質、パフォーマンス、テストカバレージは最終的なものではありません。このような制約と動作が改善される可能性に同意された場合、アプリケーションでベータ機能を安全にご利用いただけます。
  • この機能を有効にするには、問題仕様でexcessCostsexperimentalFeatures配列に追加します。

超過コスト機能の概要

超過コスト機能は、商品の集荷または配達の時間枠にソフトリミットを課すソフト時間枠と同様に機能します。時間枠に違反すると抽象的なペナルティが適用され、ペナルティを最小限に抑えるソリューションを見つけるよう最適化アルゴリズムに促します。超過コスト機能は同じ原則に従いますが、コストの最適化に重点を置いた旅程計画エリアに適用されます。このケースでは、ツアーの距離、ツアーの所要時間、ツアー中の停車地の数、車両の累積待ち時間など、超過コストを最小限に抑えるために必要な1つまたは複数のカテゴリーに特定のソフトリミットを課すことができます。

車両がこれらの制限のいずれかを超えると、1回限りの固定費ペナルティを発生させ、該当する測定単位でステップ間隔を定義できます。たとえば、1時間の制限を超えて開始された10分ごとに、車両に特定のコストペナルティが適用されます。その結果、最適化アルゴリズムは、主にペナルティなしでソリューションの提供を試みます。ただし、問題のJSONで指定されているツアーの制約 (利用可能な車両の数や止まる停車地の数など) を考慮すると、ある程度の追加費用は避けられない場合があります。

超過コストを定義する

問題のJSONファイルのcostsオブジェクト内では、excessCostsオブジェクトに次のオブジェクトを含めることができます。各オブジェクトは最小限に抑える超過コストのカテゴリーを表しています。

  • distance:追加コストが発生するまでの車両の最大走行距離を指定します。
  • duration:追加コストを発生させずに車両を走行できる最大所要時間を定義します。
  • stops:ツアー中に追加コストを発生させずに車両が停車できる最大停車地数を表します。
  • waitingTime:ツアー中に車両に許可される最大累積待ち時間を定義します。車両がコストペナルティを発生させずに待機できる時間を示します。

必要に応じて、任意の数の超過コストタイプを指定できます。excessCosts内の各オブジェクトでは、次のプロパティを通じて、それぞれの制限を超えた場合に関連付けられたコストペナルティを指定します。

  • limit:ソリューションが超えてはならない最大値です。この制限を超えると、ソリューションのコストにペナルティが追加されます。

  • fixedCost:制限を超過した場合に発生する固定費ペナルティです。このコストは一度だけ発生します。

  • stepSize:1つのペナルティ単位に対応する固定超過金額です。ペナルティは次のように計算されます。

    ペナルティ=(excess / step_size)

    たとえば、ステップサイズ=12、超過=14の場合、ペナルティ=2になります。

    📘

    As the previous example demonstrates, any fraction of a step still counts as a full penalty.

  • stepCost:超過のステップあたりのコスト。

📘

ヒント

このモデルを使用すると、さまざまなユースケースに対応できます。たとえば、fixedCost ("fixedCost": 0) を指定せず、stepSizestepCostのみを設定できます。逆に、コストペナルティをfixedCostのみで構成し、stepSizestepCostの両方を0に設定することもできます。

excessCost機能の詳細と、使用可能な超過コストタイプの計算でサポートされている測定単位については、APIリファレンスを参照してください。

例:ツアーの所要時間

次のスニペットは、車両のツアーの所要時間にソフト制限を設定し、この制限を超えた場合のコストペナルティを定義するサンプルexcessCostオブジェクトを示しています。

"excessCosts": {
    "duration": {
        "limit": 28800,
        "fixedCost": 200,
        "stepSize": 3600,
        "stepCost": 100,
    }
}

この例の内容は以下のとおりです。

  • limit値は8時間 (28800秒に相当) のソフト所要時間制限を表しています。
  • fixedCost値は、ツアー中に車両が8時間を超えて移動すると、200の1回限りのコストペナルティが発生することを示しています。
  • stepSize値は、limitを過ぎてから1時間 (3600秒) ごとに、stepCost値によって決定される追加コストが車両に発生することを指定します。
  • stepCost値はステップあたりの増分コストを表しています。これはペナルティが発生するたびにトリガーされ、1時間 (または3600秒) ごとに100ずつ増加します。

次の図は、前の例で指定したexcessCosts構成を使用して、車両のツアーが所要時間制限を超えた場合のサンプルユースケースに基づいて計算された超過コストを示しています。

超過コストの仕組みを示したサンプル図
📘

前の例で示したように、ステップの所要時間に関係なく、超過の各ステップの開始時にstepCostのペナルティが適用されます。

超過コストを管理する

この例では、完全な問題のJSONにおけるexcessCosts機能の使用方法を示しており、この機能によってツアーの所要時間が最適化され、業務コストが削減される仕組みをわかりやすく説明しています。以降のセクションでは、同じコア問題構成を共有する2つのソリューションを比較しています。主な違いはexcessCosts機能の有無です。

開始問題 - 超過コストの計算なし

開始問題ではexcessCosts機能が利用されません。このシナリオでは、5台の車両が8時間以内に49のジョブを完了するよう割り当てられています。

ツアー内の潜在的な追加コストを計算するためのexcessCosts機能がないため、厳格な経費管理策の一環として、車両は8時間のハードシフト制限によって制約を受けます。このデモでは、各車両の運行に関連する固定費は600に設定されており、時間と距離のコストは0.0001で最小化されます。

Click to expand/collapse the sample JSON
{
  "fleet": {
    "types": [
      {
        "profile": "car",
        "amount": 5,
        "capacity": [
          50
        ],
        "costs": {
          "time": 0.0001,
          "distance": 0.0001,
          "fixed": 600
        },
        "id": "vehicle_1",
        "shifts": [
          {
            "start": {
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": "2024-06-24T08:00:00+02:00"
            },
            "end": {
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": "2024-06-24T16: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": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_2",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.62738533184079,
                    "lng": 13.3789
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_3",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.51635175288175,
                    "lng": 13.343661020679571
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_4",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.456,
                    "lng": 13.403260583257188
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_5",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.63256,
                    "lng": 13.37322
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_6",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.45810373923444,
                    "lng": 13.331808942475499
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_7",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.439442845393685,
                    "lng": 13.336118100685782
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_8",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.53213114000045,
                    "lng": 13.373517153879769
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_9",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4823,
                    "lng": 13.4703
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_10",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.5313,
                    "lng": 13.35356
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_11",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.457844833248835,
                    "lng": 13.322525701671735
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_12",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4329271708958,
                    "lng": 13.376558539227483
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_13",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48128598928299,
                    "lng": 13.4944
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_14",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.580380893737356,
                    "lng": 13.304479222218161
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_15",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.444597854004236,
                    "lng": 13.42729037972278
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_16",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.5102,
                    "lng": 13.3444
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_17",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48903177127663,
                    "lng": 13.495944342993262
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_18",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.62863,
                    "lng": 13.3621182
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_19",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.65831976801964,
                    "lng": 13.359646771531477
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_20",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.61955,
                    "lng": 13.29845
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_21",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.49949154428338,
                    "lng": 13.40857671284082
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_22",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.465255531970406,
                    "lng": 13.511537556934355
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_23",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4312,
                    "lng": 13.45023
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_24",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.5293,
                    "lng": 13.38507204916371
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_25",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.6378,
                    "lng": 13.48675
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_26",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.53754,
                    "lng": 13.34152
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_27",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48811100200862,
                    "lng": 13.376
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_28",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4745,
                    "lng": 13.42
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_29",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.58884270031872,
                    "lng": 13.352068415230912
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_30",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.60079217247425,
                    "lng": 13.339813254226156
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_31",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4779,
                    "lng": 13.5012
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_32",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.60066027234286,
                    "lng": 13.502741838681837
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_33",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.55437436208552,
                    "lng": 13.503142187091647
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_34",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48446152479127,
                    "lng": 13.392004256315916
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_35",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.482203294624796,
                    "lng": 13.391214601891551
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_36",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.60842932011795,
                    "lng": 13.46922174529483
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_37",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.47651505101506,
                    "lng": 13.459944175857151
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_38",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.50488105730338,
                    "lng": 13.355333507786808
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_39",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.6029,
                    "lng": 13.3113
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_40",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.6543,
                    "lng": 13.39278
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_41",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.51508491755749,
                    "lng": 13.38
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_42",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.63313572894435,
                    "lng": 13.506488581249922
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_43",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.459450803409204,
                    "lng": 13.396015195980405
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_44",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.54433793446157,
                    "lng": 13.49579242116612
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_45",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.486517527979494,
                    "lng": 13.382057792236846
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_46",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.55606147412602,
                    "lng": 13.41517487839967
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_47",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.591995183321515,
                    "lng": 13.36000789424169
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_48",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.56223251898173,
                    "lng": 13.471999398223556
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_49",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.595251760429065,
                    "lng": 13.456764166098564
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      }
    ]
  },
  "objectives": [
    {
      "type": "minimizeUnassigned"
    },
    {
      "type": "minimizeCost"
    }
  ]
}

ソリューション

問題の制約を考慮すると、最も効率的なソリューションは2つのツアーで構成され、それぞれが8時間のシフト制約に適合します。両方の車両を合わせたツアーコストは1223です。ツアーのハイライトについては、次の図を参照してください。

サンプルソリューション - 超過コストの計算なし

次のセクションでは、前述の問題の完全なソリューションをJSON形式で示しています。

Click to expand/collapse the sample JSON
{
  "statistic": {
    "cost": 1222.7158,
    "distance": 189478,
    "duration": 37680,
    "times": {
      "driving": 22980,
      "serving": 14700,
      "waiting": 0,
      "stopping": 0,
      "break": 0
    }
  },
  "tours": [
    {
      "vehicleId": "vehicle_1_3",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2024-06-24T06:00:00Z",
            "departure": "2024-06-24T06:00:00Z"
          },
          "load": [
            34
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": {
                "start": "2024-06-24T06:00:00Z",
                "end": "2024-06-24T06:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.531,
            "lng": 13.38461
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2024-06-24T06:01:15Z",
            "departure": "2024-06-24T06:06:15Z"
          },
          "load": [
            33
          ],
          "activities": [
            {
              "jobId": "Job_24",
              "type": "delivery",
              "location": {
                "lat": 52.5293,
                "lng": 13.38507204916371
              },
              "time": {
                "start": "2024-06-24T06:01:15Z",
                "end": "2024-06-24T06:06:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.5293,
            "lng": 13.38507204916371
          },
          "distance": 485
        },
        {
          "time": {
            "arrival": "2024-06-24T06:12:08Z",
            "departure": "2024-06-24T06:17:08Z"
          },
          "load": [
            32
          ],
          "activities": [
            {
              "jobId": "Job_41",
              "type": "delivery",
              "location": {
                "lat": 52.51508491755749,
                "lng": 13.38
              },
              "time": {
                "start": "2024-06-24T06:12:08Z",
                "end": "2024-06-24T06:17:08Z"
              }
            }
          ],
          "location": {
            "lat": 52.51508491755749,
            "lng": 13.38
          },
          "distance": 2709
        },
        {
          "time": {
            "arrival": "2024-06-24T06:24:11Z",
            "departure": "2024-06-24T06:29:11Z"
          },
          "load": [
            31
          ],
          "activities": [
            {
              "jobId": "Job_3",
              "type": "delivery",
              "location": {
                "lat": 52.51635175288175,
                "lng": 13.343661020679573
              },
              "time": {
                "start": "2024-06-24T06:24:11Z",
                "end": "2024-06-24T06:29:11Z"
              }
            }
          ],
          "location": {
            "lat": 52.51635175288175,
            "lng": 13.343661020679573
          },
          "distance": 6478
        },
        {
          "time": {
            "arrival": "2024-06-24T06:34:20Z",
            "departure": "2024-06-24T06:39:20Z"
          },
          "load": [
            30
          ],
          "activities": [
            {
              "jobId": "Job_16",
              "type": "delivery",
              "location": {
                "lat": 52.5102,
                "lng": 13.3444
              },
              "time": {
                "start": "2024-06-24T06:34:20Z",
                "end": "2024-06-24T06:39:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.5102,
            "lng": 13.3444
          },
          "distance": 8769
        },
        {
          "time": {
            "arrival": "2024-06-24T06:43:27Z",
            "departure": "2024-06-24T06:48:27Z"
          },
          "load": [
            29
          ],
          "activities": [
            {
              "jobId": "Job_38",
              "type": "delivery",
              "location": {
                "lat": 52.50488105730338,
                "lng": 13.355333507786808
              },
              "time": {
                "start": "2024-06-24T06:43:27Z",
                "end": "2024-06-24T06:48:27Z"
              }
            }
          ],
          "location": {
            "lat": 52.50488105730338,
            "lng": 13.355333507786808
          },
          "distance": 10209
        },
        {
          "time": {
            "arrival": "2024-06-24T06:56:00Z",
            "departure": "2024-06-24T07:01:00Z"
          },
          "load": [
            28
          ],
          "activities": [
            {
              "jobId": "Job_21",
              "type": "delivery",
              "location": {
                "lat": 52.49949154428338,
                "lng": 13.40857671284082
              },
              "time": {
                "start": "2024-06-24T06:56:00Z",
                "end": "2024-06-24T07:01:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.49949154428338,
            "lng": 13.40857671284082
          },
          "distance": 14694
        },
        {
          "time": {
            "arrival": "2024-06-24T07:08:27Z",
            "departure": "2024-06-24T07:13:27Z"
          },
          "load": [
            27
          ],
          "activities": [
            {
              "jobId": "Job_27",
              "type": "delivery",
              "location": {
                "lat": 52.48811100200862,
                "lng": 13.376
              },
              "time": {
                "start": "2024-06-24T07:08:27Z",
                "end": "2024-06-24T07:13:27Z"
              }
            }
          ],
          "location": {
            "lat": 52.48811100200862,
            "lng": 13.376
          },
          "distance": 18078
        },
        {
          "time": {
            "arrival": "2024-06-24T07:17:28Z",
            "departure": "2024-06-24T07:22:28Z"
          },
          "load": [
            26
          ],
          "activities": [
            {
              "jobId": "Job_45",
              "type": "delivery",
              "location": {
                "lat": 52.486517527979494,
                "lng": 13.382057792236846
              },
              "time": {
                "start": "2024-06-24T07:17:28Z",
                "end": "2024-06-24T07:22:28Z"
              }
            }
          ],
          "location": {
            "lat": 52.486517527979494,
            "lng": 13.382057792236846
          },
          "distance": 19290
        },
        {
          "time": {
            "arrival": "2024-06-24T07:26:39Z",
            "departure": "2024-06-24T07:31:39Z"
          },
          "load": [
            25
          ],
          "activities": [
            {
              "jobId": "Job_34",
              "type": "delivery",
              "location": {
                "lat": 52.48446152479127,
                "lng": 13.392004256315916
              },
              "time": {
                "start": "2024-06-24T07:26:39Z",
                "end": "2024-06-24T07:31:39Z"
              }
            }
          ],
          "location": {
            "lat": 52.48446152479127,
            "lng": 13.392004256315916
          },
          "distance": 20440
        },
        {
          "time": {
            "arrival": "2024-06-24T07:36:02Z",
            "departure": "2024-06-24T07:41:02Z"
          },
          "load": [
            24
          ],
          "activities": [
            {
              "jobId": "Job_35",
              "type": "delivery",
              "location": {
                "lat": 52.4822032946248,
                "lng": 13.391214601891551
              },
              "time": {
                "start": "2024-06-24T07:36:02Z",
                "end": "2024-06-24T07:41:02Z"
              }
            }
          ],
          "location": {
            "lat": 52.4822032946248,
            "lng": 13.391214601891551
          },
          "distance": 22068
        },
        {
          "time": {
            "arrival": "2024-06-24T07:48:22Z",
            "departure": "2024-06-24T07:53:22Z"
          },
          "load": [
            23
          ],
          "activities": [
            {
              "jobId": "Job_28",
              "type": "delivery",
              "location": {
                "lat": 52.4745,
                "lng": 13.42
              },
              "time": {
                "start": "2024-06-24T07:48:22Z",
                "end": "2024-06-24T07:53:22Z"
              }
            }
          ],
          "location": {
            "lat": 52.4745,
            "lng": 13.42
          },
          "distance": 25275
        },
        {
          "time": {
            "arrival": "2024-06-24T08:02:07Z",
            "departure": "2024-06-24T08:07:07Z"
          },
          "load": [
            22
          ],
          "activities": [
            {
              "jobId": "Job_4",
              "type": "delivery",
              "location": {
                "lat": 52.456,
                "lng": 13.403260583257188
              },
              "time": {
                "start": "2024-06-24T08:02:07Z",
                "end": "2024-06-24T08:07:07Z"
              }
            }
          ],
          "location": {
            "lat": 52.456,
            "lng": 13.403260583257188
          },
          "distance": 29437
        },
        {
          "time": {
            "arrival": "2024-06-24T08:09:15Z",
            "departure": "2024-06-24T08:14:15Z"
          },
          "load": [
            21
          ],
          "activities": [
            {
              "jobId": "Job_43",
              "type": "delivery",
              "location": {
                "lat": 52.4594508034092,
                "lng": 13.396015195980404
              },
              "time": {
                "start": "2024-06-24T08:09:15Z",
                "end": "2024-06-24T08:14:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.4594508034092,
            "lng": 13.396015195980404
          },
          "distance": 30339
        },
        {
          "time": {
            "arrival": "2024-06-24T08:24:05Z",
            "departure": "2024-06-24T08:29:05Z"
          },
          "load": [
            20
          ],
          "activities": [
            {
              "jobId": "Job_6",
              "type": "delivery",
              "location": {
                "lat": 52.45810373923444,
                "lng": 13.3318089424755
              },
              "time": {
                "start": "2024-06-24T08:24:05Z",
                "end": "2024-06-24T08:29:05Z"
              }
            }
          ],
          "location": {
            "lat": 52.45810373923444,
            "lng": 13.3318089424755
          },
          "distance": 35443
        },
        {
          "time": {
            "arrival": "2024-06-24T08:32:20Z",
            "departure": "2024-06-24T08:37:20Z"
          },
          "load": [
            19
          ],
          "activities": [
            {
              "jobId": "Job_11",
              "type": "delivery",
              "location": {
                "lat": 52.457844833248835,
                "lng": 13.322525701671736
              },
              "time": {
                "start": "2024-06-24T08:32:20Z",
                "end": "2024-06-24T08:37:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.457844833248835,
            "lng": 13.322525701671736
          },
          "distance": 37037
        },
        {
          "time": {
            "arrival": "2024-06-24T08:45:57Z",
            "departure": "2024-06-24T08:50:57Z"
          },
          "load": [
            18
          ],
          "activities": [
            {
              "jobId": "Job_7",
              "type": "delivery",
              "location": {
                "lat": 52.439442845393685,
                "lng": 13.336118100685782
              },
              "time": {
                "start": "2024-06-24T08:45:57Z",
                "end": "2024-06-24T08:50:57Z"
              }
            }
          ],
          "location": {
            "lat": 52.439442845393685,
            "lng": 13.336118100685782
          },
          "distance": 41040
        },
        {
          "time": {
            "arrival": "2024-06-24T08:58:42Z",
            "departure": "2024-06-24T09:03:42Z"
          },
          "load": [
            17
          ],
          "activities": [
            {
              "jobId": "Job_12",
              "type": "delivery",
              "location": {
                "lat": 52.4329271708958,
                "lng": 13.376558539227483
              },
              "time": {
                "start": "2024-06-24T08:58:42Z",
                "end": "2024-06-24T09:03:42Z"
              }
            }
          ],
          "location": {
            "lat": 52.4329271708958,
            "lng": 13.376558539227483
          },
          "distance": 45325
        },
        {
          "time": {
            "arrival": "2024-06-24T09:12:46Z",
            "departure": "2024-06-24T09:17:46Z"
          },
          "load": [
            16
          ],
          "activities": [
            {
              "jobId": "Job_15",
              "type": "delivery",
              "location": {
                "lat": 52.44459785400424,
                "lng": 13.42729037972278
              },
              "time": {
                "start": "2024-06-24T09:12:46Z",
                "end": "2024-06-24T09:17:46Z"
              }
            }
          ],
          "location": {
            "lat": 52.44459785400424,
            "lng": 13.42729037972278
          },
          "distance": 50346
        },
        {
          "time": {
            "arrival": "2024-06-24T09:25:44Z",
            "departure": "2024-06-24T09:30:44Z"
          },
          "load": [
            15
          ],
          "activities": [
            {
              "jobId": "Job_23",
              "type": "delivery",
              "location": {
                "lat": 52.4312,
                "lng": 13.45023
              },
              "time": {
                "start": "2024-06-24T09:25:44Z",
                "end": "2024-06-24T09:30:44Z"
              }
            }
          ],
          "location": {
            "lat": 52.4312,
            "lng": 13.45023
          },
          "distance": 54657
        },
        {
          "time": {
            "arrival": "2024-06-24T09:43:15Z",
            "departure": "2024-06-24T09:48:15Z"
          },
          "load": [
            14
          ],
          "activities": [
            {
              "jobId": "Job_37",
              "type": "delivery",
              "location": {
                "lat": 52.47651505101506,
                "lng": 13.459944175857151
              },
              "time": {
                "start": "2024-06-24T09:43:15Z",
                "end": "2024-06-24T09:48:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.47651505101506,
            "lng": 13.459944175857151
          },
          "distance": 62938
        },
        {
          "time": {
            "arrival": "2024-06-24T09:54:21Z",
            "departure": "2024-06-24T09:59:21Z"
          },
          "load": [
            13
          ],
          "activities": [
            {
              "jobId": "Job_9",
              "type": "delivery",
              "location": {
                "lat": 52.4823,
                "lng": 13.4703
              },
              "time": {
                "start": "2024-06-24T09:54:21Z",
                "end": "2024-06-24T09:59:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.4823,
            "lng": 13.4703
          },
          "distance": 65650
        },
        {
          "time": {
            "arrival": "2024-06-24T10:09:34Z",
            "departure": "2024-06-24T10:14:34Z"
          },
          "load": [
            12
          ],
          "activities": [
            {
              "jobId": "Job_13",
              "type": "delivery",
              "location": {
                "lat": 52.48128598928299,
                "lng": 13.4944
              },
              "time": {
                "start": "2024-06-24T10:09:34Z",
                "end": "2024-06-24T10:14:34Z"
              }
            }
          ],
          "location": {
            "lat": 52.48128598928299,
            "lng": 13.4944
          },
          "distance": 67777
        },
        {
          "time": {
            "arrival": "2024-06-24T10:29:09Z",
            "departure": "2024-06-24T10:34:09Z"
          },
          "load": [
            11
          ],
          "activities": [
            {
              "jobId": "Job_22",
              "type": "delivery",
              "location": {
                "lat": 52.465255531970406,
                "lng": 13.511537556934355
              },
              "time": {
                "start": "2024-06-24T10:29:09Z",
                "end": "2024-06-24T10:34:09Z"
              }
            }
          ],
          "location": {
            "lat": 52.465255531970406,
            "lng": 13.511537556934355
          },
          "distance": 72430
        },
        {
          "time": {
            "arrival": "2024-06-24T10:40:58Z",
            "departure": "2024-06-24T10:45:58Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "Job_31",
              "type": "delivery",
              "location": {
                "lat": 52.4779,
                "lng": 13.5012
              },
              "time": {
                "start": "2024-06-24T10:40:58Z",
                "end": "2024-06-24T10:45:58Z"
              }
            }
          ],
          "location": {
            "lat": 52.4779,
            "lng": 13.5012
          },
          "distance": 74931
        },
        {
          "time": {
            "arrival": "2024-06-24T10:50:51Z",
            "departure": "2024-06-24T10:55:51Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_17",
              "type": "delivery",
              "location": {
                "lat": 52.48903177127663,
                "lng": 13.495944342993262
              },
              "time": {
                "start": "2024-06-24T10:50:51Z",
                "end": "2024-06-24T10:55:51Z"
              }
            }
          ],
          "location": {
            "lat": 52.48903177127663,
            "lng": 13.495944342993262
          },
          "distance": 76296
        },
        {
          "time": {
            "arrival": "2024-06-24T11:09:46Z",
            "departure": "2024-06-24T11:14:46Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_44",
              "type": "delivery",
              "location": {
                "lat": 52.54433793446157,
                "lng": 13.49579242116612
              },
              "time": {
                "start": "2024-06-24T11:09:46Z",
                "end": "2024-06-24T11:14:46Z"
              }
            }
          ],
          "location": {
            "lat": 52.54433793446157,
            "lng": 13.49579242116612
          },
          "distance": 84434
        },
        {
          "time": {
            "arrival": "2024-06-24T11:18:57Z",
            "departure": "2024-06-24T11:23:57Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_33",
              "type": "delivery",
              "location": {
                "lat": 52.55437436208552,
                "lng": 13.503142187091647
              },
              "time": {
                "start": "2024-06-24T11:18:57Z",
                "end": "2024-06-24T11:23:57Z"
              }
            }
          ],
          "location": {
            "lat": 52.55437436208552,
            "lng": 13.503142187091647
          },
          "distance": 86442
        },
        {
          "time": {
            "arrival": "2024-06-24T11:30:29Z",
            "departure": "2024-06-24T11:35:29Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_48",
              "type": "delivery",
              "location": {
                "lat": 52.56223251898173,
                "lng": 13.471999398223556
              },
              "time": {
                "start": "2024-06-24T11:30:29Z",
                "end": "2024-06-24T11:35:29Z"
              }
            }
          ],
          "location": {
            "lat": 52.56223251898173,
            "lng": 13.471999398223556
          },
          "distance": 90439
        },
        {
          "time": {
            "arrival": "2024-06-24T11:43:20Z",
            "departure": "2024-06-24T11:48:20Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_32",
              "type": "delivery",
              "location": {
                "lat": 52.60066027234286,
                "lng": 13.502741838681835
              },
              "time": {
                "start": "2024-06-24T11:43:20Z",
                "end": "2024-06-24T11:48:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.60066027234286,
            "lng": 13.502741838681835
          },
          "distance": 96104
        },
        {
          "time": {
            "arrival": "2024-06-24T12:01:15Z",
            "departure": "2024-06-24T12:06:15Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_42",
              "type": "delivery",
              "location": {
                "lat": 52.63313572894435,
                "lng": 13.506488581249922
              },
              "time": {
                "start": "2024-06-24T12:01:15Z",
                "end": "2024-06-24T12:06:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.63313572894435,
            "lng": 13.506488581249922
          },
          "distance": 104935
        },
        {
          "time": {
            "arrival": "2024-06-24T12:10:25Z",
            "departure": "2024-06-24T12:15:25Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_25",
              "type": "delivery",
              "location": {
                "lat": 52.6378,
                "lng": 13.48675
              },
              "time": {
                "start": "2024-06-24T12:10:25Z",
                "end": "2024-06-24T12:15:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.6378,
            "lng": 13.48675
          },
          "distance": 106494
        },
        {
          "time": {
            "arrival": "2024-06-24T12:24:22Z",
            "departure": "2024-06-24T12:29:22Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_36",
              "type": "delivery",
              "location": {
                "lat": 52.60842932011795,
                "lng": 13.46922174529483
              },
              "time": {
                "start": "2024-06-24T12:24:22Z",
                "end": "2024-06-24T12:29:22Z"
              }
            }
          ],
          "location": {
            "lat": 52.60842932011795,
            "lng": 13.46922174529483
          },
          "distance": 111730
        },
        {
          "time": {
            "arrival": "2024-06-24T12:34:40Z",
            "departure": "2024-06-24T12:39:40Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_49",
              "type": "delivery",
              "location": {
                "lat": 52.595251760429065,
                "lng": 13.456764166098564
              },
              "time": {
                "start": "2024-06-24T12:34:40Z",
                "end": "2024-06-24T12:39:40Z"
              }
            }
          ],
          "location": {
            "lat": 52.595251760429065,
            "lng": 13.456764166098564
          },
          "distance": 114574
        },
        {
          "time": {
            "arrival": "2024-06-24T12:51:52Z",
            "departure": "2024-06-24T12:56:52Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_46",
              "type": "delivery",
              "location": {
                "lat": 52.55606147412602,
                "lng": 13.41517487839967
              },
              "time": {
                "start": "2024-06-24T12:51:52Z",
                "end": "2024-06-24T12:56:52Z"
              }
            }
          ],
          "location": {
            "lat": 52.55606147412602,
            "lng": 13.41517487839967
          },
          "distance": 121663
        },
        {
          "time": {
            "arrival": "2024-06-24T13:05:35Z",
            "departure": "2024-06-24T13:05:35Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": {
                "start": "2024-06-24T13:05:35Z",
                "end": "2024-06-24T13:05:35Z"
              }
            }
          ],
          "location": {
            "lat": 52.531,
            "lng": 13.38461
          },
          "distance": 126208
        }
      ],
      "statistic": {
        "cost": 615.1743,
        "distance": 126208,
        "duration": 25535,
        "times": {
          "driving": 15335,
          "serving": 10200,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    },
    {
      "vehicleId": "vehicle_1_5",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2024-06-24T06:00:00Z",
            "departure": "2024-06-24T06:00:00Z"
          },
          "load": [
            15
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": {
                "start": "2024-06-24T06:00:00Z",
                "end": "2024-06-24T06:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.531,
            "lng": 13.38461
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2024-06-24T06:02:25Z",
            "departure": "2024-06-24T06:07:25Z"
          },
          "load": [
            14
          ],
          "activities": [
            {
              "jobId": "Job_8",
              "type": "delivery",
              "location": {
                "lat": 52.53213114000045,
                "lng": 13.373517153879767
              },
              "time": {
                "start": "2024-06-24T06:02:25Z",
                "end": "2024-06-24T06:07:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.53213114000045,
            "lng": 13.373517153879767
          },
          "distance": 1079
        },
        {
          "time": {
            "arrival": "2024-06-24T06:25:25Z",
            "departure": "2024-06-24T06:30:25Z"
          },
          "load": [
            13
          ],
          "activities": [
            {
              "jobId": "Job_29",
              "type": "delivery",
              "location": {
                "lat": 52.58884270031872,
                "lng": 13.352068415230912
              },
              "time": {
                "start": "2024-06-24T06:25:25Z",
                "end": "2024-06-24T06:30:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.58884270031872,
            "lng": 13.352068415230912
          },
          "distance": 9138
        },
        {
          "time": {
            "arrival": "2024-06-24T06:47:18Z",
            "departure": "2024-06-24T06:52:18Z"
          },
          "load": [
            12
          ],
          "activities": [
            {
              "jobId": "Job_2",
              "type": "delivery",
              "location": {
                "lat": 52.62738533184079,
                "lng": 13.3789
              },
              "time": {
                "start": "2024-06-24T06:47:18Z",
                "end": "2024-06-24T06:52:18Z"
              }
            }
          ],
          "location": {
            "lat": 52.62738533184079,
            "lng": 13.3789
          },
          "distance": 16973
        },
        {
          "time": {
            "arrival": "2024-06-24T06:59:58Z",
            "departure": "2024-06-24T07:04:58Z"
          },
          "load": [
            11
          ],
          "activities": [
            {
              "jobId": "Job_18",
              "type": "delivery",
              "location": {
                "lat": 52.62863,
                "lng": 13.3621182
              },
              "time": {
                "start": "2024-06-24T06:59:58Z",
                "end": "2024-06-24T07:04:58Z"
              }
            }
          ],
          "location": {
            "lat": 52.62863,
            "lng": 13.3621182
          },
          "distance": 19755
        },
        {
          "time": {
            "arrival": "2024-06-24T07:07:52Z",
            "departure": "2024-06-24T07:12:52Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "Job_5",
              "type": "delivery",
              "location": {
                "lat": 52.63256,
                "lng": 13.37322
              },
              "time": {
                "start": "2024-06-24T07:07:52Z",
                "end": "2024-06-24T07:12:52Z"
              }
            }
          ],
          "location": {
            "lat": 52.63256,
            "lng": 13.37322
          },
          "distance": 20807
        },
        {
          "time": {
            "arrival": "2024-06-24T07:22:02Z",
            "departure": "2024-06-24T07:27:02Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_40",
              "type": "delivery",
              "location": {
                "lat": 52.6543,
                "lng": 13.39278
              },
              "time": {
                "start": "2024-06-24T07:22:02Z",
                "end": "2024-06-24T07:27:02Z"
              }
            }
          ],
          "location": {
            "lat": 52.6543,
            "lng": 13.39278
          },
          "distance": 25810
        },
        {
          "time": {
            "arrival": "2024-06-24T07:32:03Z",
            "departure": "2024-06-24T07:37:03Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_19",
              "type": "delivery",
              "location": {
                "lat": 52.65831976801964,
                "lng": 13.359646771531477
              },
              "time": {
                "start": "2024-06-24T07:32:03Z",
                "end": "2024-06-24T07:37:03Z"
              }
            }
          ],
          "location": {
            "lat": 52.65831976801964,
            "lng": 13.359646771531477
          },
          "distance": 28530
        },
        {
          "time": {
            "arrival": "2024-06-24T07:43:41Z",
            "departure": "2024-06-24T07:48:41Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_1",
              "type": "delivery",
              "location": {
                "lat": 52.63329,
                "lng": 13.3138
              },
              "time": {
                "start": "2024-06-24T07:43:41Z",
                "end": "2024-06-24T07:48:41Z"
              }
            }
          ],
          "location": {
            "lat": 52.63329,
            "lng": 13.3138
          },
          "distance": 33402
        },
        {
          "time": {
            "arrival": "2024-06-24T07:54:51Z",
            "departure": "2024-06-24T07:59:51Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_20",
              "type": "delivery",
              "location": {
                "lat": 52.61955,
                "lng": 13.29845
              },
              "time": {
                "start": "2024-06-24T07:54:51Z",
                "end": "2024-06-24T07:59:51Z"
              }
            }
          ],
          "location": {
            "lat": 52.61955,
            "lng": 13.29845
          },
          "distance": 36663
        },
        {
          "time": {
            "arrival": "2024-06-24T08:08:12Z",
            "departure": "2024-06-24T08:13:12Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_39",
              "type": "delivery",
              "location": {
                "lat": 52.6029,
                "lng": 13.3113
              },
              "time": {
                "start": "2024-06-24T08:08:12Z",
                "end": "2024-06-24T08:13:12Z"
              }
            }
          ],
          "location": {
            "lat": 52.6029,
            "lng": 13.3113
          },
          "distance": 41036
        },
        {
          "time": {
            "arrival": "2024-06-24T08:18:39Z",
            "departure": "2024-06-24T08:23:39Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_30",
              "type": "delivery",
              "location": {
                "lat": 52.60079217247425,
                "lng": 13.339813254226156
              },
              "time": {
                "start": "2024-06-24T08:18:39Z",
                "end": "2024-06-24T08:23:39Z"
              }
            }
          ],
          "location": {
            "lat": 52.60079217247425,
            "lng": 13.339813254226156
          },
          "distance": 43822
        },
        {
          "time": {
            "arrival": "2024-06-24T08:29:21Z",
            "departure": "2024-06-24T08:34:21Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_47",
              "type": "delivery",
              "location": {
                "lat": 52.591995183321515,
                "lng": 13.36000789424169
              },
              "time": {
                "start": "2024-06-24T08:29:21Z",
                "end": "2024-06-24T08:34:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.591995183321515,
            "lng": 13.36000789424169
          },
          "distance": 46074
        },
        {
          "time": {
            "arrival": "2024-06-24T08:44:06Z",
            "departure": "2024-06-24T08:49:06Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_14",
              "type": "delivery",
              "location": {
                "lat": 52.58038089373736,
                "lng": 13.30447922221816
              },
              "time": {
                "start": "2024-06-24T08:44:06Z",
                "end": "2024-06-24T08:49:06Z"
              }
            }
          ],
          "location": {
            "lat": 52.58038089373736,
            "lng": 13.30447922221816
          },
          "distance": 50689
        },
        {
          "time": {
            "arrival": "2024-06-24T09:01:34Z",
            "departure": "2024-06-24T09:06:34Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_26",
              "type": "delivery",
              "location": {
                "lat": 52.53754,
                "lng": 13.34152
              },
              "time": {
                "start": "2024-06-24T09:01:34Z",
                "end": "2024-06-24T09:06:34Z"
              }
            }
          ],
          "location": {
            "lat": 52.53754,
            "lng": 13.34152
          },
          "distance": 58307
        },
        {
          "time": {
            "arrival": "2024-06-24T09:10:48Z",
            "departure": "2024-06-24T09:15:48Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_10",
              "type": "delivery",
              "location": {
                "lat": 52.5313,
                "lng": 13.35356
              },
              "time": {
                "start": "2024-06-24T09:10:48Z",
                "end": "2024-06-24T09:15:48Z"
              }
            }
          ],
          "location": {
            "lat": 52.5313,
            "lng": 13.35356
          },
          "distance": 60132
        },
        {
          "time": {
            "arrival": "2024-06-24T09:22:25Z",
            "departure": "2024-06-24T09:22:25Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": {
                "start": "2024-06-24T09:22:25Z",
                "end": "2024-06-24T09:22:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.531,
            "lng": 13.38461
          },
          "distance": 63270
        }
      ],
      "statistic": {
        "cost": 607.5415,
        "distance": 63270,
        "duration": 12145,
        "times": {
          "driving": 7645,
          "serving": 4500,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    }
  ]
}

超過コストの計算を追加する

次のコードスニペットに示すように、このシナリオではexcessCosts機能を利用して、車両が8時間以上運転された場合にコストペナルティを導入することで、先ほど説明した問題を拡張します。

"excessCosts": {
  "duration": {
    "limit": 28800,
    "fixedCost": 0,
    "stepCost": 100,
    "stepSize": 3600
  }
}

前のスニペットによれば、8時間のソフト制限を超えてから1時間ごとに、車両には追加コストとして100が発生しますが、追加の1回限りの固定ペナルティはありません。

さらに、次の問題仕様では、シフト時間を12時間に延長することで超過所要時間コストを計算できる機能を利用しています。これにより、特定のケースで過剰なコストペナルティを発生させる必要がある場合でも、最適化アルゴリズムで最も効率的なツアーソリューションを見つけることができます。

Click to expand/collapse the sample JSON
{
  "fleet": {
    "types": [
      {
        "profile": "car",
        "amount": 5,
        "capacity": [
          50
        ],
        "costs": {
          "time": 0.0001,
          "distance": 0.0001,
          "fixed": 600,
          "excessCosts": {
            "duration": {
              "limit": 28800,
              "fixedCost": 0,
              "stepCost": 100,
              "stepSize": 3600
            }
          }
        },
        "id": "vehicle_1",
        "shifts": [
          {
            "start": {
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": "2024-06-24T08:00:00+02:00"
            },
            "end": {
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": "2024-06-24T20: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": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_2",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.62738533184079,
                    "lng": 13.3789
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_3",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.51635175288175,
                    "lng": 13.343661020679571
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_4",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.456,
                    "lng": 13.403260583257188
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_5",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.63256,
                    "lng": 13.37322
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_6",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.45810373923444,
                    "lng": 13.331808942475499
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_7",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.439442845393685,
                    "lng": 13.336118100685782
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_8",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.53213114000045,
                    "lng": 13.373517153879769
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_9",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4823,
                    "lng": 13.4703
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_10",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.5313,
                    "lng": 13.35356
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_11",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.457844833248835,
                    "lng": 13.322525701671735
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_12",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4329271708958,
                    "lng": 13.376558539227483
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_13",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48128598928299,
                    "lng": 13.4944
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_14",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.580380893737356,
                    "lng": 13.304479222218161
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_15",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.444597854004236,
                    "lng": 13.42729037972278
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_16",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.5102,
                    "lng": 13.3444
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_17",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48903177127663,
                    "lng": 13.495944342993262
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_18",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.62863,
                    "lng": 13.3621182
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_19",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.65831976801964,
                    "lng": 13.359646771531477
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_20",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.61955,
                    "lng": 13.29845
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_21",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.49949154428338,
                    "lng": 13.40857671284082
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_22",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.465255531970406,
                    "lng": 13.511537556934355
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_23",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4312,
                    "lng": 13.45023
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_24",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.5293,
                    "lng": 13.38507204916371
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_25",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.6378,
                    "lng": 13.48675
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_26",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.53754,
                    "lng": 13.34152
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_27",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48811100200862,
                    "lng": 13.376
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_28",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4745,
                    "lng": 13.42
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_29",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.58884270031872,
                    "lng": 13.352068415230912
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_30",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.60079217247425,
                    "lng": 13.339813254226156
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_31",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.4779,
                    "lng": 13.5012
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_32",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.60066027234286,
                    "lng": 13.502741838681837
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_33",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.55437436208552,
                    "lng": 13.503142187091647
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_34",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.48446152479127,
                    "lng": 13.392004256315916
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_35",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.482203294624796,
                    "lng": 13.391214601891551
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_36",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.60842932011795,
                    "lng": 13.46922174529483
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_37",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.47651505101506,
                    "lng": 13.459944175857151
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_38",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.50488105730338,
                    "lng": 13.355333507786808
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_39",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.6029,
                    "lng": 13.3113
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_40",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.6543,
                    "lng": 13.39278
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_41",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.51508491755749,
                    "lng": 13.38
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_42",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.63313572894435,
                    "lng": 13.506488581249922
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_43",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.459450803409204,
                    "lng": 13.396015195980405
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_44",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.54433793446157,
                    "lng": 13.49579242116612
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_45",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.486517527979494,
                    "lng": 13.382057792236846
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_46",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.55606147412602,
                    "lng": 13.41517487839967
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_47",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.591995183321515,
                    "lng": 13.36000789424169
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_48",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.56223251898173,
                    "lng": 13.471999398223556
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      },
      {
        "id": "Job_49",
        "tasks": {
          "deliveries": [
            {
              "places": [
                {
                  "location": {
                    "lat": 52.595251760429065,
                    "lng": 13.456764166098564
                  },
                  "duration": 300
                }
              ],
              "demand": [
                1
              ]
            }
          ]
        }
      }
    ]
  },
  "objectives": [
    {
      "type": "minimizeUnassigned"
    },
    {
      "type": "minimizeCost"
    }
  ],
  "configuration": {
    "experimentalFeatures": [
      "excessCosts"
    ]
  }
}

ソリューション

次の図はソリューションの概要を視覚的に示したものです。

ツアー所要時間の超過コスト計算を含むソリューション

ビジュアル概要に示されているように、このソリューションはいくつかの重要な点が前のソリューションとは異なります。具体的には、ツアーの数が1つのインスタンスに削減されました。さらに、ツアーに参加した車両は8時間の制限を2時間10分超過したため、ツアーで追加コストとして300が発生しました。最も重要な点は、ツアーの総コストが922だったことです。これは前述のソリューション (1223) と比較して大幅な削減 (24.7%) を示しています。

次のセクションに参照用の完全なソリューションJSONを示します。

Click to expand/collapse the sample JSON
{
  "statistic": {
    "cost": 921.6154,
    "distance": 179553,
    "duration": 36601,
    "times": {
      "driving": 21901,
      "serving": 14700,
      "waiting": 0,
      "stopping": 0,
      "break": 0
    }
  },
  "tours": [
    {
      "vehicleId": "vehicle_1_3",
      "typeId": "vehicle_1",
      "stops": [
        {
          "time": {
            "arrival": "2024-06-24T06:00:00Z",
            "departure": "2024-06-24T06:00:00Z"
          },
          "load": [
            49
          ],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": {
                "start": "2024-06-24T06:00:00Z",
                "end": "2024-06-24T06:00:00Z"
              }
            }
          ],
          "location": {
            "lat": 52.531,
            "lng": 13.38461
          },
          "distance": 0
        },
        {
          "time": {
            "arrival": "2024-06-24T06:01:15Z",
            "departure": "2024-06-24T06:06:15Z"
          },
          "load": [
            48
          ],
          "activities": [
            {
              "jobId": "Job_24",
              "type": "delivery",
              "location": {
                "lat": 52.5293,
                "lng": 13.38507204916371
              },
              "time": {
                "start": "2024-06-24T06:01:15Z",
                "end": "2024-06-24T06:06:15Z"
              }
            }
          ],
          "location": {
            "lat": 52.5293,
            "lng": 13.38507204916371
          },
          "distance": 485
        },
        {
          "time": {
            "arrival": "2024-06-24T06:09:44Z",
            "departure": "2024-06-24T06:14:44Z"
          },
          "load": [
            47
          ],
          "activities": [
            {
              "jobId": "Job_8",
              "type": "delivery",
              "location": {
                "lat": 52.53213114000045,
                "lng": 13.373517153879767
              },
              "time": {
                "start": "2024-06-24T06:09:44Z",
                "end": "2024-06-24T06:14:44Z"
              }
            }
          ],
          "location": {
            "lat": 52.53213114000045,
            "lng": 13.373517153879767
          },
          "distance": 1679
        },
        {
          "time": {
            "arrival": "2024-06-24T06:20:38Z",
            "departure": "2024-06-24T06:25:38Z"
          },
          "load": [
            46
          ],
          "activities": [
            {
              "jobId": "Job_10",
              "type": "delivery",
              "location": {
                "lat": 52.5313,
                "lng": 13.35356
              },
              "time": {
                "start": "2024-06-24T06:20:38Z",
                "end": "2024-06-24T06:25:38Z"
              }
            }
          ],
          "location": {
            "lat": 52.5313,
            "lng": 13.35356
          },
          "distance": 4551
        },
        {
          "time": {
            "arrival": "2024-06-24T06:29:53Z",
            "departure": "2024-06-24T06:34:53Z"
          },
          "load": [
            45
          ],
          "activities": [
            {
              "jobId": "Job_26",
              "type": "delivery",
              "location": {
                "lat": 52.53754,
                "lng": 13.34152
              },
              "time": {
                "start": "2024-06-24T06:29:53Z",
                "end": "2024-06-24T06:34:53Z"
              }
            }
          ],
          "location": {
            "lat": 52.53754,
            "lng": 13.34152
          },
          "distance": 6353
        },
        {
          "time": {
            "arrival": "2024-06-24T06:41:46Z",
            "departure": "2024-06-24T06:46:46Z"
          },
          "load": [
            44
          ],
          "activities": [
            {
              "jobId": "Job_3",
              "type": "delivery",
              "location": {
                "lat": 52.51635175288175,
                "lng": 13.343661020679573
              },
              "time": {
                "start": "2024-06-24T06:41:46Z",
                "end": "2024-06-24T06:46:46Z"
              }
            }
          ],
          "location": {
            "lat": 52.51635175288175,
            "lng": 13.343661020679573
          },
          "distance": 9645
        },
        {
          "time": {
            "arrival": "2024-06-24T06:51:55Z",
            "departure": "2024-06-24T06:56:55Z"
          },
          "load": [
            43
          ],
          "activities": [
            {
              "jobId": "Job_16",
              "type": "delivery",
              "location": {
                "lat": 52.5102,
                "lng": 13.3444
              },
              "time": {
                "start": "2024-06-24T06:51:55Z",
                "end": "2024-06-24T06:56:55Z"
              }
            }
          ],
          "location": {
            "lat": 52.5102,
            "lng": 13.3444
          },
          "distance": 11936
        },
        {
          "time": {
            "arrival": "2024-06-24T07:01:02Z",
            "departure": "2024-06-24T07:06:02Z"
          },
          "load": [
            42
          ],
          "activities": [
            {
              "jobId": "Job_38",
              "type": "delivery",
              "location": {
                "lat": 52.50488105730338,
                "lng": 13.355333507786808
              },
              "time": {
                "start": "2024-06-24T07:01:02Z",
                "end": "2024-06-24T07:06:02Z"
              }
            }
          ],
          "location": {
            "lat": 52.50488105730338,
            "lng": 13.355333507786808
          },
          "distance": 13376
        },
        {
          "time": {
            "arrival": "2024-06-24T07:12:03Z",
            "departure": "2024-06-24T07:17:03Z"
          },
          "load": [
            41
          ],
          "activities": [
            {
              "jobId": "Job_41",
              "type": "delivery",
              "location": {
                "lat": 52.51508491755749,
                "lng": 13.38
              },
              "time": {
                "start": "2024-06-24T07:12:03Z",
                "end": "2024-06-24T07:17:03Z"
              }
            }
          ],
          "location": {
            "lat": 52.51508491755749,
            "lng": 13.38
          },
          "distance": 16161
        },
        {
          "time": {
            "arrival": "2024-06-24T07:24:39Z",
            "departure": "2024-06-24T07:29:39Z"
          },
          "load": [
            40
          ],
          "activities": [
            {
              "jobId": "Job_21",
              "type": "delivery",
              "location": {
                "lat": 52.49949154428338,
                "lng": 13.40857671284082
              },
              "time": {
                "start": "2024-06-24T07:24:39Z",
                "end": "2024-06-24T07:29:39Z"
              }
            }
          ],
          "location": {
            "lat": 52.49949154428338,
            "lng": 13.40857671284082
          },
          "distance": 19563
        },
        {
          "time": {
            "arrival": "2024-06-24T07:37:06Z",
            "departure": "2024-06-24T07:42:06Z"
          },
          "load": [
            39
          ],
          "activities": [
            {
              "jobId": "Job_27",
              "type": "delivery",
              "location": {
                "lat": 52.48811100200862,
                "lng": 13.376
              },
              "time": {
                "start": "2024-06-24T07:37:06Z",
                "end": "2024-06-24T07:42:06Z"
              }
            }
          ],
          "location": {
            "lat": 52.48811100200862,
            "lng": 13.376
          },
          "distance": 22947
        },
        {
          "time": {
            "arrival": "2024-06-24T07:46:07Z",
            "departure": "2024-06-24T07:51:07Z"
          },
          "load": [
            38
          ],
          "activities": [
            {
              "jobId": "Job_45",
              "type": "delivery",
              "location": {
                "lat": 52.486517527979494,
                "lng": 13.382057792236846
              },
              "time": {
                "start": "2024-06-24T07:46:07Z",
                "end": "2024-06-24T07:51:07Z"
              }
            }
          ],
          "location": {
            "lat": 52.486517527979494,
            "lng": 13.382057792236846
          },
          "distance": 24159
        },
        {
          "time": {
            "arrival": "2024-06-24T07:55:18Z",
            "departure": "2024-06-24T08:00:18Z"
          },
          "load": [
            37
          ],
          "activities": [
            {
              "jobId": "Job_34",
              "type": "delivery",
              "location": {
                "lat": 52.48446152479127,
                "lng": 13.392004256315916
              },
              "time": {
                "start": "2024-06-24T07:55:18Z",
                "end": "2024-06-24T08:00:18Z"
              }
            }
          ],
          "location": {
            "lat": 52.48446152479127,
            "lng": 13.392004256315916
          },
          "distance": 25309
        },
        {
          "time": {
            "arrival": "2024-06-24T08:04:41Z",
            "departure": "2024-06-24T08:09:41Z"
          },
          "load": [
            36
          ],
          "activities": [
            {
              "jobId": "Job_35",
              "type": "delivery",
              "location": {
                "lat": 52.4822032946248,
                "lng": 13.391214601891551
              },
              "time": {
                "start": "2024-06-24T08:04:41Z",
                "end": "2024-06-24T08:09:41Z"
              }
            }
          ],
          "location": {
            "lat": 52.4822032946248,
            "lng": 13.391214601891551
          },
          "distance": 26937
        },
        {
          "time": {
            "arrival": "2024-06-24T08:17:01Z",
            "departure": "2024-06-24T08:22:01Z"
          },
          "load": [
            35
          ],
          "activities": [
            {
              "jobId": "Job_28",
              "type": "delivery",
              "location": {
                "lat": 52.4745,
                "lng": 13.42
              },
              "time": {
                "start": "2024-06-24T08:17:01Z",
                "end": "2024-06-24T08:22:01Z"
              }
            }
          ],
          "location": {
            "lat": 52.4745,
            "lng": 13.42
          },
          "distance": 30144
        },
        {
          "time": {
            "arrival": "2024-06-24T08:31:38Z",
            "departure": "2024-06-24T08:36:38Z"
          },
          "load": [
            34
          ],
          "activities": [
            {
              "jobId": "Job_15",
              "type": "delivery",
              "location": {
                "lat": 52.44459785400424,
                "lng": 13.42729037972278
              },
              "time": {
                "start": "2024-06-24T08:31:38Z",
                "end": "2024-06-24T08:36:38Z"
              }
            }
          ],
          "location": {
            "lat": 52.44459785400424,
            "lng": 13.42729037972278
          },
          "distance": 34632
        },
        {
          "time": {
            "arrival": "2024-06-24T08:44:36Z",
            "departure": "2024-06-24T08:49:36Z"
          },
          "load": [
            33
          ],
          "activities": [
            {
              "jobId": "Job_23",
              "type": "delivery",
              "location": {
                "lat": 52.4312,
                "lng": 13.45023
              },
              "time": {
                "start": "2024-06-24T08:44:36Z",
                "end": "2024-06-24T08:49:36Z"
              }
            }
          ],
          "location": {
            "lat": 52.4312,
            "lng": 13.45023
          },
          "distance": 38943
        },
        {
          "time": {
            "arrival": "2024-06-24T09:02:47Z",
            "departure": "2024-06-24T09:07:47Z"
          },
          "load": [
            32
          ],
          "activities": [
            {
              "jobId": "Job_12",
              "type": "delivery",
              "location": {
                "lat": 52.4329271708958,
                "lng": 13.376558539227483
              },
              "time": {
                "start": "2024-06-24T09:02:47Z",
                "end": "2024-06-24T09:07:47Z"
              }
            }
          ],
          "location": {
            "lat": 52.4329271708958,
            "lng": 13.376558539227483
          },
          "distance": 46633
        },
        {
          "time": {
            "arrival": "2024-06-24T09:16:09Z",
            "departure": "2024-06-24T09:21:09Z"
          },
          "load": [
            31
          ],
          "activities": [
            {
              "jobId": "Job_7",
              "type": "delivery",
              "location": {
                "lat": 52.439442845393685,
                "lng": 13.336118100685782
              },
              "time": {
                "start": "2024-06-24T09:16:09Z",
                "end": "2024-06-24T09:21:09Z"
              }
            }
          ],
          "location": {
            "lat": 52.439442845393685,
            "lng": 13.336118100685782
          },
          "distance": 50941
        },
        {
          "time": {
            "arrival": "2024-06-24T09:27:21Z",
            "departure": "2024-06-24T09:32:21Z"
          },
          "load": [
            30
          ],
          "activities": [
            {
              "jobId": "Job_11",
              "type": "delivery",
              "location": {
                "lat": 52.457844833248835,
                "lng": 13.322525701671736
              },
              "time": {
                "start": "2024-06-24T09:27:21Z",
                "end": "2024-06-24T09:32:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.457844833248835,
            "lng": 13.322525701671736
          },
          "distance": 53701
        },
        {
          "time": {
            "arrival": "2024-06-24T09:35:18Z",
            "departure": "2024-06-24T09:40:18Z"
          },
          "load": [
            29
          ],
          "activities": [
            {
              "jobId": "Job_6",
              "type": "delivery",
              "location": {
                "lat": 52.45810373923444,
                "lng": 13.3318089424755
              },
              "time": {
                "start": "2024-06-24T09:35:18Z",
                "end": "2024-06-24T09:40:18Z"
              }
            }
          ],
          "location": {
            "lat": 52.45810373923444,
            "lng": 13.3318089424755
          },
          "distance": 54889
        },
        {
          "time": {
            "arrival": "2024-06-24T09:48:57Z",
            "departure": "2024-06-24T09:53:57Z"
          },
          "load": [
            28
          ],
          "activities": [
            {
              "jobId": "Job_43",
              "type": "delivery",
              "location": {
                "lat": 52.4594508034092,
                "lng": 13.396015195980404
              },
              "time": {
                "start": "2024-06-24T09:48:57Z",
                "end": "2024-06-24T09:53:57Z"
              }
            }
          ],
          "location": {
            "lat": 52.4594508034092,
            "lng": 13.396015195980404
          },
          "distance": 59645
        },
        {
          "time": {
            "arrival": "2024-06-24T09:56:01Z",
            "departure": "2024-06-24T10:01:01Z"
          },
          "load": [
            27
          ],
          "activities": [
            {
              "jobId": "Job_4",
              "type": "delivery",
              "location": {
                "lat": 52.456,
                "lng": 13.403260583257188
              },
              "time": {
                "start": "2024-06-24T09:56:01Z",
                "end": "2024-06-24T10:01:01Z"
              }
            }
          ],
          "location": {
            "lat": 52.456,
            "lng": 13.403260583257188
          },
          "distance": 60547
        },
        {
          "time": {
            "arrival": "2024-06-24T10:10:16Z",
            "departure": "2024-06-24T10:15:16Z"
          },
          "load": [
            26
          ],
          "activities": [
            {
              "jobId": "Job_37",
              "type": "delivery",
              "location": {
                "lat": 52.47651505101506,
                "lng": 13.459944175857151
              },
              "time": {
                "start": "2024-06-24T10:10:16Z",
                "end": "2024-06-24T10:15:16Z"
              }
            }
          ],
          "location": {
            "lat": 52.47651505101506,
            "lng": 13.459944175857151
          },
          "distance": 67193
        },
        {
          "time": {
            "arrival": "2024-06-24T10:21:22Z",
            "departure": "2024-06-24T10:26:22Z"
          },
          "load": [
            25
          ],
          "activities": [
            {
              "jobId": "Job_9",
              "type": "delivery",
              "location": {
                "lat": 52.4823,
                "lng": 13.4703
              },
              "time": {
                "start": "2024-06-24T10:21:22Z",
                "end": "2024-06-24T10:26:22Z"
              }
            }
          ],
          "location": {
            "lat": 52.4823,
            "lng": 13.4703
          },
          "distance": 69905
        },
        {
          "time": {
            "arrival": "2024-06-24T10:36:35Z",
            "departure": "2024-06-24T10:41:35Z"
          },
          "load": [
            24
          ],
          "activities": [
            {
              "jobId": "Job_13",
              "type": "delivery",
              "location": {
                "lat": 52.48128598928299,
                "lng": 13.4944
              },
              "time": {
                "start": "2024-06-24T10:36:35Z",
                "end": "2024-06-24T10:41:35Z"
              }
            }
          ],
          "location": {
            "lat": 52.48128598928299,
            "lng": 13.4944
          },
          "distance": 72032
        },
        {
          "time": {
            "arrival": "2024-06-24T10:56:10Z",
            "departure": "2024-06-24T11:01:10Z"
          },
          "load": [
            23
          ],
          "activities": [
            {
              "jobId": "Job_22",
              "type": "delivery",
              "location": {
                "lat": 52.465255531970406,
                "lng": 13.511537556934355
              },
              "time": {
                "start": "2024-06-24T10:56:10Z",
                "end": "2024-06-24T11:01:10Z"
              }
            }
          ],
          "location": {
            "lat": 52.465255531970406,
            "lng": 13.511537556934355
          },
          "distance": 76685
        },
        {
          "time": {
            "arrival": "2024-06-24T11:07:59Z",
            "departure": "2024-06-24T11:12:59Z"
          },
          "load": [
            22
          ],
          "activities": [
            {
              "jobId": "Job_31",
              "type": "delivery",
              "location": {
                "lat": 52.4779,
                "lng": 13.5012
              },
              "time": {
                "start": "2024-06-24T11:07:59Z",
                "end": "2024-06-24T11:12:59Z"
              }
            }
          ],
          "location": {
            "lat": 52.4779,
            "lng": 13.5012
          },
          "distance": 79186
        },
        {
          "time": {
            "arrival": "2024-06-24T11:17:52Z",
            "departure": "2024-06-24T11:22:52Z"
          },
          "load": [
            21
          ],
          "activities": [
            {
              "jobId": "Job_17",
              "type": "delivery",
              "location": {
                "lat": 52.48903177127663,
                "lng": 13.495944342993262
              },
              "time": {
                "start": "2024-06-24T11:17:52Z",
                "end": "2024-06-24T11:22:52Z"
              }
            }
          ],
          "location": {
            "lat": 52.48903177127663,
            "lng": 13.495944342993262
          },
          "distance": 80551
        },
        {
          "time": {
            "arrival": "2024-06-24T11:36:47Z",
            "departure": "2024-06-24T11:41:47Z"
          },
          "load": [
            20
          ],
          "activities": [
            {
              "jobId": "Job_44",
              "type": "delivery",
              "location": {
                "lat": 52.54433793446157,
                "lng": 13.49579242116612
              },
              "time": {
                "start": "2024-06-24T11:36:47Z",
                "end": "2024-06-24T11:41:47Z"
              }
            }
          ],
          "location": {
            "lat": 52.54433793446157,
            "lng": 13.49579242116612
          },
          "distance": 88689
        },
        {
          "time": {
            "arrival": "2024-06-24T11:45:58Z",
            "departure": "2024-06-24T11:50:58Z"
          },
          "load": [
            19
          ],
          "activities": [
            {
              "jobId": "Job_33",
              "type": "delivery",
              "location": {
                "lat": 52.55437436208552,
                "lng": 13.503142187091647
              },
              "time": {
                "start": "2024-06-24T11:45:58Z",
                "end": "2024-06-24T11:50:58Z"
              }
            }
          ],
          "location": {
            "lat": 52.55437436208552,
            "lng": 13.503142187091647
          },
          "distance": 90697
        },
        {
          "time": {
            "arrival": "2024-06-24T11:57:30Z",
            "departure": "2024-06-24T12:02:30Z"
          },
          "load": [
            18
          ],
          "activities": [
            {
              "jobId": "Job_48",
              "type": "delivery",
              "location": {
                "lat": 52.56223251898173,
                "lng": 13.471999398223556
              },
              "time": {
                "start": "2024-06-24T11:57:30Z",
                "end": "2024-06-24T12:02:30Z"
              }
            }
          ],
          "location": {
            "lat": 52.56223251898173,
            "lng": 13.471999398223556
          },
          "distance": 94694
        },
        {
          "time": {
            "arrival": "2024-06-24T12:10:21Z",
            "departure": "2024-06-24T12:15:21Z"
          },
          "load": [
            17
          ],
          "activities": [
            {
              "jobId": "Job_32",
              "type": "delivery",
              "location": {
                "lat": 52.60066027234286,
                "lng": 13.502741838681835
              },
              "time": {
                "start": "2024-06-24T12:10:21Z",
                "end": "2024-06-24T12:15:21Z"
              }
            }
          ],
          "location": {
            "lat": 52.60066027234286,
            "lng": 13.502741838681835
          },
          "distance": 100359
        },
        {
          "time": {
            "arrival": "2024-06-24T12:28:16Z",
            "departure": "2024-06-24T12:33:16Z"
          },
          "load": [
            16
          ],
          "activities": [
            {
              "jobId": "Job_42",
              "type": "delivery",
              "location": {
                "lat": 52.63313572894435,
                "lng": 13.506488581249922
              },
              "time": {
                "start": "2024-06-24T12:28:16Z",
                "end": "2024-06-24T12:33:16Z"
              }
            }
          ],
          "location": {
            "lat": 52.63313572894435,
            "lng": 13.506488581249922
          },
          "distance": 109190
        },
        {
          "time": {
            "arrival": "2024-06-24T12:37:26Z",
            "departure": "2024-06-24T12:42:26Z"
          },
          "load": [
            15
          ],
          "activities": [
            {
              "jobId": "Job_25",
              "type": "delivery",
              "location": {
                "lat": 52.6378,
                "lng": 13.48675
              },
              "time": {
                "start": "2024-06-24T12:37:26Z",
                "end": "2024-06-24T12:42:26Z"
              }
            }
          ],
          "location": {
            "lat": 52.6378,
            "lng": 13.48675
          },
          "distance": 110749
        },
        {
          "time": {
            "arrival": "2024-06-24T12:51:23Z",
            "departure": "2024-06-24T12:56:23Z"
          },
          "load": [
            14
          ],
          "activities": [
            {
              "jobId": "Job_36",
              "type": "delivery",
              "location": {
                "lat": 52.60842932011795,
                "lng": 13.46922174529483
              },
              "time": {
                "start": "2024-06-24T12:51:23Z",
                "end": "2024-06-24T12:56:23Z"
              }
            }
          ],
          "location": {
            "lat": 52.60842932011795,
            "lng": 13.46922174529483
          },
          "distance": 115985
        },
        {
          "time": {
            "arrival": "2024-06-24T13:01:41Z",
            "departure": "2024-06-24T13:06:41Z"
          },
          "load": [
            13
          ],
          "activities": [
            {
              "jobId": "Job_49",
              "type": "delivery",
              "location": {
                "lat": 52.595251760429065,
                "lng": 13.456764166098564
              },
              "time": {
                "start": "2024-06-24T13:01:41Z",
                "end": "2024-06-24T13:06:41Z"
              }
            }
          ],
          "location": {
            "lat": 52.595251760429065,
            "lng": 13.456764166098564
          },
          "distance": 118829
        },
        {
          "time": {
            "arrival": "2024-06-24T13:21:40Z",
            "departure": "2024-06-24T13:26:40Z"
          },
          "load": [
            12
          ],
          "activities": [
            {
              "jobId": "Job_2",
              "type": "delivery",
              "location": {
                "lat": 52.62738533184079,
                "lng": 13.3789
              },
              "time": {
                "start": "2024-06-24T13:21:40Z",
                "end": "2024-06-24T13:26:40Z"
              }
            }
          ],
          "location": {
            "lat": 52.62738533184079,
            "lng": 13.3789
          },
          "distance": 127959
        },
        {
          "time": {
            "arrival": "2024-06-24T13:34:20Z",
            "departure": "2024-06-24T13:39:20Z"
          },
          "load": [
            11
          ],
          "activities": [
            {
              "jobId": "Job_18",
              "type": "delivery",
              "location": {
                "lat": 52.62863,
                "lng": 13.3621182
              },
              "time": {
                "start": "2024-06-24T13:34:20Z",
                "end": "2024-06-24T13:39:20Z"
              }
            }
          ],
          "location": {
            "lat": 52.62863,
            "lng": 13.3621182
          },
          "distance": 130741
        },
        {
          "time": {
            "arrival": "2024-06-24T13:42:14Z",
            "departure": "2024-06-24T13:47:14Z"
          },
          "load": [
            10
          ],
          "activities": [
            {
              "jobId": "Job_5",
              "type": "delivery",
              "location": {
                "lat": 52.63256,
                "lng": 13.37322
              },
              "time": {
                "start": "2024-06-24T13:42:14Z",
                "end": "2024-06-24T13:47:14Z"
              }
            }
          ],
          "location": {
            "lat": 52.63256,
            "lng": 13.37322
          },
          "distance": 131793
        },
        {
          "time": {
            "arrival": "2024-06-24T13:56:24Z",
            "departure": "2024-06-24T14:01:24Z"
          },
          "load": [
            9
          ],
          "activities": [
            {
              "jobId": "Job_40",
              "type": "delivery",
              "location": {
                "lat": 52.6543,
                "lng": 13.39278
              },
              "time": {
                "start": "2024-06-24T13:56:24Z",
                "end": "2024-06-24T14:01:24Z"
              }
            }
          ],
          "location": {
            "lat": 52.6543,
            "lng": 13.39278
          },
          "distance": 136796
        },
        {
          "time": {
            "arrival": "2024-06-24T14:06:25Z",
            "departure": "2024-06-24T14:11:25Z"
          },
          "load": [
            8
          ],
          "activities": [
            {
              "jobId": "Job_19",
              "type": "delivery",
              "location": {
                "lat": 52.65831976801964,
                "lng": 13.359646771531477
              },
              "time": {
                "start": "2024-06-24T14:06:25Z",
                "end": "2024-06-24T14:11:25Z"
              }
            }
          ],
          "location": {
            "lat": 52.65831976801964,
            "lng": 13.359646771531477
          },
          "distance": 139516
        },
        {
          "time": {
            "arrival": "2024-06-24T14:18:03Z",
            "departure": "2024-06-24T14:23:03Z"
          },
          "load": [
            7
          ],
          "activities": [
            {
              "jobId": "Job_1",
              "type": "delivery",
              "location": {
                "lat": 52.63329,
                "lng": 13.3138
              },
              "time": {
                "start": "2024-06-24T14:18:03Z",
                "end": "2024-06-24T14:23:03Z"
              }
            }
          ],
          "location": {
            "lat": 52.63329,
            "lng": 13.3138
          },
          "distance": 144388
        },
        {
          "time": {
            "arrival": "2024-06-24T14:29:13Z",
            "departure": "2024-06-24T14:34:13Z"
          },
          "load": [
            6
          ],
          "activities": [
            {
              "jobId": "Job_20",
              "type": "delivery",
              "location": {
                "lat": 52.61955,
                "lng": 13.29845
              },
              "time": {
                "start": "2024-06-24T14:29:13Z",
                "end": "2024-06-24T14:34:13Z"
              }
            }
          ],
          "location": {
            "lat": 52.61955,
            "lng": 13.29845
          },
          "distance": 147649
        },
        {
          "time": {
            "arrival": "2024-06-24T14:42:34Z",
            "departure": "2024-06-24T14:47:34Z"
          },
          "load": [
            5
          ],
          "activities": [
            {
              "jobId": "Job_39",
              "type": "delivery",
              "location": {
                "lat": 52.6029,
                "lng": 13.3113
              },
              "time": {
                "start": "2024-06-24T14:42:34Z",
                "end": "2024-06-24T14:47:34Z"
              }
            }
          ],
          "location": {
            "lat": 52.6029,
            "lng": 13.3113
          },
          "distance": 152022
        },
        {
          "time": {
            "arrival": "2024-06-24T14:55:01Z",
            "departure": "2024-06-24T15:00:01Z"
          },
          "load": [
            4
          ],
          "activities": [
            {
              "jobId": "Job_14",
              "type": "delivery",
              "location": {
                "lat": 52.58038089373736,
                "lng": 13.30447922221816
              },
              "time": {
                "start": "2024-06-24T14:55:01Z",
                "end": "2024-06-24T15:00:01Z"
              }
            }
          ],
          "location": {
            "lat": 52.58038089373736,
            "lng": 13.30447922221816
          },
          "distance": 155814
        },
        {
          "time": {
            "arrival": "2024-06-24T15:06:58Z",
            "departure": "2024-06-24T15:11:58Z"
          },
          "load": [
            3
          ],
          "activities": [
            {
              "jobId": "Job_30",
              "type": "delivery",
              "location": {
                "lat": 52.60079217247425,
                "lng": 13.339813254226156
              },
              "time": {
                "start": "2024-06-24T15:06:58Z",
                "end": "2024-06-24T15:11:58Z"
              }
            }
          ],
          "location": {
            "lat": 52.60079217247425,
            "lng": 13.339813254226156
          },
          "distance": 159862
        },
        {
          "time": {
            "arrival": "2024-06-24T15:17:40Z",
            "departure": "2024-06-24T15:22:40Z"
          },
          "load": [
            2
          ],
          "activities": [
            {
              "jobId": "Job_47",
              "type": "delivery",
              "location": {
                "lat": 52.591995183321515,
                "lng": 13.36000789424169
              },
              "time": {
                "start": "2024-06-24T15:17:40Z",
                "end": "2024-06-24T15:22:40Z"
              }
            }
          ],
          "location": {
            "lat": 52.591995183321515,
            "lng": 13.36000789424169
          },
          "distance": 162114
        },
        {
          "time": {
            "arrival": "2024-06-24T15:34:04Z",
            "departure": "2024-06-24T15:39:04Z"
          },
          "load": [
            1
          ],
          "activities": [
            {
              "jobId": "Job_29",
              "type": "delivery",
              "location": {
                "lat": 52.58884270031872,
                "lng": 13.352068415230912
              },
              "time": {
                "start": "2024-06-24T15:34:04Z",
                "end": "2024-06-24T15:39:04Z"
              }
            }
          ],
          "location": {
            "lat": 52.58884270031872,
            "lng": 13.352068415230912
          },
          "distance": 166769
        },
        {
          "time": {
            "arrival": "2024-06-24T15:56:18Z",
            "departure": "2024-06-24T16:01:18Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "Job_46",
              "type": "delivery",
              "location": {
                "lat": 52.55606147412602,
                "lng": 13.41517487839967
              },
              "time": {
                "start": "2024-06-24T15:56:18Z",
                "end": "2024-06-24T16:01:18Z"
              }
            }
          ],
          "location": {
            "lat": 52.55606147412602,
            "lng": 13.41517487839967
          },
          "distance": 175008
        },
        {
          "time": {
            "arrival": "2024-06-24T16:10:01Z",
            "departure": "2024-06-24T16:10:01Z"
          },
          "load": [
            0
          ],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "location": {
                "lat": 52.531,
                "lng": 13.38461
              },
              "time": {
                "start": "2024-06-24T16:10:01Z",
                "end": "2024-06-24T16:10:01Z"
              }
            }
          ],
          "location": {
            "lat": 52.531,
            "lng": 13.38461
          },
          "distance": 179553
        }
      ],
      "statistic": {
        "cost": 921.6154,
        "distance": 179553,
        "duration": 36601,
        "times": {
          "driving": 21901,
          "serving": 14700,
          "waiting": 0,
          "stopping": 0,
          "break": 0
        }
      },
      "shiftIndex": 0
    }
  ]
}

結論

このチュートリアルでは、完全な問題のコンテキスト内でexcessCosts機能を使用する方法を示し、excessCosts機能の利点を紹介しました。チュートリアルで示したように、この機能を使用することで、アルゴリズムが合理的な範囲内で確立された制限を超えて動作できるシナリオにおいて、よりコスト効率の高いツアー最適化が可能になりました。アルゴリズムがこれらの制限を超えることを許可することにより、超過コスト計算を含まないシナリオと比較して、最適化により大幅なコスト削減が実現されました。