Die Route Optimization API gibt Routen für Fahrzeuge in der entsprechenden Lieferungen sind Fahrzeugen zugewiesen oder können übersprungen werden, der Anfrageeigenschaften.
Eine OptimizeToursResponse
-Nachricht (REST, gRPC) hat zwei übergeordnete Hauptebene
Eigenschaften:
routes[]
sind die Routen für jedes Fahrzeug mit den zugewiesenen Sendungen. JedesRoute
enthält Messwerte, die die Eigenschaften der jeweiligen Route widerspiegeln.metrics
sind aggregierte Messwerte für die gesamte Antwort über alle Fahrzeugen und Routenplänen. Messwerte der obersten Ebene enthalten dieselben Eigenschaften wie Routenmesswerte mit für alle Routen aggregierten Werten.
Einige Eigenschaften werden je nach Optimierungsergebnissen möglicherweise nicht immer ausgefüllt:
skippedShipments[]
listet Sendungen auf, die von keinem Fahrzeug durchgeführt werden. Eine Sendung kann übersprungen werden, wenn sie nicht innerhalb der angegebenen oder die Versandkosten die Strafkosten übersteigen. Zum Beispiel, wenn die Abholung oder Lieferung einer SendungtimeWindow
es möglicherweise nicht möglich oder kostengünstig ist, den Besuch im erforderlichen Zeitfenster durchführen.validationErrors[]
gibt Fehler an, die die Anfrage ungültig machen, oder kann nicht gelöst werden, wenn dersolvingMode
der Anfrage aufVALIDATE_ONLY
Im normalenDEFAULT_SOLVE
-Modus treten Validierungsfehler auf in einer Fehlermeldung statt im Antworttext angezeigt. Beachten Sie, dass DerVALIDATE_ONLY
-Lösungsmodus kann mehrere Fehler gleichzeitig melden, was für die schnelle Fehlerbehebung bei Anfragen.
Routeneigenschaften
Jeder routes[]
-Eintrag ist eine ShipmentRoute
-Nachricht (REST, gRPC). Jedes
ShipmentRoute
steht für die Routenzuweisung für ein bestimmtes Fahrzeug von
der Anfrage. Wichtige ShipmentRoute
-Properties, die für die zugehörigen
Vehicle
umfassen:
vehicleIndex
ist der nullbasierte Index vonVehicle
im entsprechenden Anfragenachricht. Bei REST-Antworten wird dieses Attribut weggelassen, wenn der Wert null ist.vehicleStartTime
ist der Zeitpunkt, zu dem das Fahrzeug mit seiner Route beginnen muss.vehicleEndTime
ist der Zeitpunkt, zu dem das Fahrzeug voraussichtlich fertig sein wird Route.
In einer Antwort sieht routes
so aus:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
...
],
"transitions": [
...
],
"metrics": {
...
},
...
}
],
...
}
Jede ShipmentRoute
enthält eine sortierte Liste von visits
, die das Fahrzeug
abgeschlossen ist. Jede Visit
(REST, gRPC) stellt einen VisitRequest
dar.
(REST, gRPC) aus der entsprechenden Anfrage. Wichtig: Visit
Zu den Properties gehören:
shipmentIndex
ist der nullbasierte Index der Sendung, zu der dieser Besuch gehört. in die entsprechende Anfrage ein.isPickup
ist „true“, wenn ein Besuch ein Abholservice ist, und „false“, wenn ein Besuch ein Auslieferung. REST-Antworten lassen dieses Attribut weg, wenn der Wert „false“ ist.visitRequestIndex
ist der nullbasierte Index vonVisitRequest
ausShipment.pickups
oderShipment.deliveries
in der entsprechenden Anfrage dasVisit
darstellt. REST-Antworten lassen dieses Attribut weg, wenn die Wert Null ist.startTime
ist die Uhrzeit, zu der der Besuch voraussichtlich beginnen wird.loadDemands
ordnet den Ladetyp der für den Abschluss des Vorgangs angeforderten Lademenge zu.Visit
. Die Ladungsbeträge sind bei Lieferbesuchen negativ und stellen die Last dar. aus dem Fahrzeug entfernt wird.
Ein Visit
-Beispiel sieht so aus:
{
"routes": [
{
...
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
...
],
},
...
],
...
}
Jede ShipmentRoute
enthält eine geordnete Liste von transitions
, die
Fahrt zwischen visits
für ein bestimmtes Fahrzeug. Wichtige Nachricht zu Transition
Zu den Attributen (REST, gRPC) gehören:
startTime
ist der Zeitpunkt, zu dem das Fahrzeug mit der Ausführung des Fahrzeugs beginnt, zu übertragen.travelDuration
ist die Dauer, bis zu der das Fahrzeug fahren muss um die Umstellung abzuschließen.travelDistanceMeters
ist die Entfernung in Metern, die das Fahrzeug liefern muss um den Übergang abzuschließen.trafficInfoUnavailable
gibt an, ob für die zu übertragen.waitDuration
steht für die Leerlaufzeit, die das Fahrzeug warten muss, bevor es möglich ist Start des nächstenVisit
. Dies kann amstart_time
des Follower vonVisit
totalDuration
ist die Gesamtdauer der Umstellung, einschließlich Fahrtdauer, Warte-, Pausen- und Verspätungszeiten.vehicleLoads
ordnet den Ladetyp der Ladungsmenge zu, die das Fahrzeug während diesen Übergang zu erreichen.
Ein Transition
-Beispiel sieht so aus:
{
"routes": [
{
...
"transitions": [
...
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
...
],
...
}
],
...
}
Die Beziehung zwischen vists
und transitions
wird unter
Optimierung von Abhol- und Lieferbestellungen sowie in der
Referenzdokumentation zu ShipmentRoute
(REST, gRPC)
Messwerteigenschaften
Die Metrics
-Nachricht (REST, gRPC) fasst die gesamte Lösung zusammen.
Zu den wichtigen Metrics
-Properties gehören:
totalCost
sind die Gesamtkosten, die für die Fertigstellung der Routen anfallen. Mehr erfahren zu Kosten in Kostenmodellparametern.usedVehicleCount
ist die Gesamtzahl der in der Lösung verwendeten Fahrzeuge. Die Fahrzeuge können leere Routen haben, wenn die Optimierung feststellt, dass ihre Nutzung ist unnötig.skippedMandatoryShipmentCount
ist die Anzahl der übersprungenen Sendungen, „Obligatorisch“. In einer obligatorischen Sendung ist keinepenaltyCost
angegeben, die anfällt, wenn die Lieferung übersprungen wird. Obligatorische Lieferungen können weiterhin werden übersprungen, wenn ihre Leistung unter bestimmten Einschränkungen nicht realisierbar ist. Weitere Informationen zu Kosten finden Sie unter Kostenmodellparameter.
Zusätzliche Messwerte werden als AggregatedMetrics
-Nachrichten (REST,
gRPC) ausführen. Der Nachrichtentyp AggregatedMetrics
wird verwendet für:
Metrics.aggregatedRouteMetrics
-Property und für ShipmentRoute.metrics
Property Metrics.aggregatedRouteMetrics
Messwerte enthält, die
ShipmentRoute
in OptimizeToursResponse
. Jeweils ShipmentRoute.metrics
Property enthält Messwerte für diesen spezifischen ShipmentRoute
.
Wichtige AggregatedMetrics
-Properties sind:
performedShipmentCount
ist die Anzahl der Sendungen, die von Fahrzeugen ausgeführt werden auf allen Routen ansehen.travelDuration
ist die Gesamtzeit, die das Fahrzeug während ihre Routen vervollständigen.waitDuration
ist die Gesamtzeit, die die Fahrzeuge am Ende warten deren Routen.delayDuration
ist die Gesamtverzögerungszeit der Fahrzeuge. Dies ist normalerweise Null, es sei denn,TransitionAttributes
werden in der Anfrage verwendet.breakDuration
ist die Gesamtzeit, die die Fahrzeuge in Pausen verbringen, während ihre Routen vervollständigen.visitDuration
ist die Gesamtzeit, die die Fahrzeuge mit Besuchen verbringen, während ihre Routen vervollständigen. Das ist die Summe allerVisitRequest.duration
-Werte fürVisitRequest
s, dieVisit
s entsprechen dem entsprechenden Fahrzeug zugewiesen ist.totalDuration
ist die Gesamtdauer, die erforderlich ist, um das Fahrzeug abzuschließen Routen planen.travelDistanceMeters
ist die Gesamtstrecke, die die Fahrzeuge zurückgelegt haben, während ihre Routen vervollständigen.maxLoads
ordnet die Ladetypen dem maximalen Ladevolumen zu, das vom auf ihren Routen nutzen.
Eine Metrics
-Nachricht sieht beispielsweise so aus:
{
"routes": [
...
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}
Vollständiges Beispiel
Eine vollständige Beispielantwort für die Anfrage von Compose a Request sieht so aus: wie:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
{
"startTime": "2024-02-13T00:19:31Z",
"detour": "0s"
}
],
"transitions": [
{
"travelDuration": "0s",
"waitDuration": "0s",
"totalDuration": "0s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1151s",
"travelDistanceMeters": 9599,
"waitDuration": "0s",
"totalDuration": "1151s",
"startTime": "2024-02-13T00:19:31Z"
}
],
"metrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"routeCosts": {
"model.vehicles.cost_per_kilometer": 18.603
},
"routeTotalCost": 18.603
}
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}