Ladeanforderungen und -limits

Die Property „loadDemands“ ist unter „ShipmentModel.shipments.Shipment“ und die Property „loadLimits“ unter „ShipmentModel.vehicles.Vehicle“ definiert.

Mit Lastanforderungen und -limits können Sie die Kapazität verwalten. Sie geben die erforderliche Kapazität einer Sendung und die maximale Kapazität eines Fahrzeugs an, sodass Sie Routenzuweisungen anhand dieser Einschränkungen optimieren können.

Mit Lastanforderungen und -limits können Sie folgende Ziele erreichen:

  • Verhindern, dass Fahrzeuge überladen werden.
  • Beobachten Sie, wie sich die Fahrzeugbeladung bei der Abholung und Lieferung von Sendungen ändert.
  • Begrenzen Sie, wie oft ein Fahrzeug einen bestimmten Ort besuchen darf.

Lastanforderungen und -limits werden in den folgenden Properties angegeben:

  • loadDemands gibt die Kapazität an, die für eine bestimmte Lieferung erforderlich ist.
  • loadLimits gibt die maximale Kapazität für ein bestimmtes Fahrzeug an.

Struktur

Wie im Diagramm dargestellt, sind die Lastanforderungen und -limits so strukturiert:

Attribute

In diesem Abschnitt werden die folgenden Eigenschaften für Lastanforderungen und -limits beschrieben:

  • Ladetyp:Gemeinsame Eigenschaft von Lastanforderungen und -limits.
  • Load und LoadLimit:Einzigartige Eigenschaften in Lastanforderungen bzw. Lastlimits.

Ladetyp

Ladekapazitätstypen sind Stringschlüssel, die die Art der Ladekapazitätsanforderungen für eine Sendung und die Ladekapazitätslimits für ein Fahrzeug angeben. Ladetypen haben folgende wichtige Merkmale:

  • Benutzerdefiniert:Sie definieren die Ladetypen. Es gibt keine vordefinierten Systemvariablen für Ladetypen.
  • Gemeinsam genutzt:Ladungstypen sind für den gemeinsamen Einsatz zwischen Sendungen und Fahrzeugen vorgesehen. Das bedeutet, dass ein Fahrzeug nur dann bis zur Kapazitätsgrenze beladen wird, wenn die Ladekapazitäten übereinstimmen. Wenn für ein Fahrzeug kein Ladelimit für einen bestimmten Ladungstyp angegeben ist, kann es eine unbegrenzte Menge dieses Ladungstyps aufnehmen.

Die Stringschlüssel, die die Ladetypen darstellen, verwenden die Syntax für den Kartentyp von Protocol Buffers. Diese Stringschlüssel dürfen nicht null sein, um Probleme zu vermeiden. Bei der Benennung eines Lasttyps sollten Sie Kennungen verwenden, die den Lasttyp und seine Einheit beschreiben. Beispiele: weightKg, volume_gallons, palletcount oder frequencyDaily.

Load und LoadLimit

Die Objekte Load und LoadLimit enthalten bestimmte Eigenschaften, um die Kapazitätsanforderungen für Sendungen und Fahrzeuge zu definieren. Diese Eigenschaften werden in der folgenden Tabelle beschrieben:

Object Hat Kinder Attribut Property-Typ Unterkunftsbeschreibung
Load loadDemands amount String (int64-Format) Definiert die Kapazitätsanforderung der Sendung im angegebenen Typ.
LoadLimit loadLimits maxLoad String (int64-Format) Definiert die maximale Nutzlast des Fahrzeugs des angegebenen Typs.

Beispiele

Das folgende Beispiel zeigt die Struktur einer Lastanforderung, bei der Sie den Typ loadDemands als String und die Property amount als String im int64-Format festlegen können:

"loadDemands": {
  "MATCHING_LOAD_TYPE": {
    "amount": "YOUR_LOAD_AMOUNT"
  }
}

Das folgende Beispiel zeigt die einfachste Struktur einer Auslastungsgrenze, bei der Sie den Typ loadLimits als String und die Eigenschaft maxLoad als String im int64-Format festlegen können:

"loadLimits": {
  "MATCHING_LOAD_TYPE": {
    "maxLoad": "YOUR_MAX_LOAD"
  }
}

Jetzt ausprobieren

Erstellen Sie anhand der Codebeispiele oben ein fiktives Szenario. In diesem Szenario haben Sie eine Sendung mit einem Gewicht von 10 kg und ein Fahrzeug, das 100 kg tragen kann:

  1. Definieren Sie im Beispiel loadDemands den Ladetyp als weightKg.

    Danach wird auch der Lasttyp im Beispiel loadLimits ausgefüllt und der Lasttyp wird freigegeben. Denken Sie daran, dass die Typen von loadDemands und loadLimits übereinstimmen müssen, damit der Versand die Limits des Fahrzeugs ausschöpft.

  2. Legen Sie im selben loadDemands-Beispiel das Attribut amount auf 10 fest.

    Die Sendung wiegt also 10 kg.

  3. Legen Sie im Beispiel für loadLimits die Property maxLoad auf 100 fest.

    Das Fahrzeug kann also maximal 100 kg tragen.

Es gibt keine vordefinierten Typen. In diesem Beispiel könnten Sie Kilogramm in Punkte oder lineare Maße anstelle von Gewicht ändern. So können Sie die Anforderungen und Limits an die Last an Ihre spezifischen Anforderungen anpassen.

Beispielanfrage

Das folgende Beispiel zeigt die Struktur einer einfachen optimizeTours-Anfrage mit loadDemands in einer Sendung und loadLimits in einem Fahrzeug:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "endLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "costPerKilometer": 1.0,
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

Denken Sie daran, dass eine Sendung mehrere Ladeanforderungen und ein Fahrzeug mehrere Ladelimits haben kann. So können Sie komplexe Einschränkungen angeben, die bei der Optimierung der Routen Ihrer Flotte berücksichtigt werden müssen.