Ladeanforderungen und -limits

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

Lastanforderungen und ‑limits sind eine Art von Einschränkung, mit der Sie die Kapazität verwalten können. Mit dieser Einschränkung wird die erforderliche Kapazität einer Lieferung und die maximale Kapazität eines Fahrzeugs angegeben. So können Sie Routenzuweisungen auf Grundlage dieser Einschränkungen optimieren.

Mit Lastanforderungen und ‑limits lassen sich Ziele wie die folgenden unterstützen:

  • Überladung von Fahrzeugen verhindern
  • Beobachten Sie, wie sich die Fahrzeugauslastung ändert, wenn Sendungen abgeholt und zugestellt werden.
  • Priorisieren Sie die Zuordnung von Schwerlastfahrzeugen zu Schwerlasttransporten.

Lastanforderungen und ‑limits werden in diesen Eigenschaften angegeben:

  • loadDemands gibt die Kapazitätsmenge 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 Lastanforderungen und ‑limits so strukturiert:

Checkliste für Essentials

Die folgende Checkliste beschreibt das erforderliche Wissen, um potenzielle Fehler im Zusammenhang mit dem Laden zu vermeiden. Anhand dieser Liste können Sie Ihre Anfrage validieren und Fehler in Ihrer Antwort beheben.

Attribute

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

  • Lasttyp:Eine gemeinsame Eigenschaft von Lastanforderungen und ‑grenzen.
  • Load und LoadLimit:Eindeutige Eigenschaften, die in Lastanforderungen bzw. Lastgrenzen vorhanden sind.

Lasttyp

Ein Ladungstyp ist ein String-Schlüssel, den Sie gleichermaßen auf Sendungen und Fahrzeuge anwenden. Ein einzelner Ladungstyp gilt sowohl für den Ladungsbedarf einer Sendung als auch für das Ladungslimit eines Fahrzeugs.

Für Lasttypen wird die Syntax für den Protokollpuffer-Kartentyp verwendet. Verwenden Sie beim Benennen eines Lasttyps Kennungen, die den Typ der Last und ihre Einheit beschreiben. Beispiele: weightKg, volume_gallons, palletcount oder frequencyDaily.

Load und LoadLimit

Die Objekte Load und LoadLimit enthalten bestimmte Attribute, mit denen die Kapazitätsanforderungen für Sendungen und Fahrzeuge definiert werden. In der folgenden Tabelle werden diese Attribute beschrieben:

Objekt Hat Kinder Attribut Property-Typ Beschreibung des Attributs
Load loadDemands amount String (int64-Format) Definiert den Kapazitätsbedarf der Sendung im angegebenen Typ.
LoadLimit loadLimits maxLoad String (int64-Format) Definiert die maximale Ladekapazität des Fahrzeugs im angegebenen Typ.

Beispiele

In diesem Abschnitt werden drei Arten von Beispielen behandelt:

  • Codebeispiele, die die Struktur der Eigenschaften für Lastanforderungen und ‑limits veranschaulichen.
  • Beispielszenario, in dem eine Möglichkeit zur Verwendung von Lastanforderungen und ‑limits in einer API-Anfrage gezeigt wird.
  • Ein Beispiel für eine Anfrage, die die im Beispielszenario festgelegten Werte enthält.

Codebeispiele

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

{
  "model": {
    "shipments": [ ...
      {
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [ ...
    ]
  }
}

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

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

Beispielszenario

In diesem Abschnitt wird ein Szenario beschrieben, in dem Sie eine Hundetagesstätte betreiben und eine Route optimieren, um einige Hunde in einem Fahrzeug mit einer begrenzten Anzahl von Transportboxen zu transportieren.

Jede Lieferung entspricht einem Stopp, an dem Sie eine bestimmte Anzahl von Hunden abholen. In diesem Beispiel hat jede Sendung einen anderen Abholort, nämlich das Zuhause der Hunde, um die Sie sich kümmern, und alle Sendungen haben denselben Lieferort, nämlich das Gebäude Ihrer Hundetagesstätte.

In diesem Beispiel sind die Attributwerte in Ihrer Anfrage folgende:

Hat Kinder Attribut Typ Wert Szenario
loadDemands Lasttyp String dogUnit Definiert den Ladungstyp für die Sendung. In diesem Beispiel wird dogUnit verwendet, wobei jedes dogUnit für einen Hund steht.
loadDemands amount Zahl 1. Lieferung: 1
2. Lieferung: 3
Gibt die Menge des definierten Lasttyps an. In diesem Beispiel definieren Sie zwei Sendungen. Bei der ersten wird ein Hund abgeholt, bei der zweiten drei Hunde.
loadLimits Lasttyp String dogUnit Definiert den Typ des auf das Fahrzeug angewendeten Ladungslimits. Diese muss mit dem Ladungstyp der Sendung übereinstimmen, damit das Limit relevant ist.
loadLimits maxLoad Zahl 6 Gibt die maximale Menge des Ladungstyps an, die das Fahrzeug transportieren kann. In diesem Beispiel haben Sie nur ein Fahrzeug mit einer maximalen Kapazität von 6 dogUnit, wobei jedes dogUnit für eine Hundebox steht.

Das folgende Diagramm veranschaulicht die Belastungsgrenzen des Fahrzeugs, die Belastungsanforderungen der einzelnen Sendungen und wie die einzelnen Sendungen die Belastungsgrenzen des Fahrzeugs beanspruchen:

Das Fahrzeug beginnt die Route mit sechs leeren Feldern, die die Ladegrenzen des Fahrzeugs darstellen. Für die erste Sendung ist Platz für einen Hund erforderlich, für die zweite Sendung für drei Hunde. Am Ende sind 4 der 6 Plätze belegt und 2 Plätze sind noch frei.

In diesem Beispiel haben die Ladeanforderungen der einzelnen Sendungen und die Ladegrenzen des Fahrzeugs die folgenden Auswirkungen:

  • Der Optimierer hat kein Problem, eine Route für das Fahrzeug zu generieren, um die Hunde zu transportieren, da das Fahrzeug bis zu 6 Hunde transportieren kann und Sie nur 4 Hunde abholen.

  • Ein Ladegewicht von 6 dogUnit für das Fahrzeug bedeutet auch, dass Sie in diesem Fahrzeug nur zwei weitere Hunde transportieren können.

  • Wenn die Anzahl der Hunde das Ladungslimit überschritt, würde der Optimierer entweder eine der Abholungen überspringen oder sie einem geeigneten Fahrzeug zuweisen.

Es gibt keine vordefinierten Typen. In diesem Beispiel könnten Sie den Ladungstyp von Hunde-Einheiten in Gewichtseinheiten ändern, um das Gewicht der Hunde zu begrenzen, oder in lineare Maßeinheiten, um ihre Breite oder Höhe zu begrenzen. So können Sie die Anforderungen und Grenzwerte an Ihre spezifischen Anforderungen anpassen.

Beispielanfrage

Das folgende Beispiel zeigt die Struktur einer einfachen optimizeTours-Anfrage mit den Werten aus dem Beispielszenario:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "One bernese mountain dog",
        "loadDemands": {
          "dogUnit": {
            "amount": "1"
          }
        }
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "Three chihuahuas",
        "loadDemands": {
          "dogUnit": {
            "amount": "3"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "loadLimits": {
          "dogUnit": {
            "maxLoad": "6"
          }
        },
        "costPerKilometer": 1.0
      }
    ]
  }
}

Im Gegensatz zu diesem Beispiel kann eine Sendung mehrere Ladeanforderungen und ein Fahrzeug mehrere Ladegrenzen haben. So können Sie komplexe Einschränkungen angeben, die bei der Optimierung der Routen Ihrer Flotte berücksichtigt werden.

Weiche Lastlimits

Sie können Lastbeschränkungen als weiche Einschränkungen festlegen, indem Sie softMaxLoad und costPerUnitAboveSoftMax in der loadLimits eines Fahrzeugs hinzufügen. So kann das Optimierungsprogramm die maximale Last des Fahrzeugs gegen Aufpreis überschreiten und die Routenbearbeitung hat Vorrang vor der strikten Einhaltung des Lastlimits.

Sie können maxLoad und softMaxLoad zusammen verwenden, um sowohl ein hartes als auch ein weiches Lastlimit festzulegen. In diesem Fall wird mit softMaxLoad die Last festgelegt, die überschritten werden kann, und mit maxLoad ein festes Limit, das nicht überschritten werden kann. Wenn beide verwendet werden, muss maxLoad größer als softMaxLoad sein.

Attribute

In der folgenden Tabelle werden die Eigenschaften von weichen Einschränkungen für Lastanforderungen und ‑limits beschrieben.

Hat Kinder Property-Name Property-Typ Beschreibung des Attributs
loadLimits softMaxLoad String (int64-Format) Die bevorzugte maximale Beladung für ein Fahrzeug. Wenn die Ladung des Fahrzeugs diesen Wert überschreitet, fallen Kosten an.
loadLimits costPerUnitAboveSoftMax Zahl Die Kosten pro Einheit der Last über dem softMaxLoad. Dieses Feld ist erforderlich, wenn Sie softMaxLoad verwenden. Weitere Informationen zu Kosten finden Sie unter Kostenmodell.

Codebeispiel

Das folgende Beispiel zeigt die Struktur der Eigenschaften für die weiche Einschränkung von loadLimits:

{
   "loadLimits": {
        "LOAD_TYPE": {
          "softMaxLoad": "LOAD_AMOUNT",
          "costPerUnitAboveSoftMax": COST_PER_UNIT
        }
      }
}