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

停車地の最大数を設定する

HERE Tour Planning APIでは、旅程内の各車両の停車地の最大数を設定できます。この機能により、最適化アルゴリズムがリソースを効率的に割り当てると同時に、運用上の制約を遵守するようになります。

ツアー内の停車地の数を制限することで、単に各車両の最大積載量まで積むのではなく、停車地数の上限内で適切に作業することを優先する、より効率的なルートを作成できます。最大停車地数に制約がないと、1台の車両には多すぎる数の停車地が割り当てられるリスクがあります。停車地の数を制限することで、リソースの割り当てをより慎重に行うことができ、車両やドライバーに過剰な負荷がかかる可能性を軽減します。

ツアー中に車両が停車できる停車地の数に制限を導入すると、たとえばメガトラック (通常の商用トラックよりも強力なトラック) の運用においてコスト削減に大きく貢献できます。特に各停車後の加速に必要な追加燃料を考慮すると、停車地の数を最小限に抑えると燃料消費量が削減される可能性があります。さらに、頻繁に停車することで悪化しやすい車両の摩耗や損傷を軽減するのにも役立ちます。

最大停車地数の構成を理解する

HERE Tour Planning APIでは、fleet.types.limits.stops problem構成内でmaxCountオブジェクトを使用して、特定のフリートの車両に最大停車地数を定義できます。

最大停車地数機能におけるツアーの「停車地」は、1つ以上の集荷または配達アクティビティが行われる場所を示します。最適化アルゴリズムがアクティビティのグループを単一の停車地として考慮するには、その中で指定された各アクティビティが同じ場所に対して構成されている必要があります。それ以外の場合、アルゴリズムはそのようなアクティビティを最大停車地機能のパラメーター内の別の停車地として扱う可能性があります。

次のスニペットは、limitsオブジェクト内の35の停車地の最大数のサンプル構成を示しています。

// JSON shortened for brevity, showcasing the limits object.
"limits": {
    "stops": {
    "maxCount": {
        "value": 35
    }
  }
}

ユースケース:下請け業者が運営するサービスに対する契約上の義務を管理する

下請け業者が運営するパーセル集荷サービスのシナリオでは、運用を最適化してコストを制御するためのルールが確立されます。つまり、各pickup_vehicleには、パーセル集荷のために最大35か所の停車地が許可されます。この制限は契約条件によって規定されており、下請け業者が運行する各車両には35か所の停車地に対してのみ支払われることが指定されています。したがって、この制約は、各車両の積載量に関係なくすべての車両に適用されます。通常の状況下で車両がより多くの停車地に対応できる場合でも、この契約上の義務を遵守する必要があります。この調整により、運用効率を維持しながら契約条件を確実に遵守できるようになります。

問題

前述の目的を達成するために、対応するフリート構成には次の設定が含まれています。

{
  "fleet": {
    "types": [
      {
        "id": "pickup_vehicle",
        "profile": "car",
        "costs": {
          "fixed": 20,
          "distance": 0,
          "time": 0.005
        },
        "shifts": [
          {
            "start": {
              "time": "2023-05-28T08:00:00Z",
              "location": {
                "lat": 52.50983164055919,
                "lng": 13.323804381229678
              }
            },
            "end": {
              "time": "2023-05-28T16:00:00Z",
              "location": {
                "lat": 52.50983164055919,
                "lng": 13.323804381229678
              }
            }
          }
        ],
        "capacity": [
          100
        ],
        "amount": 10,
        "limits": {
          "stops": {
            "maxCount": {
              "value": 35
            }
          }
        }
      }
    ],
    "profiles": [
      {
        "type": "car",
        "name": "car"
      }
    ]
  }
}

主なフリート設定には次のものが含まれます。

  • IDがpickup_vehicleの車両10台で構成されたフリート。
  • pickup_vehiclecapacity300です。
  • maxCountオブジェクトでツアーの停車地の最大数を指定します。このケースでの値は35で、車両の積載量よりも小さくなります。

最適化アルゴリズムによる車両へのジョブの割り当てを説明するために、100か所の停車地を含むフリートのツアー計画を考えてみましょう。以下のスニペットに示すように、各停車地は、車両のドライバーが配達をする必要があるパーセルの集荷場所を示しています。

{
  "id": "Job_1",
  "tasks": {
    "pickups": [
      {
        "places": [
          {
            "location": {
              "lat": 52.51202735249645,
              "lng": 13.419303723712279
            },
            "duration": 600
          }
        ],
        "demand": [
          1
        ]
      }
    ]
  }
}

ソリューション

次の図は、前述の問題のソリューションを図示したものです。

停車地の最大数を伴うVRPのソリューション

ツアー概要では、問題で指定されている35件のジョブの上限内に、未割り当てジョブを残さずにすべてのツアーが完了したことが確認されています。このアルゴリズムは、最大停車地数を2台の車両に割り当て、残りのジョブを他の2台の車両にほぼ均等に分配しました。このアプローチでは、特定の車両に負荷を集中させず、すべての車両を効率的に運用することで、運用効率が維持されます。

次のステップ

  • HERE Tour Planning APIで問題を作成する方法の詳細については、「問題」を参照してください。
  • HERE Tour Planning APIのメソッド、エンドポイント、パラメーターの詳細については、「APIリファレンス」を参照してください。
  • 他の制限タイプについて詳しくは、「ルート制限を設定する」を参照してください。