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 Sendung 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 beim Abholen und Zustellen von Sendungen beobachten
- Zuordnung von Schwerlastfahrzeugen zu Sendungen mit schwerer Last priorisieren
Lastanforderungen und ‑limits werden in diesen Attributen angegeben:
loadDemandsgibt die Kapazität an, die für eine bestimmte Sendung 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. Anhand dieser Liste können Sie Ihre Anfrage validieren und Fehler in Ihrer Antwort beheben.
Attribute
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 Sendungen und Fahrzeuge anwenden. Ein einzelner Lasttyp gilt sowohl für die Lastanforderung einer Sendung als auch für das Lastlimit eines Fahrzeugs.
Für Lasttypen wird die Syntax für den Kartentyp von Protocol Buffers verwendet. Verwenden Sie beim Benennen eines Lasttyps IDs, 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 Sie die Kapazitätsanforderungen für Sendungen und Fahrzeuge definieren können. In der folgenden Tabelle werden diese Attribute beschrieben:
| Objekt | Elternteil | Attribut | Attributtyp | Attributbeschreibung |
|---|---|---|---|---|
Load |
loadDemands |
amount |
String (Format „int64“) | Definiert die Kapazitätsanforderung der Sendung 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 zeigt, Lastanforderungen und ‑limits in einer API-Anfrage zu verwenden.
- Ein Beispiel für eine Anfrage , das die im Beispielszenario festgelegten Werte enthält.
Codebeispiele
Das folgende Beispiel zeigt die Struktur einer Lastanforderung, 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": [ ... ] } }
Das folgende Beispiel zeigt die einfachste Struktur eines Lastlimits, bei dem Sie
den Typ loadLimits als String und das Attribut maxLoad 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 Unternehmen für die Hundebetreuung betreiben und eine Route optimieren, um einige Hunde in einem Fahrzeug mit einer begrenzten Anzahl von Transportboxen zu transportieren.
Jede Sendung steht für einen 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. Alle Sendungen haben denselben Zustellort, das Gebäude Ihrer Hundebetreuung.
Für dieses Beispiel sind die Attributwerte in Ihrer Anfrage die folgenden:
| Elternteil | Attribut | Typ | Wert | Szenario |
|---|---|---|---|---|
loadDemands |
Lasttyp | String | dogUnit |
Definiert den Lasttyp für die Sendung. In diesem Beispiel wird dogUnit verwendet, wobei jede dogUnit einen Hund darstellt. |
loadDemands |
amount |
Zahl | 1. Sendung: 12. Sendung: 3 |
Gibt die Menge des definierten Lasttyps an. In diesem Beispiel definieren Sie zwei Sendungen. Bei der ersten holen Sie einen Hund ab, bei der zweiten drei Hunde. |
loadLimits |
Lasttyp | String | dogUnit |
Definiert den Lastlimittyp, der auf das Fahrzeug angewendet wird. Dieser muss mit dem Lasttyp der Sendung ü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 Sendungen und wie die einzelnen Sendungen die Lastlimits des Fahrzeugs in Anspruch nehmen:

In diesem Beispiel haben die Lastanforderungen der einzelnen Sendungen und die Lastlimits des Fahrzeugs die folgenden 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önnen Sie den Lasttyp von „Hundeeinheiten“ in „Gewichtseinheiten“ ändern, um das Gewicht der Hunde zu begrenzen, oder in „Lineare Maße“, 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 Sendung 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.
Flexible Lastlimits
Sie können Lastlimits als flexible 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 Routenfertigstellung Vorrang vor der strikten Einhaltung des Lastlimits hat.
Sie können maxLoad und softMaxLoad zusammen verwenden, um sowohl ein festes
als auch ein flexibles Lastlimit festzulegen. In diesem Fall legt softMaxLoad die Last fest, die überschritten werden kann, und maxLoad legt ein festes Limit fest, das nicht überschritten werden kann. Wenn
beide verwendet werden, muss maxLoad größer als softMaxLoad sein.
Attribute
In der folgenden Tabelle werden die Attribute für flexible Einschränkungen für Lastanforderungen und ‑limits beschrieben.
| Elternteil | Attributname | Attributtyp | Attributbeschreibung |
|---|---|---|---|
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 Sie softMaxLoad verwenden. Weitere Informationen zu Kosten finden Sie im Schlüsselkonzept Kostenmodell. |
Codebeispiel
Das folgende Beispiel zeigt die Struktur der Attribute für flexible Einschränkungen von loadLimits:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }