Wenn Sie eine Anfrage mit Lastkosten stellen, berücksichtigt der Optimizer die Last, die Ihre Fahrzeuge zwischen den Besuchen transportieren. Die angefallenen Kosten hängen sowohl von der Menge von ShipmentRoute.VehicleLoad als auch von der Entfernung oder Dauer der Übergangszeit ab (mit cost_per_kilometer bzw. cost_per_traveled_hour).
Minimale Beispielanfrage mit Lastkosten
Hier sehen Sie einen Teil einer Beispielanfrage mit Lastkosten. In diesem Beispiel kann das einzelne Fahrzeug maximal 1.000 kg Gesamtlast (weightKg) transportieren. Dabei fallen Kosten von 1 Einheit pro Kilometer an, wenn die transportierte Last (weightKg) 500 kg übersteigt.
{ "model": { "vehicles": [{ "loadLimits": { "weightKg": { "maxLoad": "1000", "costPerKilometer": { "loadThreshold": "500", "costPerUnitAboveThreshold": 1 } } } }] } }
Die Berechnung der Lastkosten für dieses Beispiel sieht so aus:
cost = max(carried load - load threshold, 0) * distance * cost per unit above threshold
Wenn das Fahrzeug also eine Last von 600 über 10 Kilometer transportiert, sieht die
Berechnung so aus:weightKg
(600 - 500) * 10 * 1 = 1000 cost units
Mit Lastkosten lassen sich verschiedene Konzepte modellieren, z. B. ein erhöhter Energieverbrauch des Fahrzeugs beim Transport schwerer Lasten oder der Verschleiß des Fahrzeugs durch übermäßige Beladung.
Weitere Beispielanfrage mit Lastkosten
Hier ist ein weiteres Beispiel für Lastkosten, bei dem sowohl über als auch unter einem Schwellenwert Kosten pro zurückgelegter Zeit anfallen:
{ "model": { "vehicles": [{ "loadLimits": { "weightLbs": { "maxLoad": "1000", "costPerTraveledHour": { "loadThreshold": "900", "costPerUnitAboveThreshold": 10, "costPerUnitBelowThreshold": 1 }, }, } }] } }
Die Berechnung der Lastkosten für dieses Beispiel sieht so aus:
cost = max(carried load - load threshold, 0) * time * cost per unit above threshold
+ min(carried load, load threshold) * time * cost per unit below threshold
Wenn das Fahrzeug also eine Last von 950 über 5 Stunden transportiert, sieht die
Berechnung so aus:weightLbs
max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000
In diesem Beispiel liegt der load_threshold für die Lastkosten von weightLbs nahe bei max_load. Mit cost_per_unit_above_threshold werden hohe Kosten pro zurückgelegter Stunde angewendet, wenn das Fahrzeug mit einer besonders schweren Last fährt. So werden Routen bestraft, die den Verschleiß des Fahrzeugs erhöhen oder zu einem übermäßigen Kraftstoffverbrauch führen können.
Mit cost_per_unit_below_threshold werden Kosten pro Gewichtseinheit hinzugefügt, die vom Fahrzeug bis zum Schwellenwert transportiert wird. Dies stellt einen erhöhten Kraftstoffverbrauch dar, da das Fahrzeug mehr Last transportiert.
Häufig gestellte Fragen
Hier sind einige häufig gestellte Fragen zu Lastkosten:
| Frage | Antwort |
|---|---|
| Wo gebe ich Lastkosten an? | Geben Sie die Lastkosten in Vehicle.LoadLimit an. |
| Wie werden Lastkosten mit Sendungen abgeglichen? | Lastkosten gelten für Sendungen, deren Lastanforderung type mit dem Typ des Lastlimits für das Fahrzeug übereinstimmt , z. B. Gewicht oder Volumen. Lasttypen sind beliebige Strings, wie unter Last anforderungen und ‑limits beschrieben. |
| Wie werden Lastkosten ausgedrückt? | Lastkosten werden in Bezug auf die Entfernung oder
Dauer der Übergangszeit ausgedrückt. Verwenden Sie cost_per_kilometer, um Kosten in
Bezug auf die Entfernung anzugeben, und cost_per_traveled_hour, um Kosten
in Bezug auf die Dauer anzugeben.
|
| Wann werden Lastkosten angewendet? | Die Fahrzeuglast wird mit dem load_threshold der Last
Kosten verglichen. Wenn cost_per_unit_above_threshold angegeben ist, werden Kosten proportional zur Fahrzeuglast über dem load_threshold mit der Formel max(0, load - load_threshold) hinzugefügt. Wenn
cost_per_unit_below_threshold angegeben ist, werden Kosten
proportional zur Fahrzeuglast unter
dem load_threshold mit der Formel
min(load, load_threshold) hinzugefügt.
|
| Was sind die Standardwerte für Lastkostenparameter? | load_threshold, cost_per_unit_above_threshold und
cost_per_unit_below_threshold sind standardmäßig alle null.
|
| In welchen Einheiten werden Lastkosten ausgedrückt? | Lastkosten werden in denselben dimensionslosen Einheiten wie alle anderen
Kostenparameter ausgedrückt, z. B. global_duration_cost_per_hour oder
Shipment.penalty_cost.
|
| Wo finde ich die Lastkosten in der Antwort? | Angefallene Lastkosten werden in den metrics und
route_metrics Attributen von Antwortnachrichten angezeigt. Beispielsweise wird eine
angefallene cost_per_kilometer als model.vehicles.load_limits.cost_per_kilometer angezeigt.
|
Eine detaillierte Erläuterung der Lastkosten finden Sie in der Referenzdokumentation (REST, gRPC).
Beispiel: OptimizeTours-Anfrage stellen
OptimizeTours-Anfragen können auch mit REST oder gRPC gestellt werden.
Ersetzen Sie vor dem Stellen einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:
- Stellen Sie sicher, dass Sie die Standardanmeldedaten für Anwendungen konfiguriert haben, wie unter OAuth verwenden beschrieben.
Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud Projektnummer oder ‑ID fest.
Mit dem folgenden Befehl wird eine
OptimizeTours-Anfrage an die Route Optimization API gesendet und eine Antwort synchron empfangen.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- << EOM { "model": { "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "penaltyCost": 100.0, "loadDemands": { "weightKg": { "amount": 50 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "penaltyCost": 30.0, "loadDemands": { "weightKg": { "amount": 10 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "penaltyCost": 50.0, "loadDemands": { "weightKg": { "amount": 80 } } } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 40.0, "costPerKilometer": 10.0, "loadLimits": { "weightKg": { "maxLoad": "100", "costPerKilometer": { "loadThreshold": "15", "costPerUnitAboveThreshold": 1 } } } } ] } } EOM
Sobald die Anfrage abgeschlossen ist, erhalten Sie eine Antwortnachricht.