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. Para actualizar la zona horaria de los campos de 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 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 problema de generación de rutas para vehículos. 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
La parte de fecha de una ventana de tiempo indica si la ventana de tiempo aparece en una fecha específica, en un día de la semana o en la fecha actual. Por ejemplo, si la ventana de tiempo representa un tiempo de entrega, puede ser una única entrega programada para una fecha específica, una entrega habitual para los miércoles o una entrega programada para hoy, independientemente del día que sea hoy.
Para una ventana de tiempo en una fecha específica, solo necesita incluir esa fecha al rellenar los campos de la ventana de tiempo. En los ejemplos de la siguiente sección, la ventana de tiempo aparece el 16 de marzo de 2018.
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 cualquier hora entre las 8:00 y las 9:00 a.m. No obstante, no debería 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.
Puesto 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 40 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 del recorrido de 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 20 segundos de viaje y 4 minutos y 40 segundos de espera para respetar la ventana de tiempo de la parada b).
La ruta parte 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 las 9:10 a las 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.
La parada c se representa con el símbolo de la infracción horaria .
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.