Das Hauptziel der Route Optimization API ist es, Routen mit den niedrigsten Kosten zu finden. Daher ist das Kostenmodell der Hauptfaktor für die Routenoptimierung.
Das Kostenmodell ist eine Reihe von Attributen, die globale, fahrzeugbezogene und versandbezogene Kosten angeben.
Die Attribute des Kostenmodells unterstützen die folgenden Arten von Optimierungszielen:
- Effiziente Fahrzeugzuweisungen und Routen
- Kostengünstige Abhol- und Lieferzeiten
- Priorisierung kritischer Sendungen
Struktur
Wie im Diagramm dargestellt, sind die Attribute des Kostenmodells so strukturiert:
Shipmententhält daspenaltyCostAttribut.Vehicleenthält die folgenden Attribute:
In diesem Dokument werden nur die wichtigsten Parameter des Kostenmodells hervorgehoben. Die vollständige Liste der Kostenparameter finden Sie in der Referenzdokumentation.
Checkliste mit den wichtigsten Punkten
Die folgende Checkliste enthält wichtiges Wissen , mit dem Sie potenzielle kostenbezogene Fehler vermeiden können. Anhand dieser Liste können Sie Ihre Anfrage überprüfen und Fehler in Ihrer Antwort beheben.
Attribute
In der folgenden Tabelle sind die Attribute des Kostenmodells aufgeführt und beschrieben.
| Elternteil | Property-Name | Property-Typ | Kosten pro | Property-Beschreibung |
|---|---|---|---|---|
Shipment |
penaltyCost |
Zahl | Übersprungene Lieferung | Die Kosten, die durch das Überspringen der Lieferung entstehen. Die API überspringt eine Lieferung, wenn die Kosten für die Ausführung die Strafkosten übersteigen.
|
Vehicle |
fixedCost |
Zahl | Versand | Feste Kosten, die anfallen, wenn dieses Fahrzeug für den Versand einer Sendung verwendet wird. |
costPerHour |
Zahl | Stunde | Die Kosten für den Betrieb eines Fahrzeugs pro Stunde , einschließlich Fahrzeit, Wartezeit, Besuchszeit und Pausen. Wenn diese Kosten steigen, versucht der Optimierer, schnellere Routen zu finden, die möglicherweise nicht die kürzesten sind. Dieses Attribut kann aufgrund seiner Einfachheit und Vollständigkeit eine effektive eigenständige Kostenangabe pro Fahrzeug sein. |
|
costPerKilometer |
Zahl | Kilometer | Die Kosten pro Kilometer, der mit dem Fahrzeug zurückgelegt wird . Diese können Kraftstoffkosten oder amortisierte Kosten für die Fahrzeugwartung darstellen. | |
costPerTraveledHour |
Zahl | Stunde | Die Kosten für den Betrieb eines Fahrzeugs pro Stunde nur während der Fahrt, ohne Wartezeit, Besuchszeit und Pausen. Dadurch werden schnellere Routen gegenüber kürzeren Routen priorisiert. |
Beispiele
In diesem Abschnitt werden drei Arten von Beispielen behandelt:
- Codebeispiele , die die Struktur der Attribute des Kostenmodells veranschaulichen.
- Ein Beispielszenario , das zeigt, wie Sie die Attribute des Kosten modells verwenden können, um ein Geschäftsziel zu erreichen.
- Ein Beispiel für eine Anfrage , die die im Beispielszenario festgelegten Werte enthält.
Codebeispiele
Das folgende Codebeispiel zeigt die Struktur der Attribute des Kostenmodells in
Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
Das folgende Codebeispiel zeigt die Struktur der Attribute des Kostenmodells in
Vehicle:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
Beispielszenario
In diesem Abschnitt wird ein Szenario beschrieben, in dem Sie ein Unternehmen für die Hundebetreuung betreiben. Sie optimieren eine Route für den Lkw, mit dem Sie die Hunde von ihren Häusern abholen. In diesem Szenario soll der Optimierer bei der Routenplanung Kosten für die Abholung der Hunde und den Fahrzeugbetrieb berücksichtigen.
In diesem Beispiel entspricht eine Kosteneinheit 1 US-Dollar. Das bedeutet, dass die Werte der Attribute des Kostenmodells in Ihrer Anfrage so aussehen:
| Attribut | Wert | Szenario |
|---|---|---|
penaltyCost |
10 | Stellt die Strafe dar, die Sie Ihren Kunden anbieten, wenn Sie ihren Hund nicht an einem geplanten Tag abholen. Wenn Sie den Hund nicht an einem geplanten Tag abholen, erhalten die Kunden 40 $ Rabatt auf den Gesamtpreis. |
fixedCost |
30 | Stellt die täglichen Kosten für die Fahrzeugkreditraten dar, die 30 $ pro Tag betragen. |
costPerKilometer |
0,08 | Gibt an, wie viel Benzin Ihr Fahrzeug pro Kilometer verbraucht. Ihr Fahrzeug benötigt 0, 04 Gallonen pro Kilometer und die Kosten pro Gallone in Ihrer Region betragen 2 $. |
costPerHour |
27 | Gibt an, wie viel Sie einem Fahrer für das Fahren Ihres Fahrzeugs bezahlen. Sie zahlen dem Fahrer 27 $ pro Stunde. |
costPerTraveledHour |
2,5 | Gibt an, wie viel Sie pro Stunde für die Klimaanlage des Fahrzeugs für die Hunde während der Fahrt bezahlen müssen. Wenn das Fahrzeug nicht fährt, kann der Fahrer die Türen hinten öffnen und die Klimaanlage ausschalten. |
Anhand der Kostenparameter kann der Optimierer Kompromisse eingehen, die für den Nutzer nicht offensichtlich sind, aber durch die Optimierung gefunden werden können.
Das folgende Diagramm veranschaulicht ein Beispiel, in dem der Optimierer eine längere, aber schnellere Route über die grün gestrichelte Linie wählen könnte, um den Verkehr auf der rot gepunkteten Linie zu vermeiden.

In diesem Szenario sieht die Kostenbilanz der beiden Routen so aus:
Die grün gestrichelte Linie hat niedrige
costPerHourundcostPerTraveledHour, da es sich um eine schnelle Route handelt, die den Verkehr vermeidet. Sie ist kostengünstiger, auch wenn diecostPerKilometerhoch sind.Die rot gepunktete Linie hat niedrige
costPerKilometer, da es sich um eine direkte Route handelt. DiecostPerHourundcostPerTraveledHoursind jedoch aufgrund der Wartezeiten im Verkehr zu hoch, was sie zur teuersten Route macht.
Der Optimierer bietet nicht nur kostengünstige Routen, sondern auch eine Zusammenfassung der Gesamtkosten der Lieferrouten in den Antwort attributen.
Beispielanfrage
Das folgende Beispiel zeigt die Struktur einer einfachen optimizeTours
Anfrage mit den im Beispielszenario festgelegten Werten:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
Antwortattribute
Die OptimizeToursResponse Nachricht enthält Kostenattribute
die die Kosten beschreiben, die bei der Ausführung einer Route entstehen:
metrics.costs: Die Gesamtkosten für alle Routen, aufgeschlüsselt nach kostenbezogenen Anfrageldern.metrics.totalCost: Die Gesamtkosten für alle Routen, summiert.