VehicleRoutingProblem input data types for schema version One

The input data types that can be specified when performing a vehicle routing problem (VRP) analysis using the VehicleRoutingProblemSchemaVersion.One schema version are described below.

Orders

Une ou plusieurs localisations que les itinéraires de l’analyse VRP visitent. Un ordre peut représenter une livraison (livraison d’un meuble, par exemple), une collecte (navette d’aéroport collectant un passager, par exemple) ou tout autre type de service ou d’inspection (élagage d’arbres ou inspection d’un bâtiment, par exemple).

The data type supports the following fields:

FieldDescriptionData type

Name

Nom de l’ordre. Le nom doit être unique. Si le nom n’est pas spécifié (champ vide), un nom est automatiquement généré pendant le processus de résolution.

Text

Description

Informations décrivant l'ordre. Ce champ peut contenir toute information textuelle concernant l'ordre, sans restriction en matière d'unicité. Vous pouvez stocker l’identifiant d’un client dans le champ Name et son nom ou son adresse dans le champ Description.

Text

ServiceTime

Temps passé à la localisation de réseau lorsque l’itinéraire la visite ; c’est-à-dire la valeur d’impédance de la localisation de réseau. Une valeur zéro ou nulle indique que la localisation de réseau n’implique aucune durée de desserte.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

TimeWindowStart1

Heure de début de la première fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de début.

Une fenêtre horaire n’indique que le moment auquel un véhicule peut arriver à un ordre, et non l’heure à laquelle la desserte doit être terminée. Pour tenir compte de la durée de desserte et partir avant la fin de la fenêtre horaire, vous devez soustraire la valeur du champ ServiceTime de celle du champ TimeWindowEnd1.

Les champs de fenêtres horaires (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2) peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure. Si un champ temporel, tel que TimeWindowStart1, a une valeur basée sur une heure uniquement (8 h 00, par exemple), la date est censée être la date par défaut définie pour l’analyse. L'utilisation de valeurs de date et d'heure (par exemple, 7/11/2010 8h00) vous permet de définir des fenêtres horaires qui couvrent plusieurs jours.

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

TimeWindowEnd1

Heure de fin de la première fenêtre pour la localisation de réseau. Ce champ peut contenir une valeur nulle, ce qui désigne l’absence d’heure de fin.

Date

TimeWindowStart2

Heure de début de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique l'absence de deuxième fenêtre horaire.

Si la première fenêtre horaire spécifiée par les champs TimeWindowStart1 et TimeWindowEnd1 est nulle, la deuxième doit l’être également.

Si les deux fenêtres horaires ne sont pas nulles, elles ne peuvent pas se chevaucher. En outre, la deuxième fenêtre horaire doit survenir après la première.

Date

TimeWindowEnd2

Heure de fin de la deuxième fenêtre horaire pour la localisation de réseau. Ce champ peut contenir une valeur Null.

Lorsque TimeWindowStart2 et TimeWindowEnd2 sont tous les deux nuls, il n’existe pas de deuxième fenêtre horaire.

Lorsque TimeWindowStart2 n’est pas nul, mais que TimeWindowEnd2 l’est, une deuxième fenêtre horaire possède une heure de début, mais aucune heure de fin. Cette situation est valide.

Date

MaxViolationTime1

Une fenêtre horaire est considérée comme violée si l'heure d'arrivée survient après la fin de la fenêtre horaire. Ce champ spécifie l'infraction de temps maximale autorisée pour la première fenêtre horaire de l'ordre. Elle peut contenir une valeur de zéro, mais pas de valeurs négatives. La valeur zéro indique qu'une violation de fenêtre horaire à la première fenêtre horaire de l'ordre est inacceptable. La première fenêtre horaire est donc stricte. En revanche, une valeur nulle indique qu’il n’existe aucune limite en termes d’infraction de temps autorisée. Une valeur différente de zéro indique le retard maximal autorisé ; par exemple, un itinéraire peut arriver jusqu’à 30 minutes après la fin de sa première fenêtre horaire pour un ordre.

The unit for this field value is specified by the timeUnits property of the analysis object.

Les violations de fenêtre horaire peuvent être suivies et pondérées par le solveur. Vous pouvez faire en sorte que le solveur VRP procède comme suit :

  • réduire la durée totale de la violation sans tenir compte de l’augmentation du coût de trajet de la flotte ;
  • trouver une solution équilibrée entre la durée totale de la violation et le coût de trajet ;
  • ignorer la durée totale de la violation et réduire à la place le coût de déplacement de la flotte.

By assigning an importance level for the timeWindowFactor property of the analysis object, you are essentially choosing one of these options. In any case, however, the solver will return an error if the value set for MaxViolationTime1 is surpassed.

Double

MaxViolationTime2

Infraction maximale de temps autorisée pour la deuxième fenêtre horaire de l'ordre. Ce champ est identique au champ MaxViolationTime1.

Double

InboundArriveTime

Définit le moment où l'élément à livrer à l'ordre sera prêt au dépôt de départ.

L'ordre peut être attribué à un itinéraire uniquement si l'heure d'arrivée entrante précède la valeur de la dernière heure de départ de l'itinéraire. Ainsi, l'itinéraire ne peut pas quitter le dépôt avant que l'élément ne soit prêt à y être chargé.

Ce champ permet de modéliser des scénarios qui impliquent des transbordements entrants. Par exemple, supposons qu'une tâche d'un ordre nécessite des matériaux spéciaux qui ne sont actuellement pas disponibles au dépôt. Les matériaux sont expédiés d’un autre emplacement et arriveront au dépôt à 11 h 00. Pour veiller à ce qu'aucun itinéraire sortant ne soit affecté à l'ordre avant l’arrivée de la livraison, l’heure d’arrivée entrante de l’ordre est fixée à 11 h 00. Les matériaux spéciaux arrivent à 11 h 00, ils sont chargés sur le véhicule, et le véhicule quitte le dépôt pour visiter les ordres qui lui sont affectés.

Notes:

  • L'heure de départ de l'itinéraire, qui inclut la durée de desserte, doit suivre l'heure d'arrivée entrante. Si un itinéraire commence avant l'heure d'arrivée entrante d'un ordre, ce dernier ne peut pas être attribué à l'itinéraire. L'attribution est incorrecte même si l'itinéraire a une durée de desserte au dépôt de départ qui dépasse l'heure d'arrivée entrante.

  • Ce champ temporel peut contenir une valeur d'heure uniquement ou une valeur de date et d'heure. Si une valeur horaire est définie (par exemple, 11 h 00), la date est censée être la date par défaut définie pour l’analyse. La date par défaut est toutefois ignorée lorsqu'un champ temporel Dépôts, Itinéraires, Ordres ou Interruptions inclut une date avec l'heure. Dans ce cas, renseignez tous ces champs avec une date et une heure (par exemple, 7/11/2015 11:00 AM).

  • Le solveur VRP respecte InboundArriveTime, quelle que soit la valeur DeliveryQuantities.

  • Si une heure de départ sortante est également précisée, sa valeur temporelle doit suivre l'heure d'arrivée entrante.

Date

OutboundDepartTime

Définit le moment où l'élément à collecter à l'ordre doit arriver au dépôt d'arrivée.

L'ordre peut être attribué à un itinéraire uniquement si l'itinéraire peut parvenir à l'ordre et atteindre son dépôt final avant l'heure de départ sortante spécifiée.

Ce champ permet de modéliser des scénarios qui impliquent des transbordements sortants. Par exemple, une société de transport envoie des camions de livraison pour collecter des colis aux différents ordres et les ramener dans un dépôt où ils sont transférés vers d'autres ressources, en route vers leur destination finale. A 15 h 00 chaque jour, un semi-remorque s'arrête au dépôt pour collecter les colis hautement prioritaires et les emmener directement dans un centre de traitement. Pour éviter que les colis hautement prioritaires ne soient retardés et doivent attendre jusqu'à 15 h 00 le jour suivant, la société de transport envoie des camions de livraison collecter les colis hautement prioritaires aux ordres et pour les amener au dépôt avant 15 h 00. Pour ce faire, l'heure de départ sortante doit être réglée sur 15 h 00.

Notes:

  • L'heure d'arrivée de l'itinéraire, notamment la durée de desserte, doit précéder l'heure de départ sortante. Si un itinéraire parvient à un dépôt, mais qu'elle ne termine pas sa durée de desserte au dépôt final avant l'heure de départ sortante de l'ordre, l'ordre ne peut pas être attribué à l'itinéraire.

  • Ce champ temporel peut contenir une valeur d'heure uniquement ou une valeur de date et d'heure. Si une valeur horaire est définie (par exemple, 11 h 00), la date est censée être la date par défaut définie pour l’analyse. La date par défaut est toutefois ignorée lorsqu'un champ temporel Dépôts, Itinéraires, Ordres ou Interruptions inclut une date avec l'heure. Dans ce cas, renseignez tous ces champs avec une date et une heure (par exemple, 7/11/2015 11:00 AM).

  • Le solveur VRP respecte OutboundDepartTime, quelle que soit la valeur PickupQuantities.

  • Si une heure d'arrivée entrante est également précisée, sa valeur temporelle doit précéder l'heure de départ sortante.

Date

DeliveryQuantities

Taille de la livraison. Vous pouvez spécifier la taille dans la dimension de votre choix, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume.

Entrez les quantités de livraison sans préciser d’unités. Par exemple, si un objet pesant 150 kilos doit être livré à un ordre, entrez 150. Vous devez vous souvenir que la valeur est exprimée en kilos.

Si vous effectuez le suivi de plusieurs dimensions, séparez chaque valeur numérique par un espace. Si, par exemple, vous enregistrez le poids et le volume d’une livraison de 1 000 kilos et 3 mètres cube, respectivement, entrez 1000 3. Là encore, vous devez vous souvenir des unités utilisées, à savoir les kilos et les mètres cube dans ce cas. Vous devez également mémoriser l’ordre dans lequel vous saisissez les valeurs et leurs unités correspondantes.

Assurez-vous que les valeurs de Capacities pour Itinéraires et celles de DeliveryQuantities et de PickupQuantities pour Ordres sont spécifiées de la même manière. Les valeurs doivent être exprimées dans les mêmes unités. Si vous utilisez plusieurs dimensions, les dimensions doivent être répertoriées dans le même ordre pour tous les paramètres. Ainsi, si vous spécifiez le poids en kilos, puis le volume en mètres cubes pour DeliveryQuantities, la capacité des itinéraires et les quantités d’enlèvement des ordres doivent être spécifiées de la même manière, à savoir poids en kilos, puis volume en mètres cubes. Si vous combinez des unités ou modifiez la séquence, des résultats indésirables se produisent sans message d’avertissement.

Une chaîne vide ou une valeur nulle signifie que toutes les dimensions sont infinies. Si la chaîne contient un nombre insuffisant de valeurs par rapport au nombre de capacités ou aux dimensions faisant l’objet d’un suivi, les valeurs restantes sont considérées comme infinies. Les quantités de livraison ne peuvent pas être négatives.

Text

PickupQuantities

Taille de l'enlèvement. Vous pouvez spécifier la taille dans la dimension de votre choix, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume. En revanche, vous ne pouvez pas utiliser de valeurs négatives. Ce champ est identique au champ DeliveryQuantities de la classe Orders.

dans le cas d'une visite d'échange, un ordre peut avoir à la fois des quantités de livraison et de collecte.

Text

Revenue

Chiffre d'affaires généré si l'ordre est inclus dans une solution. Ce champ peut contenir une valeur Null, qui indique un chiffre d'affaires égal à zéro, mais il ne peut pas contenir de valeur négative.

Les recettes sont comprises dans l’optimisation de la valeur de fonction objective, mais ne font pas partie du coût opérationnel de la solution. Autrement dit, le champ TotalCost des itinéraires n’inclut jamais les recettes dans sa sortie. Cependant, le chiffre d'affaires pondère l'importance relative de la desserte des ordres.

Double

SpecialtyNames

Chaîne séparée par des espaces contenant les noms des particularités requises pour l'ordre. Une valeur Null indique que l'ordre n'inclut pas de particularités.

L'orthographe des spécialités répertoriées dans les classes Ordres et Itinéraires doit correspondre pour que le solveur de tournées de véhicules puisse les associer entre elles.

Pour décrire les particularités et leur fonctionnement, imaginons une société d’entretien des pelouses et d’élagage dont une partie de ses ordres nécessite l’usage d’un camion nacelle pour élaguer les grands arbres. L’entreprise saisit CamionNacelle dans le champ SpecialtyNames de ces ordres pour indiquer leur besoin spécifique. SpecialtyNames n’est pas renseigné pour les autres ordres. De la même manière, l’entreprise saisit également CamionNacelle dans le champ SpecialtyNames des itinéraires empruntés par des camions munis de flèches hydrauliques. Le champ n’est pas renseigné pour les autres itinéraires. Lors de l'analyse, le solveur de tournées de véhicules attribue des ordres sans besoin spécifique à n'importe quel itinéraire, mais il attribue les ordres nécessitant des camions nacelle uniquement aux itinéraires empruntés par ces derniers.

Text

AssignmentRule

Spécifie la règle d’attribution de l’ordre à un itinéraire. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Exclure) : l’ordre est exclu de l’opération de calcul qui s’ensuit.
  • 1 (Conserver la tournée et la séquence définie) : le solveur doit toujours attribuer l’ordre à l’itinéraire préétabli selon la séquence relative prédéfinie lors du calcul. Si cette règle d'attribution ne peut pas être respectée, une violation d'ordre s'ensuit. Avec ce paramètre, seule la séquence relative est conservée (mais pas la séquence absolue). Pour illustrer cela, prenons deux ordres, A et B. Leur valeur de séquence respective est 2 et 3. Si vous définissez les valeurs du champ AssignmentRule sur Conserver la tournée et la séquence relative, les valeurs de séquence de A et B peuvent changer une fois l’analyse terminée, car d’autres ordres, pauses et passages aux dépôts peuvent encore être insérés avant, entre ou après A et B. Toutefois, B ne peut pas survenir avant A.
  • 2 (Conserver la tournée) : le solveur doit toujours attribuer l'ordre à l'itinéraire préattribué lors du calcul. Une séquence valide doit aussi être définie, même si elle ne peut pas être conservée. Si l'ordre ne peut pas être attribué à l'itinéraire spécifié, une violation d'ordre s'ensuit.
  • 3 (Déroger) : le solveur tente de conserver l'itinéraire et de séquencer la préattribution de l'ordre lors du calcul. Mais un nouvel itinéraire ou une nouvelle séquence peut être attribuée à l'ordre si cela permet de réduire la valeur globale de la fonction objective. Il s’agit de la valeur par défaut.
  • 4 (Premier ancrage) : le solveur ignore l'itinéraire et la séquence prédéfinis (le cas échéant) pour l'ordre lors de la résolution. Il attribue un itinéraire à l’ordre qu’il place en premier sur cet itinéraire pour limiter la valeur globale de la fonction objective.
  • 5 (Dernier ancrage) : le solveur ignore l'itinéraire et la séquence prédéfinis (le cas échéant) pour l'ordre lors de la résolution. Il attribue un itinéraire à l’ordre qu’il place en dernier sur cet itinéraire pour limiter la valeur globale de la fonction objective.

Ce champ ne peut pas contenir une valeur Null.

Long

RouteName

Nom de l'itinéraire auquel l'ordre est attribué.

Ce champ est utilisé pour préattribuer un ordre à une tournée spécifique. Il peut contenir une valeur nulle indiquant que l’ordre n’est préattribué à aucun itinéraire et que le solveur détermine la meilleure attribution d’itinéraire possible pour l’ordre. Si sa valeur est définie sur nul, le champ Sequence doit aussi l’être.

Après un calcul, si l’ordre est visité, le champ RouteName contient le nom de l’itinéraire auquel l’ordre est attribué.

Text

Sequence

Ce champ indique la séquence de l'ordre sur son itinéraire attribué.

Ce champ permet de spécifier la séquence relative d’un ordre sur l’itinéraire. Ce champ peut contenir une valeur Null qui spécifie que l'ordre peut être placé n'importe où le long de l'itinéraire.

Les valeurs de séquence en entrée sont positives et uniques pour chaque itinéraire (partagées par les passages aux dépôts de relais, les ordres et les pauses), mais elles n'ont pas besoin de commencer à 1 ou d'être contiguës.

Long

CurbApproach

Spécifie la direction dans laquelle un véhicule peut atteindre et quitter le lieu de l’ordre. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Peu importe le côté) : le véhicule peut atteindre et quitter l’ordre dans les deux directions, donc le demi-tour est autorisé à l’ordre. Ce paramètre peut être sélectionné s’il est possible et pratique pour votre véhicule de revenir en arrière au niveau de l’ordre. Cette décision peut dépendre de la largeur de la route et de la densité du trafic ou de la présence à l’ordre d’un parking où les véhicules peuvent entrer et faire demi-tour.
  • 1 (Côté droit du véhicule) : l'ordre doit se trouver du côté droit du véhicule lorsque celui-ci s'en approche ou s'en éloigne. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la droite.
  • 2 (Côté gauche du véhicule) : lorsque le véhicule atteint et quitte le lieu de l'ordre, le bord du trottoir doit être du côté gauche du véhicule. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la gauche.
  • 3 (Pas de demi-tour) : lorsque le véhicule s'approche du lieu de l'ordre, le bord du trottoir peut être d'un côté quelconque du véhicule ; en revanche, le véhicule doit partir sans faire demi-tour.

L’attribut CurbApproach est conçu pour fonctionner avec les deux normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (comme au Royaume-Uni). Tout d'abord, imaginons un ordre qui s'est produit du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder l'ordre du côté droit ou du côté gauche du véhicule. Par exemple, pour atteindre un ordre sans laisser de voie de circulation entre le véhicule et l’ordre, choisissez 1 (côté droit du véhicule) en France et aux États-Unis et 2 (côté gauche du véhicule) au Royaume-Uni.

Long

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

En savoir plus sur le relèvement et la tolérance de relèvement

Double

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

En savoir plus sur le relèvement et la tolérance de relèvement

Double

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object.

Double

Network location fields

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

Ensemble, ces propriétés décrivent le point sur le réseau où se trouve l'objet.

Pour en savoir plus sur la localisation des entrées sur un réseau

Depots

Spécifie un ou plusieurs dépôts pour la tournée de véhicules spécifiée. Un dépôt est un emplacement d'où part un véhicule au début de sa journée de travail et à laquelle il retourne à la fin de la journée. Les véhicules sont chargés (en cas de livraison) ou déchargés (en cas de collecte) aux dépôts. Dans certains cas, un dépôt peut aussi jouer le rôle de localisation de relais où un véhicule peut être déchargé ou rechargé avant de poursuivre les livraisons et les collectes. Un dépôt possède des heures d’ouverture et de fermeture, spécifiées par une fenêtre horaire stricte. Les véhicules ne peuvent pas arriver à un dépôt en dehors de cette fenêtre horaire.

The data type supports the following fields:

FieldDescriptionData type

Name

Nom du dépôt. Les champs StartDepotName et EndDepotName du jeu des itinéraires font référence aux noms que vous spécifiez ici. Le nom du dépôt est également référencé par le relais de tournée lorsque ce dernier est utilisé.

Les noms de dépôts peuvent être saisis indifféremment en majuscules ou en minuscules, mais ils doivent être uniques et non vides.

Text

Description

Informations descriptives concernant l’emplacement du dépôt. Ce champ peut contenir toute information textuelle, sans restriction en matière d'unicité.

Par exemple, pour noter la région dans laquelle se trouve un dépôt ou encore l’adresse et le numéro de téléphone du dépôt, vous pouvez saisir ces informations ici, plutôt que dans le champ Name.

Text

TimeWindowStart1

Heure de début de la première fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de début.

Les champs de fenêtres horaires (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2) peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure. Si un champ temporel, tel que TimeWindowStart1, a une valeur basée sur une heure uniquement (8 h 00, par exemple), la date est censée être la date par défaut définie pour l’analyse. L'utilisation de valeurs de date et d'heure (par exemple, 7/11/2010 8h00) vous permet de définir des fenêtres horaires qui couvrent plusieurs jours.

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

TimeWindowEnd1

Heure de fin de la première fenêtre pour la localisation de réseau. Ce champ peut contenir une valeur nulle, ce qui désigne l’absence d’heure de fin.

Date

TimeWindowStart2

Heure de début de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique l'absence de deuxième fenêtre horaire.

Si la première fenêtre horaire spécifiée par les champs TimeWindowStart1 et TimeWindowEnd1 est nulle, la deuxième doit l’être également.

Si les deux fenêtres horaires ne sont pas nulles, elles ne peuvent pas se chevaucher. En outre, la deuxième fenêtre horaire doit survenir après la première.

Date

TimeWindowEnd2

Heure de fin de la deuxième fenêtre horaire pour la localisation de réseau. Ce champ peut contenir une valeur Null.

Lorsque TimeWindowStart2 et TimeWindowEnd2 sont tous les deux nuls, il n’existe pas de deuxième fenêtre horaire.

Lorsque TimeWindowStart2 n’est pas nul, mais que TimeWindowEnd2 l’est, une deuxième fenêtre horaire possède une heure de début, mais aucune heure de fin. Cette situation est valide.

Date

CurbApproach

Spécifie la direction dans laquelle un véhicule peut atteindre et quitter le lieu du dépôt. Le champ peut prendre l’une des valeurs entières suivantes affichées dans les parenthèses (utilisez le code numérique, pas le nom de l’option placée entre parenthèses) :

  • 0 (Peu importe le côté) : le véhicule peut atteindre et quitter le lieu du dépôt dans les deux directions, donc le demi-tour est autorisé. Ce paramètre peut être sélectionné s’il est possible et pratique pour votre véhicule de revenir en arrière au niveau du dépôt. Cette décision peut dépendre de la largeur de la route et de la densité du trafic ou de la présence au dépôt d’un parking où les véhicules peuvent entrer et faire demi-tour.
  • 1 (Côté droit du véhicule) : le dépôt doit se trouver du côté droit du véhicule lorsque celui-ci s'en approche ou s'en éloigne. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la droite.
  • 2 (Côté gauche du véhicule) : lorsque le véhicule atteint et quitte le lieu du dépôt, le bord du trottoir doit être du côté gauche du véhicule. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la gauche.
  • 3 (Pas de demi-tour) : lorsque le véhicule s'approche du lieu du dépôt, le bord du trottoir peut être d'un côté quelconque du véhicule ; en revanche, le véhicule doit partir sans faire demi-tour.

L’attribut CurbApproach est conçu pour fonctionner avec les deux normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (comme au Royaume-Uni). Tout d'abord, imaginons un dépôt qui s'est produit du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder un dépôt du côté droit ou du côté gauche du véhicule. Par exemple, pour atteindre un dépôt sans laisser de voie de circulation entre le véhicule et le dépôt, choisissez 1 (côté droit du véhicule) en France et aux États-Unis et 2 (côté gauche du véhicule) au Royaume-Uni.

Long

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

En savoir plus sur le relèvement et la tolérance de relèvement

Double

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

En savoir plus sur le relèvement et la tolérance de relèvement

Double

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object.

Double

Network location fields

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

Ensemble, ces propriétés décrivent le point sur le réseau où se trouve l'objet.

Pour en savoir plus sur la localisation des entrées sur un réseau

Routes

Spécifie un ou plusieurs itinéraires décrivant les caractéristiques d’un véhicule et d’un chauffeur. Un itinéraire peut comporter des durées de desserte aux dépôts initiaux et finaux, une heure de début fixe ou souple, des coûts opérationnels basés sur le temps ou sur la distance, plusieurs capacités, différentes contraintes sur la journée de travail d’un chauffeur, etc.

Remarque :

Unlike other data types, such as Orders and Depots, this data type is a table and does not include any location information.

The data type supports the following fields:

FieldDescriptionData type

Name

Nom de l’itinéraire. Le nom doit être unique.

L’outil génère un nom unique au moment du calcul si la valeur de champ est nulle ; la saisie d’une valeur est facultative dans la plupart des cas. Toutefois, vous devez obligatoirement entrer un nom si l’analyse inclut des pauses, des relais de tournée, des zones de tournée ou des ordres qui sont préattribués à un itinéraire, car le nom de l’itinéraire est utilisé comme clé étrangère dans ces circonstances. Les noms d’itinéraire ne sont pas sensibles à la casse.

Text

Description

The descriptive information about the route. This can contain any textual information and does not need to be unique.

Text

StartDepotName

Nom du dépôt initial de l’itinéraire. Ce champ est une clé étrangère du champ Name dans la classe Depots.

Si la valeur de StartDepotName est nulle, l’itinéraire commence au premier ordre affecté. Omettre le dépôt initial est utile lorsque la localisation de départ du véhicule est inconnue ou sans rapport avec le problème de calcul d’itinéraire. Cependant, si la valeur de StartDepotName est nulle, EndDepotName ne peut pas l’être.

Les dépôts de départ virtuels ne sont pas autorisés si les ordres ou les dépôts se situent dans plusieurs fuseaux horaires.

Si des livraisons sont prévues le long de l’itinéraire et que la valeur de StartDepotName est nulle, la cargaison est supposée avoir été chargée sur le véhicule à un dépôt virtuel avant le début de l’itinéraire. Dans le cas d’un itinéraire sans passage à des relais, les ordres de livraison (ceux dont les valeurs DeliveryQuantities sont différentes de zéro dans Orders) sont chargés au dépôt initial ou au dépôt virtuel. Pour un itinéraire doté de passages à des relais, seuls les ordres de livraison avant le premier passage à un relais sont chargés au dépôt initial ou au dépôt virtuel.

Text

EndDepotName

Nom du dépôt final de l’itinéraire. Ce champ est une clé étrangère du champ Name dans la classe Depots.

Text

StartDepotServiceTime

Durée de desserte au dépôt initial. Cette valeur peut servir à modéliser le temps passé à charger le véhicule. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

The unit for this field value is specified by the timeUnits property of the analysis object.

Les durées de desserte aux dépôts finaux et initiaux sont des valeurs fixes (valeurs des champs StartDepotServiceTime et EndDepotServiceTime) et ne prennent pas en considération la charge réelle d’un itinéraire. Par exemple, le temps de chargement d'un véhicule au dépôt initial peut dépendre de la taille des ordres. Les durées de desserte aux dépôts peuvent être dotées de valeurs correspondant à une cargaison pleine ou une cargaison moyenne, ou vous pouvez effectuer une estimation de temps.

Double

EndDepotServiceTime

Durée de desserte au dépôt final. Cette valeur peut servir à modéliser le temps passé à décharger le véhicule. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

The unit for this field value is specified by the timeUnits property of the analysis object.

Les durées de desserte aux dépôts finaux et initiaux sont des valeurs fixes (valeurs des champs StartDepotServiceTime et EndDepotServiceTime) et ne prennent pas en considération la charge réelle d’un itinéraire. Par exemple, le temps de chargement d'un véhicule au dépôt initial peut dépendre de la taille des ordres. Les durées de desserte aux dépôts peuvent être dotées de valeurs correspondant à une cargaison pleine ou une cargaison moyenne, ou vous pouvez effectuer une estimation de temps.

Double

EarliestStartTime

Heure de début la plus tôt de l’itinéraire. Ce champ est utilisé par le solveur conjointement avec la fenêtre horaire du dépôt initial pour déterminer des heures de départ d'itinéraire faisables.

Ce champ ne peut pas contenir de valeur nulle et sa valeur horaire par défaut est 8 h 00. La valeur par défaut est interprétée comme 8 h 00 à la date par défaut établie pour l’analyse.

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

LatestStartTime

Heure de début la plus tard de l’itinéraire.

Ce champ ne peut pas contenir de valeur nulle et sa valeur horaire par défaut est 10:00 AM. La valeur par défaut est interprétée comme 10 h 00 à la date par défaut établie pour l’analyse.

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

ArriveDepartDelay

Ce champ enregistre le temps de trajet nécessaire pour accélérer le véhicule à des vitesses de déplacement normales, le décélérer à un arrêt et le retirer du réseau et l'y replacer (entrée et sortie d'un parking, par exemple). Si vous incluez une valeur ArriveDepartDelay, le solveur de tournées de véhicules est dissuadé d’envoyer de nombreux itinéraires pour traiter physiquement des ordres coïncidents.

Le coût de cette propriété est supporté entre des visites à des dépôts, des relais de tournée et des ordres non coïncidents. Par exemple, lorsqu'un itinéraire commence à un dépôt et visite le premier ordre, le retard d'arrivée/de départ total est ajouté au temps de trajet. Cela est également valable pour le déplacement du premier ordre au deuxième ordre. Si les deuxième et troisième ordres coïncident, la valeur de ArriveDepartDelay n’est pas ajoutée entre eux, car le véhicule n’a pas besoin de se déplacer. Si l'itinéraire mène à un relais de tournée, la valeur est de nouveau ajoutée au temps de trajet.

Même si un véhicule doit ralentir et s’arrêter pendant une pause et accélérer par la suite, le solveur de tournées de véhicules ne peut pas ajouter la valeur ArriveDepartDelay aux pauses. Cela signifie que si un itinéraire quitte un ordre, effectue une pause et continue jusqu'à l'ordre suivant, le retard d'arrivée/de départ est ajouté une seule fois, et non deux.

Prenons l’exemple de cinq ordres coïncidents dans un gratte-ciel, desservis par trois itinéraires différents. Trois retards d’arrivée/de départ sont alors concernés, car trois chauffeurs doivent trouver chacun une place de parking et entrer dans le même bâtiment. Si toutefois les ordres peuvent être desservis par un seul itinéraire au lieu de trois, un seul chauffeur doit se garer et pénétrer dans le bâtiment (un seul retard d’arrivée/de départ est engendré). Comme le solveur de tournées de véhicules essaie de réduire le coût, il tente de limiter les retards d’arrivée/de départ et choisit l’option à un seul itinéraire. (Plusieurs itinéraires peuvent être envoyés lorsque d’autres contraintes, comme des particularités, des fenêtres horaires ou des capacités, l’exigent.)

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

Capacities

Capacité maximale du véhicule. Vous pouvez spécifier une capacité de n’importe quelle dimension, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume.

Entrez les capacités sans préciser d’unités. Si, par exemple, le véhicule peut transporter 40 000 kilos au maximum, entrez 40000. Vous devez vous souvenir que la valeur est exprimée en kilos.

Si vous effectuez le suivi de plusieurs dimensions, séparez chaque valeur numérique par un espace. Si, par exemple, vous enregistrez le poids et le volume et que le véhicule peut transporter un poids maximal de 40 000 kilos et un volume maximal de 2 000 mètres cubes, saisissez la valeur Capacities sous la forme 40000 2000. Là encore, vous devez vous souvenir des unités utilisées. Vous devez également mémoriser l'ordre dans lequel vous saisissez les valeurs et leurs unités correspondantes (kilos suivis de mètres cube dans ce cas).

Il est important de mémoriser les unités et l’ordre dans lequel vous les saisissez pour deux raisons : primo, pour pouvoir réinterpréter les informations ultérieurement et secundo, pour saisir correctement les valeurs dans les champs DeliveryQuantities et PickupQuantities des ordres. Le solveur de tournées de véhicules traite simultanément les champs Capacities, DeliveryQuantities et PickupQuantities pour éviter toute surcharge des itinéraires. Les unités ne peuvent pas être saisies dans le champ et l’outil VRP ne peut pas faire de conversion des unités. Vous devez saisir les valeurs pour les trois champs à l’aide des mêmes unités et le même ordre d’unités pour garantir que les valeurs sont interprétés de manière appropriée. Si vous combinez des unités ou modifiez l’ordre dans l’un des trois champs, des résultats indésirables s’affichent sans message d’avertissement. Il est recommandé de prédéfinir des unités et l’ordre dans lequel les saisir pour pouvoir vous y référer lorsque vous entrez des valeurs dans ces trois champs.

Une chaîne vide ou une valeur Null représente l'infini. Les valeurs de capacité ne peuvent pas être négatives.

Si le champ Capacities contient un nombre insuffisant de valeurs par rapport aux champs DeliveryQuantities ou PickupQuantities de la classe des ordres, les valeurs restantes sont traitées comme étant infinies.

Le solveur de tournées de véhicules effectue un test booléen simple pour déterminer si les capacités sont dépassées. Si la valeur de capacité d’un itinéraire est supérieure ou égale à la quantité totale transportée, la cargaison est censée tenir dans le véhicule. Cela peut être inexact, selon la forme réelle de la cargaison et du véhicule. Par exemple, le solveur de tournées de véhicules autorise une sphère de 30 mètres cube dans un camion de 30 mètres cube qui mesure 2,40 mètres de large. Mais en réalité, comme la sphère mesure 3,85 mètres de diamètre, elle ne peut pas passer dans ce camion de 2,40 mètres de large.

Text

FixedCost

Coût monétaire fixe encouru seulement si l'itinéraire est utilisé dans une solution (autrement dit, si des ordres lui sont attribués). Ce champ peut contenir des valeurs Null, ce qui indique un coût fixe de zéro. Ce coût fait partie du coût de fonctionnement total de l'itinéraire.

Double

CostPerUnitTime

Coût monétaire encouru (par unité de temps de travail) pour la durée totale de l'itinéraire, y compris les temps de trajet, ainsi que le temps de service et le temps d'attente aux ordres, aux dépôts et les pauses. Ce champ ne peut pas contenir de valeur Null et sa valeur par défaut est 1.0.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

CostPerUnitDistance

Coût monétaire encouru (par unité de distance parcourue) pour la longueur de l'itinéraire (distance de trajet totale). Ce champ peut contenir des valeurs Null, ce qui indique un coût de zéro.

The unit for this field value is specified by the distanceUnits property of the analysis object.

Double

OvertimeStartTime

Durée du temps de travail standard, avant le calcul des heures supplémentaires. Ce champ peut contenir des valeurs Null, ce qui indique que les heures supplémentaires ne s'appliquent pas.

The unit for this field value is specified by the timeUnits property of the analysis object.

Si, par exemple, le chauffeur doit percevoir lorsque la durée totale de la tournée dépasse huit heures, la valeur OvertimeStartTime est alors 480 (8 heures * 60 minutes/heure), si les unités de temps sont en exprimées en minutes.

Double

CostPerUnitOvertime

Coût monétaire encouru par unité de temps d'heures supplémentaires. Ce champ peut contenir des valeurs nulles, ce qui indique que la valeur de CostPerUnitOvertime est la même que celle de CostPerUnitTime.

Double

MaxOrderCount

Nombre maximal d'ordres autorisé sur l'itinéraire. Ce champ ne peut pas contenir de valeur Null et sa valeur par défaut est 30.

Long

MaxTotalTime

Durée d'itinéraire maximale autorisée. La durée de l'itinéraire 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. Ce champ peut contenir des valeurs Null, ce qui indique qu'aucune contrainte n'est présente sur la durée de la tournée.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxTotalTravelTime

Temps de trajet maximal admissible pour l'itinéraire. Le temps de trajet inclut uniquement le temps passé au volant sur le réseau, à l’exclusion de la durée de desserte ou du temps d’attente.

Ce champ peut contenir des valeurs nulles, ce qui indique qu’aucune contrainte n’est présente sur le temps de trajet maximal autorisé. La valeur de ce champ ne peut pas être supérieure à celle du champ MaxTotalTime.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxTotalDistance

Distance de trajet maximale admissible pour l'itinéraire.

The unit for this field value is specified by the distanceUnits property of the analysis object.

Ce champ peut contenir des valeurs Null, ce qui indique qu'aucune contrainte n'est présente sur la distance de trajet maximale autorisée.

Double

SpecialtyNames

Chaîne séparée par des espaces contenant les noms des particularités prises en charge par l’itinéraire. Une valeur Null indique que l’itinéraire ne prend aucune particularité en charge.

Ce champ est une clé étrangère du champ SpecialtyNames dans Orders.

Pour décrire les particularités et leur fonctionnement, imaginons une société d’entretien des pelouses et d’élagage dont une partie de ses ordres nécessite l’usage d’un camion nacelle pour élaguer les grands arbres. L’entreprise saisit CamionNacelle dans le champ SpecialtyNames de ces ordres pour indiquer leur besoin spécifique. SpecialtyNames n’est pas renseigné pour les autres ordres. De la même manière, l’entreprise saisit également CamionNacelle dans le champ SpecialtyNames des itinéraires empruntés par des camions munis de flèches hydrauliques. Le champ n’est pas renseigné pour les autres itinéraires. Lors de l'analyse, le solveur de tournées de véhicules attribue des ordres sans besoin spécifique à n'importe quel itinéraire, mais il attribue les ordres nécessitant des camions nacelle uniquement aux itinéraires empruntés par ces derniers.

Text

AssignmentRule

Spécifie si l’itinéraire peut être utilisé ou non lors du calcul. Ce champ est contraint par un domaine de valeurs répertoriées ci-dessous (utilisez le code numérique et pas le nom entre parenthèses).

  • 1 (Inclure) : l'itinéraire est inclus dans l'analyse. Il s’agit de la valeur par défaut.
  • 2 (Exclure) : l'itinéraire est exclu de l'analyse.

Long

Breaks

Périodes de repos, ou pauses, pour les itinéraires d’une tournée de véhicules spécifiée. Une pause est précisément associée à un itinéraire et peut être prise une fois un ordre terminé, en cours de route vers un ordre ou avant de desservir un ordre. Elle possède une heure de début et une durée, pendant laquelle le chauffeur peut être rémunéré ou pas. Vous disposez de trois options pour définir le début d’une pause : en utilisant une fenêtre horaire, un temps de trajet maximal ou un temps de travail maximal.

Unlike other data types, such as Orders or Depots, this data type is a table and does not include any location information.

The data type supports the following fields:

FieldDescriptionData type

RouteName

Nom de l’itinéraire auquel l’interruption s’applique. Même si une pause est précisément affectée à un itinéraire, de nombreuses pauses peuvent être affectées à un même itinéraire.

Ce champ, qui est une clé étrangère du champ Name dans les itinéraires, ne peut pas contenir de valeur nulle.

Text

Precedence

Les valeurs de Precedence permettent de classer les pauses d'un itinéraire donné. Les pauses ayant une valeur de priorité de 1 interviennent avant celles dont la valeur est 2, et ainsi de suite.

Toutes les pauses doivent avoir une valeur de précédence, que ce soient des pauses en fonction d'une fenêtre horaire, d'un temps de trajet maximal ou d'un temps de travail maximal.

Long

ServiceTime

Durée de la pause. Ce champ ne peut pas contenir de valeurs nulles. La valeur par défaut est 60.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

TimeWindowStart

Heure de début de la fenêtre horaire de la pause. Une heure de début et une heure de fin doivent être spécifiées.

Si ce champ possède une valeur, les valeurs des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doivent être nulles. Et la valeur des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doit également être nulle pour toutes les autres pauses de la couche d’analyse.

Une erreur est renvoyée au moment du calcul si leurs fenêtres horaires d'un itinéraire qui possède plusieurs pauses se chevauchent.

Les champs de fenêtres horaires des pauses peuvent contenir soit une valeur d'heure seulement, soit une valeur de date et d'heure. Si un champ horaire, tel que TimeWindowStart spécifie une heure uniquement (0h00, par exemple), la date est censée être la date spécifiée par le paramètre default_date. L'utilisation de valeurs de date et d'heure (le 11/07/2010 à 0h00, par exemple) vous permet de spécifier des fenêtres horaires qui couvrent au moins deux jours. Cela s’avère utile lorsqu’une pause doit être prise avant et après minuit.

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

TimeWindowEnd

Heure de fin de la fenêtre horaire de la pause. Une heure de début et une heure de fin doivent être spécifiées.

Si ce champ possède une valeur, MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doivent être nuls. Et la valeur des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doit également être nulle pour toutes les autres pauses de la couche d’analyse.

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. To specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

MaxViolationTime

Ce champ indique la durée de violation maximale autorisée pour une pause en fonction d'une fenêtre horaire. Une fenêtre horaire fait l'objet d'une violation lorsque l'heure d'arrivée ne coïncide pas avec la plage horaire.

Une valeur égale à zéro indique que la fenêtre horaire ne peut pas faire l’objet d’une violation ; cela signifie que la fenêtre horaire est stricte. Une valeur différente de zéro précise le retard maximal autorisé. Par exemple, la pause peut commencer jusqu’à 30 minutes après la fin de sa fenêtre horaire, mais le retard est pénalisé conformément au paramètre Importance de la violation des fenêtres horaires.

Cette propriété peut être nulle. Une valeur nulle avec les valeurs TimeWindowStart et TimeWindowEnd indique que la durée de violation autorisée n’est pas limitée. Si MaxTravelTimeBetweenBreaks ou MaxCumulWorkTime possède une valeur, la valeur de MaxViolationTime doit être nulle.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxTravelTimeBetweenBreaks

Temps de trajet maximal pouvant être cumulé avant que la pause ne soit prise. Le temps de trajet est cumulé à partir de la fin de la pause précédente ou, si aucune pause n'a encore été prise, à partir du début de l'itinéraire.

S’il s’agit de la dernière pause de l’itinéraire, MaxTravelTimeBetweenBreaks indique également le temps de trajet maximal pouvant être cumulé de la dernière pause jusqu’au dépôt final.

Ce champ limite la durée pendant laquelle une personne peut conduire avant de devoir prendre une pause. Si, par exemple, l’unité temporelle de l’analyse est définie sur les minutes et que le champ MaxTravelTimeBetweenBreaks a pour valeur 120, le chauffeur pourra prendre une pause au bout de deux heures de conduite. Pour offrir une deuxième pause au bout de deux autres heures de conduite, la propriété MaxTravelTimeBetweenBreaks de cette deuxième pause doit avoir pour valeur 120.

Si ce champ possède une valeur, la valeur de TimeWindowStart, TimeWindowEnd, MaxViolationTime et MaxCumulWorkTime doit être nulle pour pouvoir calculer correctement une analyse.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxCumulWorkTime

Temps de travail maximal pouvant être cumulé avant que la pause ne soit prise. Le temps de travail est toujours cumulé à partir du début de l'itinéraire.

Le temps de travail correspond à la somme du temps de trajet et de la durée de desserte aux ordres, dépôts et pendant les pauses. Notez toutefois que le temps d'attente en est exclu, à savoir le temps d’attente d’un ordre ou à un dépôt d’un itinéraire (ou d’un chauffeur) avant le début d’une fenêtre horaire.

Ce champ limite le temps de travail d’une personne avant une pause. Si, par exemple, l’unité temporelle de l’analyse est définie sur minutes, MaxCumulWorkTime a pour valeur 120 et ServiceTime 15, le chauffeur pourra prendre une pause de 15 minutes au bout de deux heures de travail.

En reprenant le dernier exemple, une deuxième pause est nécessaire au bout de trois autres heures de travail. Pour spécifier cette pause, vous affecteriez la valeur 315 (cinq heures et 15 minutes) à la propriété MaxCumulWorkTime de la deuxième pause. Ce nombre comprend les valeurs de MaxCumulWorkTime et ServiceTime de la pause précédente, ainsi que les trois heures de temps de travail supplémentaires avant d’accorder la deuxième pause. Pour éviter de prendre prématurément des pauses en fonction d'un temps de travail maximal, n'oubliez pas qu'elles cumulent le temps de travail à partir du début de l'itinéraire et que ce temps de travail comprend le temps de service aux précédents dépôts et ordres et pendant les précédentes pauses.

Si ce champ possède une valeur, la valeur de TimeWindowStart, TimeWindowEnd, MaxViolationTime et MaxTravelTimeBetweenBreaks doit être nulle pour pouvoir calculer correctement une analyse.

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

IsPaid

Valeur booléenne indiquant si la pause est payée ou non. Définir ce champ sur 1 indique que le temps consacré à la pause est inclus dans le calcul de coût d’itinéraire et la détermination des heures supplémentaires. La valeur 0 indique le contraire. La valeur par défaut est 1.

Long

Sequence

Indique la séquence de la pause sur son itinéraire. Ce champ peut contenir des valeurs nulles. Une valeur nulle permet au solveur d’attribuer la séquence de pauses. Si des valeurs de séquence sont spécifiées, elles doivent être positives et uniques pour chaque itinéraire (partagées entre les visites aux dépôts de relais, les ordres et les pauses), mais elles n’ont pas besoin de commencer à 1 ni d’être contiguës.

Long

OrderPairs

Apparie les ordres de collecte et de livraison pour qu’ils soient traités par la même tournée. La spécification de couples d’ordres empêche l’analyse d’attribuer un seul des ordres à un itinéraire : les deux ordres sont attribués au même itinéraire ou aucun ordre n’est attribué.

Il est parfois nécessaire que l’enlèvement et la livraison soient appariés pour les ordres. Par exemple, un coursier peut demander à l’un de ses employés de collecter un colis prioritaire d’un ordre pour le livrer à un autre sans retourner au dépôt, ou au centre de tri, afin de minimiser le temps de livraison. Il est possible d’utiliser des paires d’ordres pour attribuer ces ordres associés à la même tournée avec la séquence adéquate. Vous pouvez également attribuer des restrictions pour limiter le temps d’immobilisation du paquet dans le véhicule. Par exemple, un prélèvement sanguin doit être transporté du cabinet médical au laboratoire d’analyses en moins de deux heures.

Certaines situations peuvent nécessiter deux paires d’ordres. Par exemple, vous souhaitez transporter une personne âgée de son domicile au cabinet de son médecin, puis la ramener chez elle. Le trajet de son domicile au cabinet correspond à une paire d’ordres avec une heure d’arrivée souhaitée chez le médecin. Le trajet de retour, quant à lui, correspond à une autre paire avec une heure de prise en charge souhaitée.

The data type supports the following fields:

FieldDescriptionData type

FirstOrderName

Nom du premier ordre de la paire. Ce champ est une clé étrangère du champ Name dans les ordres.

Text

SecondOrderName

Nom du second ordre de la paire. Ce champ est une clé étrangère du champ Name dans les ordres.

Le premier ordre du couple doit être un ordre d’enlèvement. Autrement dit, la valeur de son champ DeliveryQuantities est nulle. Le second ordre du couple doit être un ordre de livraison, la valeur de son champ PickupQuantities est nulle. La quantité enlevée au premier ordre doit correspondre à la quantité livrée au second ordre. Dans les cas où aucune capacité n'est utilisée, les deux ordres peuvent avoir des quantités égales à zéro.

Les quantités des ordres ne sont pas chargées ou déchargées à des dépôts.

Text

MaxTransitTime

Temps de transit maximal pour la paire. Le temps de transit correspond au laps de temps s'écoulant entre l'heure de départ du premier ordre et l'heure d'arrivée au second. Cette contrainte limite le temps passé dans le véhicule, ou temps de trajet, entre les deux ordres. Lorsqu'un véhicule transporte des personnes ou des denrées périssables, le temps de trajet est généralement plus court que celui d'un véhicule transportant des paquets ou des denrées non périssables. Ce champ peut contenir des valeurs nulles, ce qui indique qu'aucune contrainte n'est présente sur le temps de trajet.

The unit for this field value is specified by the timeUnits property of the analysis object.

Le temps de transit excessif (mesuré en fonction du temps de trajet direct entre des paires d’ordres) peut être suivi et pondéré par le solveur. Vous pouvez donc faire en sorte que le solveur de tournées de véhicules adopte l’une des approches suivantes :

  • réduire le temps de transit excessif, sans tenir compte de l'augmentation du coût de trajet de la flotte,
  • trouver une solution équilibrée entre la durée totale de la violation et le coût de trajet ;
  • ignorer le temps de transit excessif et réduire à la place le coût de trajet de la flotte.

By assigning an importance level using the excessTransitFactor property of the analysis object, you are essentially choosing one of these three options. Regardless of the importance level, the solver will return an error if the MaxTransitTime value is surpassed.

Double

RouteRenewals

Dépôts intermédiaires que les itinéraires peuvent visiter pour recharger ou décharger la cargaison qu’ils livrent ou collectent. Un relais de tournée relie spécifiquement un itinéraire à un dépôt. La relation indique que l'itinéraire peut passer à un relais (pour recharger ou décharger en cours de route) au dépôt associé.

Les relais de tournée peuvent permettre de modéliser des scénarios dans lesquels un véhicule enlève une cargaison complète de livraisons au dépôt initial, dessert les ordres, retourne au dépôt pour renouveler sa charge de livraisons et continue à desservir d’autres ordres. Par exemple, dans le cas d’une livraison de gaz propane, le véhicule peut effectuer plusieurs livraisons jusqu’à ce que sa cuve soit presque vide, visiter un point de ravitaillement, puis poursuivre ses livraisons.

Gardez les points suivants à l’esprit lorsque vous utilisez des relais de tournée :

  • Le point de rechargement/déchargement, ou la localisation de relais, peut être différent du dépôt initial ou final.
  • Chaque itinéraire peut avoir une ou plusieurs localisations de relais.
  • Une localisation de relais peut être utilisée plusieurs fois par un même itinéraire.
  • Lorsque plusieurs dépôts de relais sont disponibles pour un itinéraire, le plus proche est sélectionné par le solveur.

The data type supports the following fields:

FieldDescriptionData type

RouteName

Nom de l’itinéraire auquel ce relais de tournée s’applique. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les itinéraires.

Text

DepotName

Nom du dépôt où ce relais a lieu. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les dépôts.

Text

ServiceTime

Durée de desserte du relais. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

The unit for this field value is specified by the timeUnits property of the analysis object.

La durée de chargement d'un véhicule à un dépôt de relais peut dépendre de la taille du véhicule et de son degré de chargement. La durée de desserte d'un relais de tournée est toutefois une valeur fixe et elle ne prend pas en considération la charge réelle. La durée de desserte d’un relais doit être dotée d’une valeur correspondant à une cargaison pleine, une cargaison moyenne ou une autre estimation temporelle de votre choix.

Double

Sequences

A space-separated string of sequence values of visits to the renewal depot. This field can contain a null value and is used to preassign visits to the renewal depot.

Text

RouteZones

Délimite les territoires de travail pour des itinéraires donnés. Une zone de tournée est une entité surfacique utilisée pour contraindre des itinéraires à traiter uniquement les ordres se trouvant dans la zone spécifiée ou s’en approchant. Les exemples suivants sont des cas dans lesquels les zones de tournée peuvent être utiles :

  • Certains de vos employés n’ont pas les permis nécessaires pour travailler dans certaines régions ou communautés. Vous pouvez créer une zone de tournée stricte pour qu’ils ne visitent des ordres que dans des zones où ils remplissent les conditions requises.
  • L’un de vos véhicules tombe souvent en panne et vous souhaitez réduire le temps de réponse en faisant en sorte qu’il ne visite que les ordres proches de votre garage. Vous pouvez créer une zone de tournée souple ou stricte pour faire en sorte que le véhicule reste proche.

The data type supports the following fields:

FieldDescriptionData type

RouteName

Nom de l'itinéraire auquel cette zone s'applique. Une zone de tournée peut avoir un itinéraire associé au maximum. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les itinéraires.

Text

IsHardZone

A Boolean value indicating a hard or soft route zone. A field value of 1 indicates that the route zone is hard; that is, an order that falls outside the route zone polygon can't be assigned to the route. The default value is 1. A field value of 0 indicates that such orders can still be assigned, but the cost of servicing the order is weighted by a function that is based on the Euclidean distance from the route zone. Basically, this means that as the straight-line distance from the soft zone to the order increases, the likelihood of the order being assigned to the route decreases.

Long

PointBarriers

Utilisez ce paramètre pour spécifier un ou plusieurs points servant de restrictions temporaires ou représentant un délai ou une distance supplémentaire qui peut être nécessaire pour se déplacer dans les rues sous-jacentes. Par exemple, une interruption ponctuelle peut servir à représenter un arbre tombé dans une rue ou le temps d’attente à un passage à niveau.

The data type supports the following fields:

FieldDescriptionData type

Name

Nom de l'interruption.

Text

BarrierType

Spécifie si l’interruption ponctuelle restreint complètement la circulation ou ajoute un délai ou une distance lorsqu’elle est traversée. La valeur de cet attribut peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Restriction) : interdit la circulation à travers l'interruption. L'interruption est désignée par le terme d'interruption ponctuelle de restriction, car elle agit comme une restriction.

  • 2 (Added Cost (Coût ajouté)) : lorsque l’interruption est traversée, le temps de déplacement ou la distance augmente de la valeur spécifiée dans le champ Additional_Time, Additional_Distance ou AdditionalCost. Ce type d’interruption est désigné sous le terme d’interruption ponctuelle à coût ajouté

Long

Additional_Time

The added travel time when the barrier is traversed.

This field value must be greater than or equal to zero, and the values are interpreted to be in the units specified by the timeUnits property.

Double

Additional_Distance

The added distance when the barrier is traversed.

This field value must be greater than or equal to zero, and the values are interpreted to be in the units specified by the distanceUnits property.

Double

AdditionalCost

The added cost when the barrier is traversed.

This field value must be greater than or equal to zero, and the values are interpreted to be in unknown units.

Double

FullEdge

Spécifie la façon dont les interruptions ponctuelles de restriction sont appliquées aux tronçons au cours de l’analyse. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (False) : autorise la circulation sur le tronçon jusqu’à l’interruption mais pas le franchissement de cette dernière. Il s’agit de la valeur par défaut.
  • 1 (True) : limite la circulation sur l’ensemble du tronçon associé.

Long

CurbApproach

Spécifie le sens de circulation affecté par l’interruption. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Peu importe le côté) : l’interruption affecte la circulation sur le tronçon dans les deux sens.
  • 1 (Côté droit du véhicule) : seuls sont affectés les véhicules pour lesquels l’interruption est située sur leur droite. Les véhicules qui parcourent le même tronçon mais pour lesquels l'interruption est située sur le côté gauche ne sont pas concernés par l'interruption.
  • 2 (Côté gauche du véhicule) : seuls sont affectés les véhicules pour lesquels l’interruption est située sur leur gauche. Les véhicules qui parcourent le même tronçon mais pour lesquels l'interruption est située sur le côté droit ne sont pas concernés par l'interruption.

Étant donné que les jonctions sont des points et n’ont pas de côté, les interruptions situées sur des jonctions affectent tous les véhicules quelle que soit l’approche du trottoir.

L’attribut CurbApproach fonctionne avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons une ressource qui se trouve du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder la ressource du côté droit ou du côté gauche du véhicule. Par exemple, pour atteindre une ressource sans qu’il y ait de voie de circulation entre le véhicule et la ressource, choisissez 1 (côté droit du véhicule) en France et aux États-Unis, mais 2 (côté gauche du véhicule) au Royaume-Uni.

Long

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

En savoir plus sur le relèvement et la tolérance de relèvement

Double

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

En savoir plus sur le relèvement et la tolérance de relèvement

Double

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object.

Double

Network location fields

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

Ensemble, ces propriétés décrivent le point sur le réseau où se trouve l'objet.

Pour en savoir plus sur la localisation des entrées sur un réseau

LineBarriers

Utilisez ce paramètre pour spécifier une ou plusieurs lignes interdisant la circulation partout où les lignes intersectent les rues. Par exemple, un défilé ou une manifestation qui bloque la circulation sur plusieurs segments de rue peut être modélisé avec une interruption linéaire. Une interruption linéaire peut également délimiter rapidement un périmètre autour de plusieurs routes et filtrer ainsi les itinéraires possibles en évitant les parties indésirables du réseau de transport.

The data type supports the following fields:

FieldDescriptionData type

Name

Nom de l'interruption.

Text

BarrierType

Spécifie si l’interruption restreint complètement la circulation ou proportionne le coût de déplacement (tel que le temps ou la distance) lorsqu’elle est franchie. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Restriction) : interdit la circulation là où l’interruption intersecte le réseau de transport. L’interruption est désignée par le terme d’interruption linéaire de restriction.

  • 1 (Scaled Cost (Coût proportionné)) : adapte le coût (par exemple, temps ou distance) nécessaire pour se déplacer dans les rues sous-jacentes selon un facteur spécifié avec le champ ScaledTimeFactor ou ScaledDistanceFactor. Si les rues sont partiellement couvertes par l'interruption, le temps de trajet ou la distance est réparti et proportionné. Par exemple, un facteur 0,25 signifie que le déplacement dans les rues sous-jacentes est censé être quatre fois plus rapide que d’habitude. Un facteur de 3,0 signifie au contraire qu’il prendra trois fois plus de temps que d’habitude. Ce type d’interruption est désigné sous le terme d’interruption linéaire à coût proportionné. Il peut être utilisé pour modéliser les ralentissements liés à la condamnation de couloirs de circulation lors de travaux, par exemple.

Long

ScaledTimeFactor

Il s'agit du facteur de multiplication du temps de trajet des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Double

ScaledDistanceFactor

Il s'agit du facteur de multiplication de la distance des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Double

ScaledCostFactor

Il s’agit du facteur de multiplication du coût des rues intersectées par l’interruption. La valeur du champ doit être supérieure à zéro.

Double

Locations

Les informations de ce champ définissent les jonctions et les tronçons du réseau couverts par la ligne ou le polygone ainsi que la portion couverte de chaque tronçon. Vous ne pouvez pas lire ou mettre directement à jour les informations contenues dans ce champ, mais Network Analyst les interprète lors de la résolution d’une analyse.

Pour en savoir plus sur la localisation des entrées sur un réseau

BLOB

PolygonBarriers

Utilisez ce paramètre pour spécifier les polygones qui restreignent entièrement la circulation ou adaptez proportionnellement le temps ou la distance nécessaire pour se déplacer dans les rues intersectées par les polygones.

The data type supports the following fields:

FieldDescriptionData type

Name

Nom de l'interruption.

Text

BarrierType

Spécifie si l’interruption restreint complètement la circulation ou proportionne le coût de déplacement (tel que le temps ou la distance) lorsqu’elle est franchie. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Restriction) : interdit la circulation à travers toute partie de l'interruption. L'interruption est désignée par le terme d'interruption polygonale de restriction, car elle empêche les déplacements dans les rues intersectées par l'interruption. Ce type d'interruption sert notamment à modéliser les zones inondées de la rue où la circulation est impossible.

  • 1 (Scaled Cost (Coût proportionné)) : adapte le coût (par exemple, temps ou distance) nécessaire pour se déplacer dans les rues sous-jacentes selon un facteur spécifié avec le champ ScaledTimeFactor ou ScaledDistanceFactor. Si les rues sont partiellement couvertes par l'interruption, le temps de trajet ou la distance est réparti et proportionné. Par exemple, un facteur 0,25 signifie que le déplacement dans les rues sous-jacentes est censé être quatre fois plus rapide que d’habitude. Un facteur de 3,0 signifie au contraire qu’il prendra trois fois plus de temps que d’habitude. Ce type d'interruption est désigné sous le terme d'interruption polygonale à coût proportionné. Il permet de modéliser des tempêtes qui réduisent la vitesse des déplacements dans des régions spécifiques, par exemple.

Long

ScaledTimeFactor

Il s'agit du facteur de multiplication du temps de trajet des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Double

ScaledDistanceFactor

Il s'agit du facteur de multiplication de la distance des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Double

ScaledCostFactor

Il s’agit du facteur de multiplication du coût des rues intersectées par l’interruption. La valeur du champ doit être supérieure à zéro.

Double

Locations

Les informations de ce champ définissent les jonctions et les tronçons du réseau couverts par la ligne ou le polygone ainsi que la portion couverte de chaque tronçon. Vous ne pouvez pas lire ou mettre directement à jour les informations contenues dans ce champ, mais Network Analyst les interprète lors de la résolution d’une analyse.

Pour en savoir plus sur la localisation des entrées sur un réseau

BLOB