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, Fahrzeug- und Versandkosten 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 für Grundlagen
Die folgende Checkliste enthält grundlegende Informationen , mit denen 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.
| Hat Kinder | Property-Name | Property-Typ | Cost-per- | Beschreibung des Attributs |
|---|---|---|---|---|
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 verwendet wird. |
costPerHour |
Zahl | Stunde | Die Kosten für den Betrieb eines Fahrzeugs pro Stunde , einschließlich Transit-, Warte-, Besuchs- und Pausenzeiten. Wenn diese Kosten steigen, versucht der Optimizer, 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 Kosten pro Fahrzeug sein. |
|
costPerKilometer |
Zahl | Kilometer | Die Kosten pro Kilometer , die das Fahrzeug zurücklegt, z. B. Kraftstoffkosten und amortisierte Kosten für die Fahrzeugwartung. | |
costPerTraveledHour |
Zahl | Stunde | Die Kosten für den Betrieb eines Fahrzeugs pro Stunde nur während der Fahrt, ohne Warte-, Besuchs- und Pausenzeiten. 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 , das 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 Optimizer bei der Routenplanung Kosten im Zusammenhang mit der Abholung der Hunde und dem 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 Gesamtbetrag ihrer Dienstleistung. |
fixedCost |
30 | Stellt die täglichen Kosten für Ihre 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 bezahlen müssen, während Sie auf der Straße unterwegs sind. Wenn das Fahrzeug nicht fährt, kann der Fahrer die Türen hinten öffnen und die Klimaanlage ausschalten. |
Anhand der Kostenparameter kann der Optimizer 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üne gestrichelte Linie wählen könnte, um den Verkehr auf der gepunkteten roten Linie zu meiden.

In diesem Szenario sieht die Kostenbilanz der beiden Routen so aus:
Die grüne 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 rote 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.
Neben kostengünstigen Routen bietet der Optimizer in den Antwort attributen auch eine Summe der Gesamtkosten der Lieferrouten.
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 } ] } }
Attribute der Antwort
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 Anfragewerten.metrics.totalCost: Die Gesamtkosten für alle Routen, summiert.