Réponse après avoir résolu un problème d'optimisation des visites, contenant les itinéraires suivis par chaque véhicule, les envois ignorés et le coût global de la solution.
Représentation JSON |
---|
{ "routes": [ { object ( |
Champs | |
---|---|
routes[] |
Itinéraires calculés pour chaque véhicule. Le i-ième itinéraire correspond au i-ième véhicule du modèle. |
requestLabel |
Copie de |
skippedShipments[] |
Liste de toutes les expéditions ignorées. |
validationErrors[] |
Liste de toutes les erreurs de validation que nous avons pu détecter indépendamment. Consultez l'explication "PLUSIEURS ERREURS" pour le message |
metrics |
Durée, distance et métriques d'utilisation de cette solution. |
OptimizeToursValidationError
Décrit une erreur rencontrée lors de la validation d'un OptimizeToursRequest
.
Représentation JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Champs | |
---|---|
code |
Une erreur de validation est définie par la paire ( D'autres champs (ci-dessous) fournissent plus de contexte sur l'erreur. PLUSIEURS ERREURS: lorsqu'il existe plusieurs erreurs, le processus de validation tente d'en afficher plusieurs. Tout comme un compilateur, il s'agit d'un processus imparfait. Certaines erreurs de validation sont "fatales" et interrompent l'ensemble du processus de validation. C'est le cas des erreurs STABILITÉ: REFERENCE: liste de toutes les paires (code, nom) :
|
displayName |
Nom à afficher de l'erreur. |
fields[] |
Un contexte d'erreur peut impliquer 0, 1 (la plupart du temps) ou plusieurs champs. Par exemple, pour faire référence au véhicule n° 4 et au premier enlèvement du colis n° 2, procédez comme suit:
Notez toutefois que la cardinalité de |
errorMessage |
Chaîne de texte décrivant l'erreur. Il existe une correspondance 1:1 entre STABILITÉ: non stable: le message d'erreur associé à un |
offendingValues |
Peut contenir la ou les valeurs des champs. Cette option n'est pas toujours disponible. Vous ne devez absolument pas vous y fier et ne l'utiliser que pour le débogage manuel des modèles. |
FieldReference
Spécifie un contexte pour l'erreur de validation. Un FieldReference
fait toujours référence à un champ donné dans ce fichier et suit la même structure hiérarchique. Par exemple, nous pouvons spécifier l'élément n° 2 du fichier startTimeWindows
pour le véhicule n° 5 comme suit:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Toutefois, nous ignorons les entités de niveau supérieur telles que OptimizeToursRequest
ou ShipmentModel
pour éviter d'encombrer le message.
Représentation JSON |
---|
{ "name": string, "subField": { object ( |
Champs | |
---|---|
name |
Nom du champ, par exemple "véhicules". |
subField |
Sous-champ imbriqué de manière récursive, si nécessaire. |
Champ d'union
|
|
index |
Index du champ s'il est répété. |
key |
Clé si le champ est une carte. |
Métriques
Métriques globales, agrégées pour toutes les routes.
Représentation JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
Champs | |
---|---|
aggregatedRouteMetrics |
Agrégation des routes. Chaque métrique correspond à la somme (ou maximale, pour les chargements) de tous les champs |
skippedMandatoryShipmentCount |
Nombre d'envois obligatoires ignorés. |
usedVehicleCount |
Nombre de véhicules utilisés. Remarque: Si l'itinéraire d'un véhicule est vide et que |
earliestVehicleStartTime |
Heure de départ au plus tôt d'un véhicule d'occasion, calculée comme le minimum pour tous les véhicules d'occasion ( Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres après la virgule. Exemples: |
latestVehicleEndTime |
Heure de fin la plus tardive d'un véhicule d'occasion, calculée comme étant le maximum pour tous les véhicules d'occasion de Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres après la virgule. Exemples: |
costs |
Coût de la solution, ventilé par champs de requête liés au coût. Les clés sont des chemins proto par rapport à la requête OptimizeToursRequest d'entrée (par exemple, "model.shipments.pickups.cost"). Les valeurs correspondent au coût total généré par le champ de coût correspondant, agrégé pour l'ensemble de la solution. En d'autres termes, les coûts["model.shipments.pickups.cost"] correspondent à la somme de tous les coûts de retrait dans la solution. Tous les coûts définis dans le modèle sont présentés en détail ici, à l'exception des coûts liés aux TransitionAttributes, qui ne sont indiqués que de manière agrégée en date du 1er janvier 2022. Objet contenant une liste de paires |
totalCost |
Coût total de la solution. Somme de toutes les valeurs du plan des coûts. |