Fenêtres horaires

Une fenêtre horaire correspond à la période entre une heure de début et une heure de fin, au cours de laquelle une localisation réseau, telle qu'un arrêt dans une analyse des itinéraires, est visitée par un itinéraire. Les fenêtres horaires sont fréquemment utilisées pour modéliser les heures des rendez-vous ou des livraisons.

Remarque :
Une fenêtre horaire décrit l'heure à laquelle un véhicule peut arriver à une localisation ; elle ne décrit pas la période au cours de laquelle toutes les activités doivent être terminées à cette localisation.

Les fenêtres horaires peuvent être configurées pour une date spécifique, un jour de la semaine générique ou la date du jour.

En savoir plus sur les dates et heures dans une analyse de réseau

Deux types d’analyse de réseau comprennent des fenêtres horaires : analyse d'itinéraire et optimisation des tournées de véhicules.

Fenêtres horaires dans une analyse d'itinéraires

Le solveur d’itinéraire tente de rechercher l’itinéraire de moindre coût à travers une série d’arrêts tout en respectant les restrictions sélectionnées sur le réseau, ainsi que toutes les fenêtres horaires. Si les infractions de fenêtres horaires sont inévitables, le calculateur essaie de réduire l'infraction horaire totale.

Les fenêtres horaires d'une analyse d'itinéraire sont définies à l'aide de champs dans la classe Stops en entrée :

Classe d'analyse de réseauChamp de fenêtre horaire

Stops

TimeWindowStart—Début de la fenêtre horaire pendant laquelle l'arrêt peut être visité.

TimeWindowEnd—Fin de la fenêtre horaire pendant laquelle l'arrêt peut être visité.

Les fenêtres horaires sont utilisées automatiquement dans l'analyse si l’un des champs des fenêtres horaires est renseigné.

L'heure spécifiée pour chaque fenêtre horaire peut être interprétée à l'aide du fuseau horaire local de chaque localisation en entrée ou en temps universel coordonné (UTC). Si vous utilisez une couche d'analyse d'itinéraires, le fuseau horaire des champs de fenêtre horaire peut être spécifié à l'aide du paramètre Time Zone for Time Fields (Fuseau horaire des champs horaires) de la boîte de dialogue de l'outil de géotraitement Make Route Analysis Layer (Créer une couche d’analyse d’itinéraire) ou de la liste déroulante Reference Time Zone (Fuseau horaire de référence) sur le ruban Route Layer (Couche d’itinéraires). Si vous utilisez un objet de solveur Route dans le module Python arcpy.nax, utilisez la propriété timeZoneForTimeWindows.

Si les fenêtres horaires sont utilisées, il n'est pas nécessaire de spécifier une heure du jour d'analyse car la fenêtre horaire du premier arrêt est utilisée pour déterminer l'heure de début de l'itinéraire. Toutefois, si vous spécifiez une heure du jour d'analyse qui représente, par exemple, le début du quart d'un chauffeur, cette dernière est prise en compte dans les heures d'arrivée et de départ de tous les arrêts. Si l'itinéraire commence avant la fenêtre horaire du premier arrêt, un délai d'attente est ajouté au premier arrêt. Si l'itinéraire commence une fois que la fenêtre horaire d'un arrêt est passée, une pénalité de temps d'infraction peut être supportée. La date de la fenêtre horaire doit correspondre à la date spécifiée pour l’heure du jour de l'analyse d’itinéraires.

Tout délai d'attente ou temps d'infraction supporté par l'itinéraire est inclus dans la sortie. Vous trouverez le total du délai d'attente et du temps d'infraction de chaque itinéraire dans la classe Routes en sortie, dans les champs préfixés de TotalWait_ et TotalViolation_, respectivement. Vous trouverez le délai d'attente et le temps d'infraction supportés à chaque arrêt le long d'un itinéraire dans la classe Stops en sortie, dans les champs préfixés de Wait_ et Violation_, respectivement. Les champs de la classe Stops en sortie préfixés de CumulWait_ et CumulViolation_ représentent le cumul du délai d'attente et du temps d'infraction jusqu'à ce point le long de l'itinéraire.

Fenêtres horaires dans une optimisation des tournées de véhicules

Le solveur d'optimisation des tournées de véhicules tente de rechercher l’itinéraire de moindre coût vers les ordres de service, en effectuant les visites de dépôt requises et en prenant les pauses nécessaires, tout en respectant les restrictions sélectionnées sur le réseau, ainsi que toutes les fenêtres horaires. Si les infractions de fenêtres horaires sont inévitables, le calculateur essaie de réduire l'infraction horaire totale.

Dans une optimisation des tournées de véhicules, les fenêtres horaires peuvent être définies pour les classes Orders, Depots et Breaks à l'aide des champs suivants :

Classe d'analyse de réseauChamp de fenêtre horaire

Orders

TimeWindowStart—Début de la première fenêtre horaire pendant laquelle l'ordre peut être visité.

TimeWindowEnd—Fin de la première fenêtre horaire pendant laquelle l'ordre peut être visité.

TimeWindowStart2—Début de la deuxième fenêtre horaire pendant laquelle l'ordre peut être visité.

TimeWindowEnd2—Fin de la deuxième fenêtre horaire pendant laquelle l'ordre peut être visité.

Depots

TimeWindowStart—Début de la première fenêtre horaire pendant laquelle le dépôt peut être visité.

TimeWindowEnd—Fin de la première fenêtre horaire pendant laquelle le dépôt peut être visité.

TimeWindowStart2—Début de la deuxième fenêtre horaire pendant laquelle le dépôt peut être visité.

TimeWindowEnd2—Fin de la deuxième fenêtre horaire pendant laquelle le dépôt peut être visité.

Breaks

TimeWindowStart—Début de la fenêtre horaire pendant laquelle la pause peut avoir lieu.

TimeWindowEnd—Fin de la fenêtre horaire pendant laquelle la pause peut avoir lieu.

Héritage :

Si vous utilisez un objet de solveur VehicleRoutingProblem avec la version de structure Un dans le module Python arcpy.nax, la première fenêtre horaire dans les classes Orders et Depots est définie à l'aide des champs intitulés TimeWindowStart1 et TimeWindowEnd1 et non des champs TimeWindowStart et TimeWindowEnd.

La classe Routes en entrée contient également des champs de fenêtres horaires permettant de spécifier la période au cours de laquelle un itinéraire peut commencer son trajet :

Classe d'analyse de réseauChamp de fenêtre horaire

Routes

EarliestStartTime—Début de la fenêtre horaire pendant laquelle l'itinéraire peut commencer son trajet.

LatestStartTime—Fin de la fenêtre horaire pendant laquelle l'itinéraire peut commencer son trajet.

Les fenêtres horaires sont utilisées automatiquement dans l'analyse si les champs des fenêtres horaires sont renseignés. La date de la fenêtre horaire doit correspondre à la date par défaut configurée pour l'analyse.

L'heure spécifiée pour chaque fenêtre temporelle peut être interprétée à l'aide du fuseau horaire local de chaque localisation en entrée ou en temps universel coordonné (UTC). Si vous utilisez une couche d'analyse Vehicle Routing Problem (Optimisation des tournées de véhicules), le fuseau horaire des champs de fenêtre horaire peut être spécifié à l'aide du paramètre Time Zone for Time Fields (Fuseau horaire des champs horaires) de la boîte de dialogue de l’outil de géotraitement Make Vehicle Routing Problem Analysis Layer (Créer une couche d’analyse de tournée de véhicules) ou de la liste déroulante Reference Time Zone (Fuseau horaire de référence) sur le ruban VRP Layer (Couche VRP). Si vous utilisez un objet de solveur VehicleRoutingProblem dans le module Python arcpy.nax, utilisez la propriété timeZoneForTimeWindows.

Tout délai d'attente ou temps d'infraction supporté par l'itinéraire est inclus dans la sortie. Vous trouverez le total du délai d'attente et du temps d'infraction de chaque itinéraire dans la classe Routes en sortie, dans les champs TotalWaitTime et TotalViolationTime, respectivement. Vous trouverez le délai d'attente et le temps d'infraction supportés à chaque ordre, pause ou dépôt le long d'un itinéraire dans les champs WaitTime et ViolationTime, respectivement. Les champs CumulWaitTime et CumulViolationTime d'un ordre, d'un dépôt ou d'une pause représentent le cumul du délai d'attente et du temps d'infraction, respectivement, jusqu'à ce point le long de l'itinéraire.

Vous pouvez définir les champs MaxViolationTime et MaxViolationTime2 dans les ordres en sortie et le champ MaxViolationTime dans les pauses en entrée pour contrôler le temps d'infraction acceptable pour votre analyse. Pour modéliser les fenêtres horaires sous forme de contrainte stricte, où les violations de fenêtre horaire ne sont pas autorisées, définissez les champs MaxViolationTime et MaxViolationTime2 correspondants sur zéro.

Héritage :

Si vous utilisez un objet de solveur VehicleRoutingProblem avec la version de structure Un dans le module Python arcpy.nax, le champ MaxViolationTime de la classe Orders s'intitule MaxViolationTime1.

Exemple de fenêtre horaire

L'exemple ci-après illustre les fenêtres horaires utilisées avec une analyse d’itinéraires permettant de rechercher l'itinéraire optimal pour visiter trois arrêts : a, b et c. La fenêtre horaire de chaque arrêt est fournie par ses champs TimeWindowStart et TimeWindowEnd.

Exemple de trois arrêts avec informations sur les fenêtres horaires

L’itinéraire peut commencer au point a à tout moment entre 8h00 et 9h00. Le point b ne doit toutefois pas être atteint avant 9h15. Comme indiqué ci-dessous, l’itinéraire atteint le point b à 9h05'08''.

Heures de départ et d’arrivée

Le point b pouvant uniquement être visité entre 9h15 et 9h30, l’itinéraire effectue une pause de six minutes et 36 secondes au point b, puis se poursuit à 9h15. Ce temps d’attente est stocké dans le champ Wait_TravelTime de l’arrêt b sous la forme 6,6 minutes, puis ajouté au temps total de l’itinéraire. Le champ Cumul_TraveTime pour un arrêt stocke le temps total nécessaire pour l’atteindre. Le temps de déplacement cumulé au point b est de 15 minutes (huit minutes et 24 secondes de trajet et six minutes et 36 secondes d’attente pour tenir compte de la fenêtre horaire de l’arrêt b).

Temps d’attente

L’itinéraire part de l’arrêt b à 9h15 et atteint l'arrêt c à 9h35'34''. Toutefois, la fenêtre horaire de l'arrêt c se situe entre 9h15 et 9h30. L'itinéraire ne pouvant pas respecter la fenêtre horaire de l'arrêt c, un temps d'infraction de cinq minutes et 34 secondes est supporté et stocké dans le champ Violation_TravelTime sous la forme 5,58 minutes.

Temps d’infraction