Una ventana de tiempo es el período entre una hora de inicio y una hora de finalización en el que una ruta debería visitar una ubicación de red, por ejemplo una parada en un análisis de ruta.
Dos capas de análisis de red incorporan ventanas de tiempo: las capas de análisis ruta y problema de generación de rutas para vehículos. Las siguientes dos tablas enumeran las clases de análisis de red para las que puede establecer ventanas de tiempo.
Campos de las ventanas de tiempo en capas de análisis de ruta
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Paradas |
TimeWindowStart |
TimeWindowEnd |
Nota:
Se utilizan ventanas de tiempo cuando cualquiera de los campos de ventana de tiempo (TimeWindowStart y TimeWindowEnd) de la capa Paradas están rellenos. La zona horaria de los campos de ventana de tiempo se puede especificar al crear una nueva capa de análisis de Ruta, utilizando el parámetro Zona horaria para campos de tiempo en el cuadro de diálogo de la herramienta de geoprocesamiento Crear capa de análisis de ruta. También puede especificar la zona horaria para los campos de la ventana de tiempo usando la lista desplegable Zona horaria de referencia de la cinta Ruta. Para actualizar la zona horaria de los campos de la ventana de tiempo en una capa existente, use la propiedad timeZoneUsageForTimeFields de la clase RouteSolverProperties de Python.
Campos de ventana de tiempo en capas de análisis del problema de generación de rutas para vehículos
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Órdenes |
TimeWindowStart |
TimeWindowEnd | |
TimeWindowStart2 | |
TimeWindowEnd2 | |
Depósitos | TimeWindowStart |
TimeWindowEnd | |
TimeWindowStart2 | |
TimeWindowEnd2 | |
Rupturas | TimeWindowStart |
TimeWindowEnd |
Las ventanas de tiempo están siempre disponibles, de modo que no es necesario que active ninguna propiedad en la capa de análisis del problema de generación de rutas para vehículos para habilitarlas. Las clases de Órdenes y Depósitos le permiten establecer dos ventanas de tiempo.
Nota:
Se utilizan ventanas de tiempo cuando cualquiera de los campos de ventana de tiempo (TimeWindowStart y TimeWindowEnd) de la capa de Órdenes y Depósitos están rellenos. La zona horaria de los campos de ventana de tiempo se puede especificar al crear una nueva capa de análisis de problema de generación de rutas para vehículos, utilizando el parámetro Zona horaria para campos de tiempo en el cuadro de diálogo de la herramienta de geoprocesamiento Crear capa de análisis de problema de generación de rutas para vehículos. También puede especificar la zona horaria para los campos de la ventana de tiempo utilizando la lista desplegable Zona horaria de referencia de la cinta VRP. Para actualizar la zona horaria de los campos de ventana de tiempo en una capa existente, use la propiedad timeZoneUsageForTimeFields de la clase VehicleRoutingProblemSolverProperties de Python.
Los objetos de ruta en el problema de generación de rutas para vehículos también tienen campos de ventana de tiempo: EarliestStartTime y LatestStartTime. Estos campos especifican el período en el que una ruta puede comenzar su viaje.
Utilizar fechas en las ventanas de tiempo
A fin de que una capa de análisis de ruta se resuelva para "Hoy", los campos de la ventana de tiempo y la Hora del día deben establecerse en el valor Hoy—12/30/1899. De igual forma, para resolver para "Hoy" una capa de análisis de problema de generación de rutas para vehículos para una capa de análisis de problema de generación de rutas para vehículos, la Fecha predeterminada debe establecerse en el valor Hoy—12/30/1899.
Si prefiere resolver para un día de la semana, los campos de la ventana de tiempo siguen utilizando el valor "Hoy", pero la Hora del día para una capa de análisis de ruta y la Fecha predeterminada para una capa de análisis de problema de generación de rutas para vehículos deben especificar la fecha correspondiente para el día de la semana.
En lugar de usar una fecha determinada, también se puede especificar un día de la semana utilizando las siguientes fechas:
- Hoy, 30/12/1899
- Domingo, 31/12/1899
- Lunes, 1/1/1900
- Martes, 2/1/1900
- Miércoles, 3/1/1900
- Jueves, 4/1/1900
- Viernes, 5/1/1900
- Sábado, 6/1/1900
La fecha de la ventana de tiempo coincide con la fecha especificada para la hora del día (para un análisis de Ruta) o la fecha predeterminada (para un análisis de la capa de problemas de generación de rutas para vehículos).
Ejemplo de una ventana de tiempo
Para comprender mejor las ventanas de tiempo, tomemos el ejemplo de cuatro paradas (a, b, c y d) para las que es preciso encontrar una ruta. Los campos TimeWindowStart y TimeWindowEnd proporcionan la ventana de tiempo de cada parada.
La ruta puede comenzar desde el punto a a cualquier hora entre las 8:00 y las 9:00 a.m.; sin embargo, no debe llegar al punto b antes de las 9:10 a.m. Como se muestra a continuación, la ruta llega a "b" a las 9:05:08 a.m.
Dado que "b" solo se debería visitar entre las 9:10 y las 9:12 a.m., la ruta espera en "b" durante 4 minutos y 52 segundos, y parte a las 9:10 a.m. Este tiempo de espera se almacena en el campo Wait_TravelTime de la parada "b" como 4.66 minutos y se agrega al tiempo total que toma la ruta. El campo Cumul_TraveTime de una parada almacena el tiempo total que se tarda en llegar a ella. El tiempo de viaje acumulado para b es de 10 minutos (5 minutos y 8 segundos de viaje y 4 minutos y 52 segundos de espera para respetar la ventana de tiempo de la parada b).
La ruta sale de la parada "b" a las 9:10 a.m. y llega a la parada "c" a las 9:15:20 a.m.; sin embargo, la parada "c" tiene una ventana de tiempo de 9:10 a 9:12 a.m. Existe una infracción de 3 minutos y 20 segundos, que se almacena en el campo Violation_TravelTime como 3,33 minutos, ya que la ruta no puede respetar la ventana de tiempo de la parada "c".
Las ventanas de tiempo se consideran restricciones blandas. Significa que, aunque el solucionador intenta respetar las ventanas de tiempo, en caso necesario infringirá las ventanas de tiempo de algunas paradas para poder llegar a ellas. Es una situación diferente a la de una restricción dura, en la que ninguna ruta llegará a la parada que presente una violación de ventana de tiempo. La capa de análisis de Ruta no admite ventanas de tiempo duras. Sin embargo, puede usarlas para las ventanas de tiempo de Orden en una capa de análisis de problema de generación de rutas para vehículos, cambiando el campo correspondiente MaxViolationTime a cero.
Un solucionador de ruta trata de encontrar la ruta de menor coste a través de una serie de paradas respetando las restricciones seleccionadas para la red y todas las ventanas de tiempo. Si es inevitable infringir las ventanas de tiempo, el solucionador intentará minimizar el tiempo de infracción total.