Lastanforderungen und ‑limits sind eine Art von Einschränkung, mit der Sie die Kapazität verwalten können. Diese Einschränkung gibt die erforderliche Kapazität einer Lieferung und die maximale Kapazität eines Fahrzeugs an. So können Sie Routenzuweisungen basierend auf diesen Einschränkungen optimieren.
Lastanforderungen und ‑limits können Ziele wie die folgenden unterstützen:
- Überlastung von Fahrzeugen verhindern
- Änderungen der Fahrzeuglasten beobachten, wenn Lieferungen abgeholt und zugestellt werden
- Zuordnung von Schwerlastfahrzeugen zu Schwerlastlieferungen priorisieren
Lastanforderungen und ‑limits werden in diesen Attributen angegeben:
loadDemandsgibt die Kapazität an, die für eine bestimmte Lieferung erforderlich ist.loadLimitsgibt die maximale Kapazität für ein bestimmtes Fahrzeug an.
Struktur
Wie im Diagramm dargestellt, sind Lastanforderungen und ‑limits so strukturiert:
loadDemandsist ein Attribut vonShipment. EinShipmentkann mehrere Lastanforderungen haben.loadLimitsist ein Attribut vonVehicle. EinVehiclekann mehrere Lastlimits haben.
Checkliste für Grundlagen
Die folgende Checkliste enthält grundlegende Informationen, mit denen Sie potenzielle Fehler im Zusammenhang mit der Last vermeiden können. Diese Liste kann Ihnen helfen, Ihre Anfrage zu validieren und Fehler in Ihrer Antwort zu beheben.
Properties
In diesem Abschnitt werden die Attribute für Lastanforderungen und ‑limits beschrieben:
- Lasttyp:Ein gemeinsames Attribut für Lastanforderungen und ‑limits.
LoadundLoadLimit: Eindeutige Attribute, die jeweils in Last anforderungen und Lastlimits vorhanden sind.
Lasttyp
Ein Lasttyp ist ein Stringschlüssel, den Sie gleichermaßen auf Lieferungen und Fahrzeuge anwenden. Ein einzelner Lasttyp gilt sowohl für die Lastanforderung einer Lieferung als auch für das Lastlimit eines Fahrzeugs.
Für Lasttypen wird die Syntax des Map-Typs von Protocol Buffers 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 spezifische Attribute, um
die Kapazitätsanforderungen für Lieferungen und Fahrzeuge zu definieren. In der folgenden Tabelle
werden diese Attribute beschrieben:
| Objekt | Hat Kinder | Attribut | Property-Typ | Property-Beschreibung |
|---|---|---|---|---|
Load |
loadDemands |
amount |
String (Format „int64“) | Definiert die Kapazitätsanforderung der Lieferung im angegebenen Typ. |
LoadLimit |
loadLimits |
maxLoad |
String (Format „int64“) | Definiert die maximale Lastkapazität des Fahrzeugs im angegebenen Typ. |
Beispiele
In diesem Abschnitt werden drei Arten von Beispielen behandelt:
- **Codebeispiele** , die die Struktur der Attribute für Lastanforderungen und ‑limits veranschaulichen.
- Ein Beispielszenario , das eine Möglichkeit zur Verwendung von Lastanforderungen und ‑limits in einer API-Anfrage zeigt.
- Ein Beispiel für eine Anfrage , das die im Beispielszenario festgelegten Werte enthält.
Codebeispiele
Im folgenden Beispiel wird die Struktur einer Lastanforderung gezeigt, bei der Sie den
loadDemands Typ als String und das amount Attribut als String
im Format „int64“ festlegen können:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
Im folgenden Beispiel wird die einfachste Struktur eines Lastlimits gezeigt, bei der Sie
den loadLimits Typ als String und das maxLoad Attribut
als String im Format „int64“ 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 ein Hundetagesgeschäft betreiben und eine Route optimieren, um einige Hunde in einem Fahrzeug mit einer begrenzten Anzahl von Transportboxen zu transportieren.
Jede Lieferung steht für einen Stopp, an dem Sie eine bestimmte Anzahl von Hunden abholen. In diesem Beispiel hat jede Lieferung einen anderen Abholort, nämlich das Zuhause der Hunde, um die Sie sich kümmern. Alle Lieferungen haben denselben Zustellort, das Gebäude Ihres Hundetagesgeschäfts.
Für dieses Beispiel sind die Attributwerte in Ihrer Anfrage die folgenden:
| Hat Kinder | Attribut | Typ | Wert | Szenario |
|---|---|---|---|---|
loadDemands |
Lasttyp | String | dogUnit |
Definiert den Lasttyp für die Lieferung. In diesem Beispiel wird dogUnit verwendet, wobei jede dogUnit einen Hund darstellt. |
loadDemands |
amount |
Zahl | 1. Lieferung: 12. Lieferung: 3 |
Gibt die Menge des definierten Lasttyps an. In diesem Beispiel definieren Sie zwei Lieferungen. Bei der ersten Lieferung holen Sie einen Hund ab, bei der zweiten drei Hunde. |
loadLimits |
Lasttyp | String | dogUnit |
Definiert den Typ des Lastlimits, das auf das Fahrzeug angewendet wird. Dieser Wert muss mit dem Lasttyp der Lieferung übereinstimmen , damit das Limit relevant ist. |
loadLimits |
maxLoad |
Zahl | 6 |
Gibt die maximale Menge des Lasttyps an, die das Fahrzeug transportieren kann. In diesem Beispiel haben Sie nur ein Fahrzeug mit einer maximalen Kapazität von 6 dogUnit, wobei jede dogUnit eine Hundebox darstellt. |
Das folgende Diagramm veranschaulicht die Lastlimits des Fahrzeugs, die Lastanforderungen der einzelnen Lieferungen und wie die einzelnen Lieferungen die Lastlimits des Fahrzeugs nutzen:

In diesem Beispiel haben die Lastanforderungen der einzelnen Lieferungen und die Lastlimits des Fahrzeugs folgende Auswirkungen:
Der Optimierer hat kein Problem , eine Route für das Fahrzeug zu erstellen, um die Hunde zu transportieren, da das Fahrzeug bis zu 6 Hunde transportieren kann und Sie nur 4 Hunde abholen.
Ein Lastlimit von 6
dogUnitfür das Fahrzeug bedeutet auch, dass Sie in diesem Fahrzeug nur zwei weitere Hunde transportieren können.Wenn die Anzahl der Hunde das Lastlimit überschreitet, würde der Optimierer entweder eine der Abholungen überspringen oder sie einem geeigneten Fahrzeug zuweisen.
Beachten Sie, dass es keine vordefinierten Typen gibt. In diesem Beispiel könnten Sie den Lasttyp von „Hundeeinheiten“ in „Gewichtseinheiten“ ändern, um das Gewicht der Hunde zu begrenzen, oder in „Lineare Maßeinheiten“, um ihre Breite oder Höhe zu begrenzen. Dank dieser Flexibilität können Sie Lastanforderungen und ‑limits an Ihre spezifischen Anforderungen anpassen.
Beispiel für eine Anfrage
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 Lieferung mehrere Lastanforderungen und ein Fahrzeug mehrere Lastlimits haben. So können Sie komplexe Einschränkungen angeben, die bei der Optimierung der Routen Ihrer Flotte berücksichtigt werden sollen.
Weiche Lastlimits
Sie können Lastlimits als weiche Einschränkungen festlegen, indem Sie softMaxLoad und
costPerUnitAboveSoftMax zu den loadLimits eines Fahrzeugs hinzufügen. So kann der Optimierer die maximale Last des Fahrzeugs gegen eine Gebühr überschreiten, wobei die Routenplanung Vorrang vor der strikten Einhaltung des Lastlimits hat.
Sie können maxLoad und softMaxLoad zusammen verwenden, um sowohl ein hartes
als auch ein weiches Lastlimit festzulegen. In diesem Fall legt softMaxLoad die Last fest, die überschritten werden kann, und maxLoad legt ein hartes Limit fest, das nicht überschritten werden kann. Wenn
beide verwendet werden, muss maxLoad größer als softMaxLoad sein.
Properties
In der folgenden Tabelle werden die Attribute für weiche Einschränkungen für Lastanforderungen und ‑limits beschrieben.
| Hat Kinder | Property-Name | Property-Typ | Property-Beschreibung |
|---|---|---|---|
loadLimits |
softMaxLoad |
String (Format „int64“) | Die bevorzugte maximale Last für ein Fahrzeug. Wenn die Last des Fahrzeugs diesen Wert überschreitet, fallen Kosten an. |
loadLimits |
costPerUnitAboveSoftMax |
Zahl | Die Kosten pro Lasteinheit über softMaxLoad. Dieses Feld ist erforderlich, wenn softMaxLoad verwendet wird. Weitere Informationen zu Kosten finden Sie unter Schlüsselkonzept: Kostenmodell. |
Codebeispiel
Das folgende Beispiel zeigt die Struktur der Attribute für weiche Einschränkungen von loadLimits:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }