Das Hauptziel der Route Optimization API besteht darin, 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 Sendungskosten angeben.
Kostenmodell-Properties 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 Kostenmodellattribute so strukturiert:
Shipmententhält das AttributpenaltyCost.Vehicleenthält die folgenden Attribute:
In diesem Dokument werden nur die wichtigsten Parameter des Kostenmodells beschrieben. Eine vollständige Liste der Kostenparameter finden Sie in der Referenzdokumentation.
Essentials-Checkliste
In der folgenden Checkliste wird wichtiges Wissen beschrieben, mit dem potenzielle kostenbezogene Fehler vermieden werden können. Diese Liste kann Ihnen helfen, Ihre Anfrage zu validieren und Fehler in der Antwort zu 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 | Lieferung ausgesetzt | Die Kosten, die durch das Überspringen der Sendung entstehen. Die API überspringt eine Sendung, wenn die Kosten für die Ausführung die Strafkosten übersteigen.
|
Vehicle |
fixedCost |
Zahl | Versand | Fixkosten, die anfallen, wenn dieses Fahrzeug für eine Sendung verwendet wird. |
costPerHour |
Zahl | Stunde | Die Kosten für den Betrieb eines Fahrzeugs pro Stunde, einschließlich Fahr-, Warte-, Besuchs- und Pausenzeiten. Wenn diese Kosten steigen, versucht der Optimierer, schnellere Routen zu finden, die möglicherweise nicht die kürzesten Routen sind. Diese Property kann aufgrund ihrer Einfachheit und Vollständigkeit ein effektiver eigenständiger Wert für die Kosten pro Fahrzeug sein. |
|
costPerKilometer |
Zahl | Kilometer | Die Kosten pro gefahrenem Kilometer des Fahrzeugs, die Kraftstoffkosten oder amortisierte Fahrzeugwartungskosten darstellen können. | |
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 Kostenmodellattribute veranschaulichen.
- Ein Beispielszenario, das eine Möglichkeit zeigt, wie Sie mit Kostenmodell-Properties ein Geschäftsziel erreichen können.
- Ein Anfragebeispiel, das die im Beispielszenario festgelegten Werte enthält.
Codebeispiele
Das folgende Codebeispiel zeigt die Struktur der Kostenmodellattribute in Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
Das folgende Codebeispiel zeigt die Struktur der Kostenmodellattribute 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 eine Hundetagesstätte betreiben. Sie optimieren eine Route für den Transporter, mit dem Sie die Hunde von zu Hause abholen. In diesem Szenario soll der Optimierer bei der Routenplanung die Kosten für das Abholen der Hunde und den Betrieb der Fahrzeuge berücksichtigen.
In diesem Beispiel entspricht eine Kosteneinheit 1 $. Das bedeutet, dass die Attributwerte 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 an einem geplanten Tag nicht abholen, erhält der Kunde einen Rabatt von 40 $ auf den Gesamtpreis der Dienstleistung. |
fixedCost |
30 | Die täglichen Kosten für die Ratenzahlungen für Ihr Fahrzeug betragen 30 $. |
costPerKilometer |
0,08 | Gibt an, wie viel Benzin Ihr Fahrzeug pro Kilometer verbraucht. Ihr Fahrzeug benötigt 0, 04 Gallonen pro Kilometer und der Preis pro Gallone in Ihrer Region beträgt 2 $. |
costPerHour |
27 | Gibt an, wie viel Sie einem Fahrer für das Fahren Ihres Fahrzeugs zahlen. Sie bezahlen dem Fahrer 27 $ pro Stunde. |
costPerTraveledHour |
2,5 | Gibt an, wie viel Sie pro Stunde für die Klimatisierung des Fahrzeugs für die Hunde während der Fahrt bezahlen müssen. Wenn das Fahrzeug steht, kann der Fahrer die Hecktüren öffnen und die Klimaanlage ausschalten. |
Basierend auf Kostenparametern kann der Optimierer Kompromisse eingehen, die für den Nutzer nicht offensichtlich sind, aber durch Optimierung gefunden werden können.
Das folgende Diagramm zeigt 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 vermeiden.

In diesem Szenario sieht die Kostenbilanz der beiden Routen so aus:
Die grüne gestrichelte Linie hat einen niedrigen
costPerHour- undcostPerTraveledHour-Wert, da es sich um eine schnelle Route handelt, auf der Verkehr vermieden wird. Das ist kostengünstiger, auch wenn dercostPerKilometer-Wert hoch ist.Die rote gepunktete Linie hat einen niedrigen
costPerKilometer, da es sich um eine direkte Route handelt, aber diecostPerHourundcostPerTraveledHoursind 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 Antwortattributen.
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 für das Abschließen einer Route beschreiben:
metrics.costs: Die Gesamtkosten für alle Routen, aufgeschlüsselt nach kostenbezogenen Anfragefeldern.metrics.totalCost: Die Gesamtkosten für alle Routen.