Stellen Sie eine Anfrage mit Ladekosten, damit der Optimierer die Ladung berücksichtigt, die Ihre Fahrzeuge zwischen den Besuchen transportieren. Die anfallenden Kosten hängen sowohl von der Menge an ShipmentRoute.VehicleLoad
als auch von der Entfernung oder Dauer des Übergangs ab (mit cost_per_kilometer
bzw. cost_per_traveled_hour
).
Beispiel für eine Minimalanfrage mit Ladekosten
Hier sehen Sie einen Teilausschnitt einer Anfrage mit Ladekosten. In diesem Beispiel darf das einzelne Fahrzeug nicht mehr als 1.000 kg weightKg
-Ladung transportieren. Wenn die transportierte weightKg
-Ladung 500 kg überschreitet, fallen Kosten von 1 Einheit pro Kilometer an.
{ "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 weightKg
-Ladung von 600 kg über 10 km transportiert, ergibt sich folgende Berechnung:
(600 - 500) * 10 * 1 = 1000 cost units
Mit Ladekosten lassen sich verschiedene Konzepte modellieren, z. B. ein erhöhter Energieverbrauch des Fahrzeugs beim Transport schwerer Lasten oder der durch übermäßige Beladung verursachte Verschleiß des Fahrzeugs.
Ein weiteres Beispiel für eine Anfrage mit Ladekosten
Hier ist ein weiteres Beispiel für Ladekosten, bei denen 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 5 Stunden lang eine weightLbs
-Last von 950 transportiert, wird die Berechnung so durchgeführt:
max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000
In diesem Beispiel liegt der load_threshold
für die weightLbs
-Ladekosten nahe bei max_load
. Bei der cost_per_unit_above_threshold
wird ein hoher Kostenbetrag pro gefahrener Stunde angewendet, wenn das Fahrzeug mit einer besonders schweren Last fährt. Dadurch werden Routen mit hohem Verschleiß oder hohem Kraftstoffverbrauch bestraft.
Der cost_per_unit_below_threshold
fügt einen Kostenfaktor pro Gewichtseinheit hinzu, die vom Fahrzeug bis zum Grenzwert transportiert wird. Dies entspricht dem erhöhten Kraftstoffverbrauch, wenn das Fahrzeug mehr Last transportiert.
Häufig gestellte Fragen
Hier finden Sie einige häufig gestellte Fragen zu Ladekosten:
Frage | Antwort |
---|---|
Wo gebe ich die Ladekosten an? | Geben Sie die Kosten für das Laden in Vehicle.LoadLimit an. |
Wie werden Ladekosten Sendungen zugeordnet? | Eine Ladungskostenpauschale wird auf Sendungen angewendet, deren Ladungsanforderungstyp mit dem Typ des Ladungslimits für das Fahrzeug übereinstimmt, z. B. Gewicht oder Volumen. Lasttypen sind beliebige Strings, wie unter Lastanforderungen und ‑limits beschrieben. |
Wie werden die Kosten für das Laden angegeben? | Die Kosten für das Laden werden als Distanz oder Dauer des Übergangs 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 Kosten für das Laden berechnet? | Die Fahrzeuglast wird mit dem load_threshold der Frachtkosten verglichen. Wenn cost_per_unit_above_threshold angegeben ist, werden die Kosten proportional zur Beladung des Fahrzeugs über dem load_threshold mit der Formel max(0, load - load_threshold) hinzugefügt. Wenn cost_per_unit_below_threshold angegeben ist, werden die Kosten proportional zur Beladung des Fahrzeugs unter load_threshold mit der Formel min(load, load_threshold) berechnet.
|
Welche Standardwerte gibt es für Parameter für Ladekosten? | load_threshold , cost_per_unit_above_threshold und cost_per_unit_below_threshold sind standardmäßig alle null.
|
In welchen Einheiten werden die Lastkosten angegeben? | Die Ladekosten 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 Ladekosten in der Antwort? | Die angefallenen Lastkosten werden in den Attributen metrics und route_metrics von Antwortnachrichten angezeigt. Ein angefallener cost_per_kilometer wird beispielsweise als model.vehicles.load_limits.cost_per_kilometer angezeigt.
|
Eine detaillierte Erklärung der Ladekosten finden Sie in der Referenzdokumentation (REST, gRPC).
Beispiel: OptimizeTours
-Anfrage stellen
OptimizeTours
-Anfragen können auch über REST oder gRPC gestellt werden.
Ersetzen Sie vor dem Senden einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:
- Achten Sie darauf, dass Sie Standardanmeldedaten für Anwendungen wie unter OAuth verwenden beschrieben konfiguriert haben.
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 Antwort.