Una ventana de tiempo es el período entre las horas de inicio y fin en el que una ruta visitará una ubicación de red, como una parada en un análisis de ruta. Las ventanas de tiempo se utilizan frecuentemente para modelar la cita o los tiempos de entrega.
Nota:
Una ventana de tiempo describe cuándo puede llegar un vehículo a una ubicación; no describe el período de tiempo durante el cual se debe completar todo el negocio en la ubicación.Ruta, Problema de generación de rutas para vehículos y Last Mile Delivery son los tres tipos de análisis de red que incorporan ventanas de tiempo. En el caso de ruta y de problema de generación de rutas para vehículos, las ventanas de tiempo se pueden configurar para una fecha específica, un día de la semana genérico o para la fecha actual. Sin embargo, para Last Mile Delivery, las ventanas de tiempo solo pueden configurarse para una fecha específica.
Más información sobre fechas y horas en un análisis de red
Ventanas de tiempo en un análisis de ruta
Un solucionador de ruta trata de encontrar la ruta de menor coste a través de una serie de paradas respetando las restricciones seleccionadas en 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.
Las ventanas de tiempo de un análisis de ruta se definen mediante campos de la clase de entrada Stops:
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Stops |
TimeWindowStart—El inicio de la ventana de tiempo en la que se puede visitar la parada. |
TimeWindowEnd—El final de la ventana de tiempo en la que se puede visitar la parada. |
Las ventanas de tiempo se utilizan automáticamente en el análisis cuando se rellena cualquiera de los campos de ventana de tiempo.
La hora especificada para cada ventana de tiempo se puede interpretar utilizando la zona horaria local de cada ubicación de entrada o en Hora universal coordinada (UTC). Al utilizar una capa de análisis de ruta, la zona horaria para los campos de ventana de tiempo se puede especificar con 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 o la lista desplegable Zona horaria de referencia de la cinta Capa de ruta. Cuando utilice un objeto del solucionador Route en el módulo arcpy.nax Python, utilice la propiedad timeZoneForTimeWindows.
Cuando las ventanas de tiempo están en uso, no es necesario especificar una hora del día del análisis, ya que la ventana de tiempo de la primera parada se utilizará para determinar cuándo comienza la ruta. Sin embargo, si especifica una hora del día del análisis que representa, por ejemplo, el inicio del turno de un conductor, se incluirá en las horas de llegada y salida de todas las paradas. Si la ruta comienza antes de la ventana de tiempo de la primera parada, se agregará un tiempo de espera en la primera parada. Si la ruta comienza después de que se ha superado la ventana de tiempo de una parada, se incurrirá en una penalización de tiempo de infracción. La fecha de la ventana de tiempo debe coincidir con la fecha especificada para la hora del día para el análisis de ruta.
Cualquier tiempo de espera o tiempo de infracción en el que incurre la ruta se incluye en la salida. El tiempo de espera y el tiempo de infracción totales para cada ruta se pueden encontrar en la clase de salida Routes en los campos con el prefijo TotalWait_ y TotalViolation_, respectivamente. El tiempo de espera y el tiempo de infracción en el que se incurre en cada parada a lo largo de una ruta se pueden encontrar en la clase de salida Stops en los campos con el prefijo Wait_ y Violation_, respectivamente. Los campos de la clase Stops de salida con el prefijo CumulWait_ y CumulViolation_ representan el tiempo de espera y el tiempo de infracción acumulados hasta ese punto a lo largo de la ruta.
Análisis de las ventanas de tiempo y problemas de generación de rutas para vehículos
El solucionador de problemas de generación de rutas para vehículos intenta encontrar la ruta de menor coste para ejecutar las órdenes de servicio, realizar las visitas al depósito necesarias y tomar los descansos necesarios mientras respeta las restricciones elegidas en la red y todas las ventanas de tiempo. Si las infracciones de la ventana de tiempo están permitidas y son inevitables, el solucionador intentará minimizar el tiempo de infracción total.
Las ventanas de tiempo de un análisis de problema de generación de rutas para vehículos se pueden definir para las clases Orders, Depots y Breaks mediante los siguientes campos:
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Orders |
TimeWindowStart—El inicio de la primera ventana de tiempo en que se puede visitar la orden |
TimeWindowEnd—El final de la primera ventana de tiempo en que se puede visitar la orden | |
TimeWindowStart2—El inicio de la segunda ventana de tiempo en que se puede visitar la orden | |
TimeWindowEnd2—El final de la segunda ventana de tiempo en que se puede visitar la orden | |
Depots | TimeWindowStart—El inicio de la primera ventana de tiempo en que se puede visitar el depósito |
TimeWindowEnd—El final de la primera ventana de tiempo en que se puede visitar el depósito | |
TimeWindowStart2—El inicio de la segunda ventana de tiempo en que se puede visitar el depósito | |
TimeWindowEnd2—El final de la segunda ventana de tiempo en que se puede visitar el depósito | |
Breaks | TimeWindowStart—El inicio de la ventana de tiempo en que puede producirse el descanso |
TimeWindowEnd—El inicio de la ventana de tiempo en que puede producirse el descanso |
Heredado:
Al utilizar un objeto del solucionador VehicleRoutingProblem con la versión de esquema Uno del módulo arcpy.nax Python, la primera ventana de tiempo de las clases Orders y Depots se define usando campos denominados TimeWindowStart1 y TimeWindowEnd1 en lugar de TimeWindowStart y TimeWindowEnd.
La clase de entrada Routes también tiene campos de ventana de tiempo que se utilizan para especificar el período en el que una ruta puede comenzar su viaje:
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Routes |
EarliestStartTime—El inicio de la ventana de tiempo en la que la ruta puede comenzar su viaje |
LatestStartTime—El final de la ventana de tiempo en la que la ruta puede comenzar su viaje |
Las ventanas de tiempo se utilizan automáticamente en el análisis cuando se rellenan los campos de ventana de tiempo. La fecha de la ventana de tiempo debe coincidir con la fecha predeterminada configurada para el análisis.
La hora especificada para cada ventana de tiempo se puede interpretar utilizando la zona horaria local de cada ubicación de entrada o en Hora universal coordinada (UTC). Al utilizar una capa de análisis de Problemas de generación de rutas para vehículos, la zona horaria para los campos de ventana de tiempo se puede especificar con 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 Problemas de generación de rutas para vehículos o la lista desplegable Zona horaria de referencia de la cinta Capa VRP. Cuando utilice un objeto del solucionador VehicleRoutingProblem en el módulo arcpy.nax Python, utilice la propiedad timeZoneForTimeWindows.
Cualquier tiempo de espera o tiempo de infracción en el que incurre la ruta se incluye en la salida. El tiempo de espera y el tiempo de infracción totales para cada ruta se pueden encontrar en la clase de salida Routes de los campos TotalWaitTime y TotalViolationTime, respectivamente. El tiempo de espera y el tiempo de infracción en los que se incurre en cada orden, descanso o depósito a lo largo de una ruta se pueden encontrar los campos WaitTime y ViolationTime, respectivamente. Los campos CumulWaitTime y CumulViolationTime de una orden, depósito o descanso representan el tiempo de espera y el tiempo de infracción acumulados, respectivamente, hasta ese punto a lo largo de la ruta.
Puede establecer los campos MaxViolationTime y MaxViolationTime2 de las órdenes de entrada y el campo MaxViolationTime en los descansos de entrada para controlar cuánta violación de ventana de tiempo es aceptable para su análisis. Para modelar las ventanas de tiempo como una restricción estricta, en la que no se permiten las infracciones de ventana de tiempo, establezca los campos MaxViolationTime y MaxViolationTime2 correspondientes a cero.
Heredado:
Cuando se utiliza un objeto del solucionador VehicleRoutingProblem con la versión del esquema Uno en el módulo arcpy.nax Python, el campo MaxViolationTime de la clase Orders se denomina MaxViolationTime1.
Ventanas de tiempo en el análisis Last Mile Delivery
El solucionador de Last Mile Delivery intenta encontrar un conjunto de rutas bien agrupadas y de bajo coste para servir los pedidos respetando las restricciones elegidas en la red y las restricciones del problema, como las ventanas de tiempo. Si las infracciones de la ventana de tiempo están permitidas y son inevitables, el solucionador intentará minimizar el tiempo de infracción total.
Las ventanas de tiempo del análisis Last Mile Delivery se definen en la clase Órdenes con los siguientes campos:
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Orders |
TimeWindowStart—El inicio de la ventana de tiempo en que se puede visitar la orden |
TimeWindowEnd—El final de la ventana de tiempo en que se puede visitar la orden |
La clase Rutas de entrada también tiene campos de ventana de tiempo que se utilizan para especificar el período en el que una ruta puede comenzar su viaje:
Clase de análisis de red | Campo de ventana de tiempo |
---|---|
Routes |
EarliestStartDate—Esto se utiliza junto con EarliestStartTime para definir el inicio de la ventana de tiempo en la que la ruta puede comenzar su viaje, especificando la parte de la fecha. |
EarliestStartTime—Esto se utiliza junto con EarliestStartDate para definir el inicio de la ventana de tiempo en la que la ruta puede comenzar su viaje, especificando la parte de tiempo. | |
StartFlexibility—Indica cuánto tiempo después de la hora de inicio de ruta más temprana permitida puede comenzar la ruta. Utiliza las unidades designadas por el parámetro TimeFieldUnits. |
Tanto EarliestStartDate como EarliestStartTime pueden designarse para cada entidad de la clase Rutas o para todas las entidades que utilicen los parámetros EarliestRouteStartDate y EarliestRouteStartTime.
Las ventanas de tiempo se utilizan automáticamente en el análisis cuando se rellenan los campos de ventana de tiempo. Las fechas de las ventanas de tiempo para las clases Órdenes y Rutas deben ser todas fechas concretas y con un año de diferencia entre ellas.
La hora especificada para cada ventana de tiempo se puede interpretar utilizando la zona horaria local de cada ubicación de entrada o en hora universal coordinada (UTC). Al utilizar una capa de análisis de Last Mile Delivery, la zona horaria para los campos de ventana de tiempo se puede especificar con 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 Last Mile Delivery o la lista desplegable Zona horaria de referencia de la cinta Last Mile Delivery. Cuando utilice un objeto del solucionador LastMileDelivery en el módulo Python arcpy.nax, utilice la propiedad timeZoneForTimeFields.
Cualquier tiempo de espera o tiempo de infracción en el que incurre la ruta se incluye en la salida. El tiempo de espera y el tiempo de infracción totales para cada ruta se pueden encontrar en la clase de salida Rutas de los campos TotalWaitTime y TotalViolationTime, respectivamente. El tiempo de espera y el tiempo de infracción en los que se incurre en cada orden a lo largo de una ruta se pueden encontrar los campos WaitTime y ViolationTime, respectivamente.
Puede configurar el campo MaxViolationTime en las órdenes de entrada para controlar el grado de infracción de la ventana de tiempo aceptable para su análisis. Para modelar las ventanas de tiempo como una restricción estricta, en la que no se permiten las infracciones de ventana de tiempo, establezca MaxViolationTime a cero.
Ejemplo de una ventana de tiempo
En el siguiente ejemplo se ilustran las ventanas de tiempo utilizadas con un análisis de ruta que se utiliza para buscar la ruta óptima para visitar tres paradas: a, b y c. 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 de la mañana. Sin embargo, no debe llegar al punto b antes de las 9:15 de la mañana. Como se muestra a continuación, la ruta llega a b a las 9:08:24 de la mañana.
Dado que b solo se debería visitar entre las 9:15 y las 9:30 de la mañana, la ruta espera en b durante 6 minutos y 36 segundos, y parte a las 9:15 de la mañana. Este tiempo de espera se guarda en el campo Wait_TravelTime de la parada b como 6,6 minutos y se agrega al tiempo total que toma la ruta. El campo Cumul_TravelTime de una parada almacena el tiempo total que se tarda en llegar a ella. El tiempo de viaje acumulado para b es de 15 minutos (8 minutos y 24 segundos de viaje y 6 minutos y 36 segundos de espera para respetar la ventana de tiempo de la parada b).
La ruta sale de la parada b a las 9:15 a.m. y llega a la parada c a las 9:35:34 a.m. Sin embargo, la parada c tiene una ventana de tiempo de 9:15 a 9:30 a.m. Debido a que la ruta no puede respetar la ventana de tiempo de la parada c, se incurre un tiempo de infracción de 5 minutos y 34 segundos y se guarda en el campo Violation_TravelTime como 5,58 minutos.