Sortie de l'outil Résoudre la tournée de véhicules

L'outil de géotraitement Résoudre la tournée de véhicules génère la table et les classes d'entités suivantes en sortie : Stops, UnassignedStops, Routes et Directions. Les tables et classes d'entités en sortie, ainsi que les attributs de champ correspondants, sont décrits dans les sous-sections suivantes.

Classe d’entités Routes

La classe d'entités linéaire Routes représente les conducteurs, véhicules et itinéraires d'une tournée de véhicules. Le nom par défaut de cette classe d'entités en sortie est Routes, mais vous pouvez lui attribuer un nom différent en modifiant le paramètre Nom des itinéraires en sortie (output_routes_name dans Python) avant l'analyse.

ArcGIS attribue même système de coordonnées que le jeu de données réseau sous-jacent utilise pour la classe d'entités Routes. Vous pouvez spécifier une valeur pour l'environnement de géotraitement Système de coordonnées en sortie.

Les noms de champ de la classe d'entités Routes sont répertoriés et décrits ci-dessous.

Nom du champDescription

ObjectID

Champ d'ID géré par le système.

Name

Nom de l'itinéraire.

Shape

Champ de géométrie indiquant la forme de l'itinéraire.

Utilisez le paramètre Remplir les lignes d'itinéraires (populate_route_lines dans Python) pour remplir ce champ ou non.

La classe d'entités Routes est toujours créée et remplie avec des données pendant l'exécution de l'outil Résoudre la tournée de véhicules. Toutefois, le paramètre Remplir les lignes d'itinéraires (populate_route_lines dans Python) vous permet de générer et de stocker les valeurs du champ Shape pour les entités linéaires. Si vous ne spécifiez pas de valeurs de champ Shape, l'analyse est plus rapide et la taille des échanges de données entre serveurs et clients diminue. Mais comme les utilisateurs souhaitent généralement visualiser les itinéraires sur une carte, il est souvent nécessaire de remplir le champ Shape.

ViolatedConstraints

Ce champ contient un résumé des contraintes de violation ; il est défini après un calcul. Si un itinéraire entraîne la violation d'une contrainte, une combinaison de plusieurs des violations répertoriées ci-dessous peut être attribuée au champ.

Approfondissement :

La valeur précodée qui représente la description textuelle est affichée dans la liste ci-dessous entre parenthèses. Remarquez que les valeurs précodées font partie d'une séquence géométrique qui augmente en doublant la valeur précédente. Cela permet la codification de différentes combinaisons d'infractions. Par exemple, la combinaison de "La valeur de capacités est dépassée" (2) et "Zone de tournée stricte" (128) est codée sous la forme 130 (2+128).

  • Valeur MaxOrderCount dépassée (1) : les ordres prédéfinis ne peuvent pas être attribués à l'itinéraire, car cette attribution dépasserait le nombre maximal d'ordres pouvant être attribués à l'itinéraire, spécifié par la valeur du champ MaxOrderCount de l'itinéraire.
  • Valeur Capacities dépassée (2) : les ordres prédéfinis ne peuvent pas être attribués à l'itinéraire, car cette attribution dépasserait la capacité totale de l'itinéraire, spécifiée par la valeur du champ Capacities de l'itinéraire.
  • Valeur MaxTotalTime dépassée (4) : le temps de trajet entre le dépôt initial et le dépôt final, plus la durée de desserte et le temps d'attente aux deux dépôts et les éventuelles pauses, dépassent la durée totale de l'itinéraire, spécifiée par la valeur du champ MaxTotalTime de l'itinéraire.
  • Valeur MaxTotalTravelTime dépassée (8) : le temps de trajet entre le dépôt initial et le dépôt final dépasse le temps de trajet total de l'itinéraire, spécifié par la valeur du champ MaxTotalTravelTime de l'itinéraire.
  • Valeur MaxTotalDistance dépassée (16) : la distance de trajet entre le dépôt initial et le dépôt final dépasse la distance de trajet totale de l'itinéraire, spécifiée par la valeur du champ MaxTotalDistance de l'itinéraire.
  • Fenêtre horaire stricte (32) – Infraction de fenêtre horaire stricte au dépôt initial, au dépôt final ou pendant les pauses associées à l'itinéraire.
  • Particularité sans correspondance (64) - Les particularités liées à un ordre sont introuvables sur l'itinéraire cible.
  • Zone de tournée stricte (128) – Un ordre qui a été prédéfini pour l'itinéraire ne coïncide pas avec une zone de tournée stricte.
  • Valeur MaxTransitTime du couple d’ordres dépassée (256) : en présence d'un couple d'ordres prédéfini pour l'itinéraire, l'attribution des ordres du couple d'ordres dépasserait le temps de transit maximal du couple d'ordres, spécifié par la valeur du champ MaxTransitTime du couple d'ordres.
  • Violation de couple d'ordres (512) : un ordre appartient à un couple d'ordres et ne peut pas être attribué à l'itinéraire prédéfini.
  • Inaccessible (1024) - Un ordre prédéfini se trouve sur un élément de réseau qui ne peut pas être atteint par l'itinéraire.
  • Impossible d'insérer la pause requise (2048) : une pause pour l'itinéraire a une valeur de séquence nulle en présence d'ordres prédéfinis et la pause ne peut pas être insérée n'importe où sans provoquer d'autres violations.
  • Impossible d'insérer le relais requis (4096) : un itinéraire dépasse sa capacité et doit visiter un relais de tournée. Or, le relais de tournée associé a une valeur de séquence nulle en présence d'ordres prédéfinis et ne peut pas être inséré n'importe où sans provoquer d'autres violations.
  • Valeur MaxTravelTimeBetweenBreaks dépassée (8192) : le solveur n'a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxTravelTimeBetweenBreaks de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de trajet maximal.

  • Valeur MaxCumulWorkTime de la pause dépassée (16384) : le solveur n'a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxCumulWorkTime de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de travail maximal.
  • Violation d’ordre InboundArriveTime ou OutboundDepartTime (32768) : l’ordre n’a pas pu être traité avant l’heure d’arrivée entrante ou l’heure de départ sortante impartie. Cette violation a lieu lorsque les valeurs de champ LatestStartTime de tous les itinéraires précèdent les valeurs InboundArriveTime ou qu’aucun des itinéraires ne peut atteindre un dépôt avant la valeur OutboundDepartTime de l’ordre.
  • Impossible de réaliser un premier/dernier ancrage (65536) : l’ordre comporte une règle d’attribution Premier ancrage ou Dernier ancrage, mais le solveur n’a pas réussi à respecter cette contrainte. Cette infraction se produit lorsque le nombre d'ordres Premier ancrage ou le nombre d'ordres Dernier ancrage est supérieur au nombre d'itinéraires disponibles.

  • ViolatedConstraint_1
  • ViolatedConstraint_2
  • ViolatedConstraint_3
  • ViolatedConstraint_4

Affiche une seule contrainte violée par champ. Les descriptions des violations sont visibles dans ViolationConstraints.

  • Valeur MaxOrderCount dépassée (0) : les ordres prédéfinis ne peuvent pas être attribués à l’itinéraire, car cette attribution dépasserait le nombre maximal d’ordres pouvant être attribués à l’itinéraire, spécifié par la valeur du champ MaxOrderCount de l’itinéraire.
  • Valeur Capacities dépassée (1) : les ordres prédéfinis ne peuvent pas être attribués à l’itinéraire, car cette attribution dépasserait la capacité totale de l’itinéraire, spécifiée par la valeur du champ Capacities de l’itinéraire.
  • Valeur MaxTotalTime dépassée (2) : le temps de trajet entre le dépôt initial et le dépôt final, plus la durée de desserte et le temps d’attente aux deux dépôts et les éventuelles pauses, dépassent la durée totale de l’itinéraire, spécifiée par la valeur du champ MaxTotalTime de l’itinéraire.
  • Valeur MaxTotalTravelTime dépassée (3) : le temps de trajet entre le dépôt initial et le dépôt final dépasse le temps de trajet total de l’itinéraire, spécifié par la valeur du champ MaxTotalTravelTime de l’itinéraire.
  • Valeur MaxTotalDistance dépassée (4) : la distance de trajet entre le dépôt initial et le dépôt final dépasse la distance de trajet totale de l’itinéraire, spécifiée par la valeur du champ MaxTotalDistance de l’itinéraire.
  • Fenêtre horaire stricte (5) : infraction de fenêtre horaire stricte au dépôt initial, au dépôt final ou pendant les pauses associées à l’itinéraire.
  • Particularité sans correspondance (6) : les particularités liées à un ordre sont introuvables sur l’itinéraire cible.
  • Zone de tournée stricte (7) : un ordre qui a été prédéfini pour l’itinéraire ne coïncide pas avec une zone de tournée stricte.
  • Valeur MaxTransitTime du couple d’ordres dépassée (8) : en présence d’un couple d’ordres prédéfini pour l’itinéraire, l’attribution des ordres du couple d’ordres dépasserait le temps de transit maximal du couple d’ordres, spécifié par la valeur du champ MaxTransitTime du couple d’ordres.
  • Violation de couple d’ordres (9) : un ordre appartient à un couple d’ordres et ne peut pas être attribué à l’itinéraire prédéfini.
  • Inaccessible (10) : un ordre prédéfini se trouve sur un élément de réseau qui ne peut pas être atteint par l’itinéraire.
  • Impossible d’insérer la pause requise (11) : une pause pour l’itinéraire a une valeur de séquence nulle en présence d’ordres prédéfinis et la pause ne peut pas être insérée n’importe où sans provoquer d’autres violations.
  • Impossible d’insérer le relais requis (12) : un itinéraire dépasse sa capacité et doit visiter un relais de tournée. Or, le relais de tournée associé a une valeur de séquence nulle en présence d’ordres prédéfinis et ne peut pas être inséré n’importe où sans provoquer d’autres violations.
  • Valeur MaxTravelTimeBetweenBreaks dépassée (13) : le solveur n’a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxTravelTimeBetweenBreaks de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de trajet maximal.

  • Valeur MaxCumulWorkTime de la pause dépassée (14) : le solveur n’a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxCumulWorkTime de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de travail maximal.
  • Violation de l’ordre InboundArriveTime ou OutboundDepartTime (15) : l’ordre n’a pas pu être desservi selon les contraintes d’heure d’arrivée entrante ou d’heure de départ sortante. Cette violation a lieu lorsque les valeurs de champ LatestStartTime de tous les itinéraires précèdent les valeurs InboundArriveTime ou qu’aucun des itinéraires ne peut atteindre un dépôt avant la valeur OutboundDepartTime de l’ordre.
  • Premier ancrage/dernier ancrage impossible (16) : l’ordre à une règle d’attribution Premier ancrage ou Dernier ancrage mais le solveur n’a pas été en mesure de respecter cette contrainte. Cette infraction se produit lorsque le nombre d'ordres Premier ancrage ou le nombre d'ordres Dernier ancrage est supérieur au nombre d'itinéraires disponibles.

OrderCount

Nombre d'ordres attribués à l'itinéraire.

TotalCost

Coût de fonctionnement total de l'itinéraire, qui correspond à la somme des valeurs des champs suivants :

  • FixedCost
  • RegularTimeCost
  • OvertimeCost
  • DistanceCost

RegularTimeCost

Coût de la durée normale du travail, à l'exclusion des pauses non rémunérées.

OvertimeCost

Coût des heures supplémentaires, à l'exclusion des pauses non rémunérées.

DistanceCost

Composante du coût de distance obtenue en multipliant les valeurs des champs TotalDistance et CostPerUnitDistance. La valeur de ce champ est nulle si l'attribut de distance n'est pas spécifié avant l'analyse.

TotalTime

Durée totale de l'itinéraire. Ce champ englobe le temps de trajet, ainsi que la durée de desserte et le temps d'attente aux ordres, aux dépôts et les pauses. La valeur TotalTime correspond à la somme des valeurs des champs suivants :

  • StartDepotServiceTime
  • EndDepotServiceTime
  • TotalOrderServiceTime
  • TotalBreakServiceTime
  • TotalRenewalServiceTime
  • TotalWaitTime
  • TotalTravelTime

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

TotalOrderServiceTime

Durée totale de desserte passée à tous les ordres de l'itinéraire.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

TotalBreakServiceTime

Durée totale de desserte passée à toutes les pauses de l'itinéraire.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

TotalTravelTime

Temps de trajet total de l'itinéraire.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

TotalDistance

Distance totale de trajet de l'itinéraire.

L’unité de cette valeur de champ est spécifiée par le paramètre Distance Field Units (Unités du champ de distance) (distance_units pour Python).

La valeur de ce champ est nulle si l'attribut de distance n'est pas spécifié avant l'analyse.

StartTime

Heure de début de l'itinéraire. L'itinéraire peut commencer avant le début de la fenêtre horaire de son dépôt initial. Cela fait alors l'objet d'un temps d'attente au dépôt initial.

Lors de l'utilisation de données de trafic couvrant plusieurs fuseaux horaires, le fuseau horaire correspondant à cette valeur horaire est extrait de l'élément de réseau sur lequel se trouve le dépôt initial.

EndTime

Heure de fin de l'itinéraire. L'itinéraire prend fin une fois la desserte terminée au dépôt final.

Lors de l'utilisation de données de trafic couvrant plusieurs fuseaux horaires, le fuseau horaire correspondant à cette valeur horaire est extrait de l'élément de réseau sur lequel se trouve le dépôt final.

TotalWaitTime

Temps d'attente total à tous les ordres, dépôts et aux pauses sur l'itinéraire.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

TotalViolationTime

Temps de violation total à tous les ordres et pauses sur l'itinéraire.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

RenewalCount

En cas de relais de tournée, cette valeur est égale au nombre d'arrêts aux dépôts en vue de charger ou de décharger un véhicule.

TotalRenewalServiceTime

Dans le cas d'un itinéraire comptant des relais, durée totale de desserte passée aux passages aux relais.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

Classes d'entités Directions

Cette classe d'entités linéaire donne des instructions tournant par tournant pour aider les conducteurs à suivre leurs itinéraires. Le nom par défaut de cette classe d'entités en sortie est Directions, mais vous pouvez lui attribuer un nom différent en modifiant le paramètre Output Directions Name (Nom de la feuille de route en sortie) (output_directions_name dans Python) avant l’analyse. En outre, l'outil Résoudre la tournée de véhicules crée toujours la classe d'entités Directions ; toutefois, vous pouvez utiliser le paramètre Populate Directions (Remplir la feuille de route) (populate_directions dans Python) pour remplir ou non la classe d'entités avec des entités pendant l’analyse. Par défaut, cette classe n'est pas remplie. Si vous n'avez pas besoin d'utiliser des feuilles de route, vous pouvez considérablement réduire les temps d’analyse, ainsi que la quantité des données transférées des serveurs aux clients.

ArcGIS attribue le même système de coordonnées que le jeu de données réseau sous-jacent utilise pour la classe d'entités Directions. Vous pouvez spécifier une valeur pour l'environnement de géotraitement Système de coordonnées en sortie.

Les noms de champ de la classe d'entités Directions sont répertoriés et décrits ci-dessous.

Nom du champDescription

ObjectID

Champ d'ID géré par le système.

Shape

Champ de géométrie indiquant la forme des lignes.

RouteName

Nom de l’itinéraire auquel l’action de conduite s’applique.

ArriveTime

Heure de la journée à laquelle commence une action de conduite donnée. Si l'itinéraire couvre plusieurs jours, la date et l'heure du jour sont affichées.

Type

Ce champ s'adresse à des utilisateurs expérimentés souhaitant personnaliser le texte des trajets. La plupart des utilisateurs peuvent ignorer ce champ et se reporter au champ Text.

Type est une constante dans l'une des deux énumérations suivantes : esriDirectionsManueverType ou esriDirectionsStringType. (Reportez-vous à la description du champ SubItemType pour savoir à quelles énumérations la valeur Type fait référence.)

SubItemType

Ce champ s'adresse à des utilisateurs expérimentés souhaitant personnaliser le texte des trajets. La plupart des utilisateurs peuvent ignorer ce champ et se reporter au champ Text.

SubItemType s'utilise avec Type pour créer le trajet dans le champ Text. Le champ SubItemType indique si le champ Type fait référence à une valeur constante de l'énumération esriDirectionsManueverType ou esriDirectionsStringType.

  • Si la valeur de SubItemType est égale à 1, la valeur de Type fait référence à esriDirectionsManeuverType.
  • Si la valeur de SubItemType est égale à 2, la valeur de Type fait référence à esriDirectionsStringType.

Text

Texte descriptif du trajet.

ElapsedTime

Temps écoulé entre le début du trajet actuel et le suivant ou entre le début du trajet actuel et la fin de l'itinéraire pour le dernier trajet.

Certains trajets incluent des enregistrements supplémentaires indiquant le temps de service, le temps de violation, etc. Dans ces cas, le temps écoulé est répliqué pour chaque enregistrement. Pour calculer le temps total écoulé, sélectionnez les enregistrements dont la valeur de Type est égale à 1 et additionnez-les.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

DriveDistance

Distance entre le début du trajet actuel et le suivant ou entre le début du trajet actuel et la fin de l'itinéraire pour le dernier trajet.

Cette valeur est nulle pour les trajets qui commencent au même emplacement que le suivant.

Table Stops

La table Stops fournit des informations sur les arrêts aux dépôts, aux ordres et pendant les pauses. Ces données précisent notamment les itinéraires qui comportent des arrêts, les heures de départ et d'arrivée, ainsi que la séquence des arrêts.

Le nom par défaut de cette table en sortie est Stops, mais vous pouvez lui attribuer un nom différent en modifiant le paramètre Nom des arrêts en sortie (output_stops_name dans Python) avant l'analyse.

Les noms de champ de la table Stops sont répertoriés et décrits ci-dessous.

Nom du champDescription

ObjectID

Champ d'ID géré par le système.

Name

Nom de l'arrêt. Il s'agit d'une clé étrangère du nom du dépôt, de l'ordre ou de la pause dans le jeu d'enregistrements et les jeux d'entités en entrée. Le champ StopType spécifie le jeu d'entités ou d'enregistrements en entrée.

PickupQuantities

Cargaison ou nombre de personnes devant être récupérées à un arrêt. Si plusieurs dimensions sont livrées à un arrêt, chaque quantité est séparée par un espace.

Les unités de ce champ ne sont pas stockées. Vous devez interpréter les unités en tenant compte de la méthode utilisée pour renseigner le champ Quantities des itinéraires en entrée et les champs PickupQuantities et DeliveryQuantities des ordres en entrée. (Vous devez avoir rempli ces champs en utilisant les mêmes unités et un nombre identique de dimensions.)

DeliveryQuantities

Cargaison ou nombre de personnes devant être déposées à un arrêt. Si plusieurs dimensions sont livrées à un arrêt, chaque quantité est séparée par un espace.

Les unités de ce champ ne sont pas stockées. Vous devez interpréter les unités en tenant compte de la méthode utilisée pour renseigner le champ Quantities des itinéraires en entrée et les champs PickupQuantities et DeliveryQuantities des ordres en entrée. (Vous devez avoir rempli ces champs en utilisant les mêmes unités et un nombre identique de dimensions.)

StopType

Indique si l’arrêt représente un dépôt, un ordre ou une pause.

La valeur codée stockée par ce champ peut être interprétée de la manière suivante :

  • Ordre (0)
  • Dépôt (1)
  • Pause (2)

RouteName

Nom de l'itinéraire comportant l'arrêt.

Sequence

Séquence relative selon laquelle l'itinéraire attribué passe par l'arrêt.

Si vous procédez à un tri par champs RouteName et Sequence, des listes ordonnées des arrêts sur chaque itinéraire sont créées.

FromPreviousTravelTime

Temps de trajet écoulé entre le précédent arrêt sur l'itinéraire et l'arrêt actuel.

L'unité de cette valeur de champ est spécifiée par le paramètre Unités du champ temporel (time_units dans Python).

FromPreviousDistance

Distance sur l'itinéraire entre le précédent arrêt et l'arrêt actuel.

L’unité de cette valeur de champ est spécifiée par le paramètre Distance Field Units (Unités du champ de distance) (distance_units pour Python).

ArriveCurbApproach

Indique de quel côté du véhicule se trouve le trottoir lorsque l'arrêt est atteint.

DepartCurbApproach

Indique de quel côté du véhicule se trouve le trottoir au départ de l'arrêt.

ArriveTime

Heure d'arrivée à l'arrêt.

Lorsque le jeu de données réseau est configuré avec des fuseaux horaires, la valeur horaire correspond au fuseau horaire où se trouve l'arrêt ; sinon, elle correspond au fuseau horaire configuré sur l'ordinateur utilisé pour résoudre l'analyse.

DepartTime

Heure de départ de l'arrêt.

Lorsque le jeu de données réseau est configuré avec des fuseaux horaires, la valeur horaire correspond au fuseau horaire où se trouve l'arrêt ; sinon, elle correspond au fuseau horaire configuré sur l'ordinateur utilisé pour résoudre l'analyse.

ArriveTimeUTC

Heure d'arrivée à l'arrêt. Cette valeur est exprimée en UTC (Temps Universel Coordonné).

La valeur de ce champ est Null si aucun fuseau horaire n'est configuré sur le jeu de données réseau.

DepartTimeUTC

Heure de départ de l'arrêt. Cette valeur est exprimée en UTC (Temps Universel Coordonné).

La valeur de ce champ est Null si aucun fuseau horaire n'est configuré sur le jeu de données réseau.

WaitTime

Temps d'attente ou escale à l'arrêt. Il se peut, par exemple, qu'une tournée soit obligée d'attendre à un ordre le début d'une fenêtre horaire.

ViolationTime

Laps de temps écoulé entre la fin de la fenêtre horaire de l'arrêt et l'arrivée de la tournée du véhicule.

Visualisation des arrêts

Comme la table Stops n'est pas une classe d'entités, il ne suffit pas d'ajouter la table à une carte pour voir les arrêts. Pour voir les arrêts sur une carte, vous devez suivre quelques étapes supplémentaires. Pour savoir comment, reportez-vous à la procédure ci-dessous. Cette approche peut vous sembler inutilement complexe si vous devez afficher les arrêts d'une tournée sur une carte, mais n'oubliez pas que cet outil est avant tout destiné à créer des services Web de tournées de véhicules. C'est pourquoi la sortie a été conçue pour être la plus succincte possible afin de minimiser la charge de traitement des serveurs et le transfert des données. Néanmoins, la sortie contient toutes les informations nécessaires à l'affichage des arrêts sous forme d'entités ponctuelles.

Par exemple, pour voir où se trouvent les arrêts au niveau des ordres, associez la table Stops au jeu d'entités Ordres d'origine utilisé en entrée. Vous pouvez sélectionner et combiner ces jeux de données à l'aide des champs StopType et Name de la table Stops et du champ Name du jeu d'entités Ordres. Adoptez une approche similaire pour afficher les arrêts aux dépôts.

Astuce :

Résoudre la tournée de véhicules crée plusieurs jeux d'entités en entrée, tels que Ordres et Dépôts. Lors de l'analyse, ces jeux d'entités en mémoire sont supprimés d'ArcMap. Mais vous pouvez les rajouter. Pour cela, procédez comme suit :

  1. Dans le menu Géotraitement , ouvrez la fenêtre Résultats.
  2. Dans la fenêtre Results (Résultats), accédez aux résultats de l'opération de votre choix.
  3. Développez le résultat Résoudre la tournée de véhicules approprié.
  4. Développez Entrées.
  5. Cliquez avec le bouton droit de la souris sur le jeu d'entités à afficher et choisissez Ajouter à la carte. Le jeu d'entités s'affiche dans la carte et dans la table des matières.
  6. Vous pouvez également cliquer sur le bouton List By Source (Répertorier par source) dans la fenêtre Table Of Contents (Table des matières) pour voir où sont stockées les données.

Contrairement aux ordres et aux dépôts, les pauses ne sont pas associées à un jeu d'entités en entrée. Vous devez faire appel à une autre méthode pour les visualiser. Vous pouvez générer des directions dans l'analyse, sélectionner les lignes représentant des entités et utiliser l'outil Sommets d'entités vers points pour les convertir en points.

Table UnassignedStops

Cette table répertorie les ordres qu'aucune tournée n'a pu atteindre. Elle indique également pourquoi l'arrêt n'a pas pu être respecté pour que vous puissiez résoudre le problème.

Le nom par défaut de cette table en sortie est Stops, mais vous pouvez lui attribuer un nom différent en modifiant le paramètre Nom des arrêts non attribués en sortie (output_unassigned_stops_name) avant l'analyse.

Les noms de champ de la table Stops sont répertoriés et décrits ci-dessous.

Nom du champDescription

ObjectID

Champ d'ID géré par le système.

StopType

Indique si l’arrêt représente un dépôt, un ordre ou une pause. La valeur codée stockée par ce champ peut être interprétée de la manière suivante :

  • Ordre (0)
  • Dépôt (1)
  • Pause (2)

Name

Nom de l'arrêt.

Il s'agit d'une clé étrangère du nom du dépôt, de l'ordre ou de la pause dans le jeu d'enregistrements et les jeux d'entités en entrée. Le champ StopType spécifie le jeu d'entités ou d'enregistrements en entrée.

ViolatedConstraints

Ce champ contient un résumé des contraintes de violation ; il est défini après un calcul. En cas de violation d'une contrainte, ce champ peut se voir attribuer une ou plusieurs des violations répertoriées ci-dessous.

Approfondissement :

La valeur précodée qui représente la description textuelle est affichée dans la liste ci-dessous entre parenthèses. Remarquez que les valeurs précodées font partie d'une séquence géométrique qui augmente en doublant la valeur précédente. Cela permet la codification de différentes combinaisons d'infractions. Par exemple, la combinaison de "La valeur de capacités est dépassée" (2) et "Zone de tournée stricte" (128) est codée sous la forme 130 (2+128).

  • Valeur MaxOrderCount dépassée (1) : les ordres prédéfinis ne peuvent pas être attribués à l'itinéraire, car cette attribution dépasserait le nombre maximal d'ordres pouvant être attribués à l'itinéraire, spécifié par la valeur du champ MaxOrderCount de l'itinéraire.
  • Valeur Capacities dépassée (2) : les ordres prédéfinis ne peuvent pas être attribués à l'itinéraire, car cette attribution dépasserait la capacité totale de l'itinéraire, spécifiée par la valeur du champ Capacities de l'itinéraire.
  • Valeur MaxTotalTime dépassée (4) : le temps de trajet entre le dépôt initial et le dépôt final, plus la durée de desserte et le temps d'attente aux deux dépôts et les éventuelles pauses, dépassent la durée totale de l'itinéraire, spécifiée par la valeur du champ MaxTotalTime de l'itinéraire.
  • Valeur MaxTotalTravelTime dépassée (8) : le temps de trajet entre le dépôt initial et le dépôt final dépasse le temps de trajet total de l'itinéraire, spécifié par la valeur du champ MaxTotalTravelTime de l'itinéraire.
  • Valeur MaxTotalDistance dépassée (16) : la distance de trajet entre le dépôt initial et le dépôt final dépasse la distance de trajet totale de l'itinéraire, spécifiée par la valeur du champ MaxTotalDistance de l'itinéraire.
  • Fenêtre horaire stricte (32) – Infraction de fenêtre horaire stricte au dépôt initial, au dépôt final ou pendant les pauses associées à l'itinéraire.
  • Particularité sans correspondance (64) - Les particularités liées à un ordre sont introuvables sur l'itinéraire cible.
  • Zone de tournée stricte (128) – Un ordre qui a été prédéfini pour l'itinéraire ne coïncide pas avec une zone de tournée stricte.
  • Valeur MaxTransitTime du couple d’ordres dépassée (256) : en présence d'un couple d'ordres prédéfini pour l'itinéraire, l'attribution des ordres du couple d'ordres dépasserait le temps de transit maximal du couple d'ordres, spécifié par la valeur du champ MaxTransitTime du couple d'ordres.
  • Violation de couple d'ordres (512) : un ordre appartient à un couple d'ordres et ne peut pas être attribué à l'itinéraire prédéfini.
  • Inaccessible (1024) - Un ordre prédéfini se trouve sur un élément de réseau qui ne peut pas être atteint par l'itinéraire.
  • Impossible d'insérer la pause requise (2048) : une pause pour l'itinéraire a une valeur de séquence nulle en présence d'ordres prédéfinis et la pause ne peut pas être insérée n'importe où sans provoquer d'autres violations.
  • Impossible d'insérer le relais requis (4096) : un itinéraire dépasse sa capacité et doit visiter un relais de tournée. Or, le relais de tournée associé a une valeur de séquence nulle en présence d'ordres prédéfinis et ne peut pas être inséré n'importe où sans provoquer d'autres violations.
  • Valeur MaxTravelTimeBetweenBreaks dépassée (8192) : le solveur n'a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxTravelTimeBetweenBreaks de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de trajet maximal.

  • Valeur MaxCumulWorkTime de la pause dépassée (16384) : le solveur n'a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxCumulWorkTime de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de travail maximal.
  • Violation d’ordre InboundArriveTime ou OutboundDepartTime (32768) : l’ordre n’a pas pu être traité avant l’heure d’arrivée entrante ou l’heure de départ sortante impartie. Cette violation a lieu lorsque les valeurs de champ LatestStartTime de tous les itinéraires précèdent les valeurs InboundArriveTime ou qu’aucun des itinéraires ne peut atteindre un dépôt avant la valeur OutboundDepartTime de l’ordre.
  • Impossible de réaliser un premier/dernier ancrage (65536) : l’ordre comporte une règle d’attribution Premier ancrage ou Dernier ancrage, mais le solveur n’a pas réussi à respecter cette contrainte. Cette infraction se produit lorsque le nombre d'ordres Premier ancrage ou le nombre d'ordres Dernier ancrage est supérieur au nombre d'itinéraires disponibles.

  • ViolatedConstraint_1
  • ViolatedConstraint_2
  • ViolatedConstraint_3
  • ViolatedConstraint_4

Affiche une seule contrainte violée par champ. Les descriptions des violations sont visibles dans ViolationConstraints.

  • Valeur MaxOrderCount dépassée (0) : les ordres prédéfinis ne peuvent pas être attribués à l’itinéraire, car cette attribution dépasserait le nombre maximal d’ordres pouvant être attribués à l’itinéraire, spécifié par la valeur du champ MaxOrderCount de l’itinéraire.
  • Valeur Capacities dépassée (1) : les ordres prédéfinis ne peuvent pas être attribués à l’itinéraire, car cette attribution dépasserait la capacité totale de l’itinéraire, spécifiée par la valeur du champ Capacities de l’itinéraire.
  • Valeur MaxTotalTime dépassée (2) : le temps de trajet entre le dépôt initial et le dépôt final, plus la durée de desserte et le temps d’attente aux deux dépôts et les éventuelles pauses, dépassent la durée totale de l’itinéraire, spécifiée par la valeur du champ MaxTotalTime de l’itinéraire.
  • Valeur MaxTotalTravelTime dépassée (3) : le temps de trajet entre le dépôt initial et le dépôt final dépasse le temps de trajet total de l’itinéraire, spécifié par la valeur du champ MaxTotalTravelTime de l’itinéraire.
  • Valeur MaxTotalDistance dépassée (4) : la distance de trajet entre le dépôt initial et le dépôt final dépasse la distance de trajet totale de l’itinéraire, spécifiée par la valeur du champ MaxTotalDistance de l’itinéraire.
  • Fenêtre horaire stricte (5) : infraction de fenêtre horaire stricte au dépôt initial, au dépôt final ou pendant les pauses associées à l’itinéraire.
  • Particularité sans correspondance (6) : les particularités liées à un ordre sont introuvables sur l’itinéraire cible.
  • Zone de tournée stricte (7) : un ordre qui a été prédéfini pour l’itinéraire ne coïncide pas avec une zone de tournée stricte.
  • Valeur MaxTransitTime du couple d’ordres dépassée (8) : en présence d’un couple d’ordres prédéfini pour l’itinéraire, l’attribution des ordres du couple d’ordres dépasserait le temps de transit maximal du couple d’ordres, spécifié par la valeur du champ MaxTransitTime du couple d’ordres.
  • Violation de couple d’ordres (9) : un ordre appartient à un couple d’ordres et ne peut pas être attribué à l’itinéraire prédéfini.
  • Inaccessible (10) : un ordre prédéfini se trouve sur un élément de réseau qui ne peut pas être atteint par l’itinéraire.
  • Impossible d’insérer la pause requise (11) : une pause pour l’itinéraire a une valeur de séquence nulle en présence d’ordres prédéfinis et la pause ne peut pas être insérée n’importe où sans provoquer d’autres violations.
  • Impossible d’insérer le relais requis (12) : un itinéraire dépasse sa capacité et doit visiter un relais de tournée. Or, le relais de tournée associé a une valeur de séquence nulle en présence d’ordres prédéfinis et ne peut pas être inséré n’importe où sans provoquer d’autres violations.
  • Valeur MaxTravelTimeBetweenBreaks dépassée (13) : le solveur n’a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxTravelTimeBetweenBreaks de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de trajet maximal.

  • Valeur MaxCumulWorkTime de la pause dépassée (14) : le solveur n’a pas pu insérer de pause pendant le laps de temps spécifié par le champ MaxCumulWorkTime de la pause. Tel est souvent le cas lorsqu'une séquence est prédéfinie pour une pause et qu'elle reste inaccessible pendant le temps de travail maximal.
  • Violation de l’ordre InboundArriveTime ou OutboundDepartTime (15) : l’ordre n’a pas pu être desservi selon les contraintes d’heure d’arrivée entrante ou d’heure de départ sortante. Cette violation a lieu lorsque les valeurs de champ LatestStartTime de tous les itinéraires précèdent les valeurs InboundArriveTime ou qu’aucun des itinéraires ne peut atteindre un dépôt avant la valeur OutboundDepartTime de l’ordre.
  • Premier ancrage/dernier ancrage impossible (16) : l’ordre à une règle d’attribution Premier ancrage ou Dernier ancrage mais le solveur n’a pas été en mesure de respecter cette contrainte. Cette infraction se produit lorsque le nombre d'ordres Premier ancrage ou le nombre d'ordres Dernier ancrage est supérieur au nombre d'itinéraires disponibles.

Status

Ce champ est contraint par un domaine de valeurs répertoriées ci-dessous (leurs valeurs précodées sont affichées entre parenthèses).

  • OK (0) : la localisation réseau a été évaluée avec succès.
  • Not located (1) : l’arrêt n’a pas pu être localisé sur le réseau.
  • Network element not located (2) : l’élément de réseau identifié par les champs de localisation réseau de l’arrêt est introuvable. Cela peut se produire lorsqu’un élément de réseau où l’arrêt doit se trouver a été supprimé et que la localisation réseau n’a pas été recalculée.
  • Element not traversable (3) : l’élément de réseau où se trouve l’arrêt n’est pas traversable. Cette situation peut se produire lorsque l'élément de réseau est restreint par un attribut de restriction.
  • Invalid field values (4) : une ou plusieurs valeurs de champ de l’arrêt se trouvent en dehors des domaines codés ou par plage de la couche d’analyse. Par exemple, un nombre négatif peut se trouver à l'endroit où des nombres positifs sont requis.
  • Not reached (5) : l’arrêt ne peut pas être atteint par le solveur. Il se peut que l’arrêt se trouve sur une zone distincte déconnectée du réseau des autres entrées, ou des interruptions ou des restrictions empêchent de voyager vers ou depuis l’arrêt.
  • Time window violation (6) : l’arrêt n’a pas pu être atteint dans les fenêtres horaires spécifiées. Ce statut ne s’applique qu’aux types d’analyse prenant en charge les fenêtres horaires.
  • Not located on closest (7) : l’emplacement réseau le plus proche de l’arrêt n’est pas traversable en raison d’une restriction ou d’une interruption. L’arrêt a par conséquent été positionné sur l’entité de réseau traversable la plus proche.

Rubriques connexes