Análisis de problema de generación de rutas para vehículos

Diversas organizaciones dan servicio a órdenes con un flota de vehículos. Por ejemplo, un almacén de muebles grande podría utilizar varios camiones para entregar muebles a domicilio. Una compañía especializada de reciclaje de aceite podría dirigir a los camiones desde una instalación para recoger el aceite usado de los restaurantes. Un departamento de salud podría programar visitas de inspección diarias para cada uno de sus inspectores sanitarios.

Un análisis de problema de generación de rutas para vehículos

El problema común a los ejemplos citados es el problema de generación de rutas para vehículos (VRP). Cada organización necesita determinar a qué órdenes (domicilios, restaurantes o sitios de inspección) se debería dar servicio en cada ruta (camión o inspector) y en qué secuencia se deberían visitar las órdenes. El objetivo principal consiste dar mejor servicio a las órdenes y minimizar el coste total de funcionamiento para la flota de vehículos. Así, mientras el solucionador de rutas de la extensión Extensión ArcGIS Network Analyst encuentra la mejor ruta para que un único vehículo visite muchas paradas, el solucionador de VRP encuentra las mejores rutas para que una flota de vehículos atienda muchas órdenes. Además, el solucionador de VRP puede resolver problemas más concretos porque hay disponibles numerosas opciones, como asignar capacidades de vehículos a cantidades de órdenes, proporcionar descansos a los conductores y emparejar órdenes para darles servicio en la misma ruta.

La resolución de un problema de generación de rutas para vehículos sigue el mismo flujo de trabajo que otros análisis de red.

Más información sobre el flujo de trabajo del análisis de redes

Capa de análisis de problema de generación de rutas para vehículos

La capa de análisis de problema de generación de rutas para vehículos almacena las entradas, parámetros y resultados de un problema de generación de rutas para vehículos determinado.

Crear una capa de análisis del problema de generación de rutas para vehículos

Puede crear la capa de análisis del problema de generación de rutas para vehículos desde la barra de herramientas Network Analyst haciendo clic en Network Analyst > Problema de generación de rutas para vehículos nuevos..

Barra de herramientas de Network Analyst

Cuando se crea una capa de análisis de problema de generación de rutas para un vehículo determinado, aparece en la ventana Network Analyst junto con sus 13 clases de análisis de red: Órdenes, Depósitos, Rutas, Visitas a depósito, Cortes, Zonas de ruta, Puntos de semilla de ruta, Reanudaciones de ruta, Especialidades, Pares de órdenes, Barreras de punto, Barreras de línea y Barreras de polígono.

Ventana de Network Analyst

La capa de análisis de problema de generación de rutas para vehículos también aparece en la Tabla de contenido como una capa compuesta, que se denomina Problema de generación de rutas para vehículos o, si ya existe un problema de generación de rutas para vehículos con el mismo nombre en el documento de mapa, Problema de generación de rutas para vehículos 1, Problema de generación de rutas para vehículos 2, etc. Hay nueve entidades de capa: Órdenes, Visitas a depósito, Depósitos, Puntos de semilla de ruta, Rutas, Zonas de ruta, Barreras de punto, Barreras de línea y Barreras de polígono. Cada una de las nueve capas tiene una simbología predeterminada que se puede modificar en el cuadro de diálogo Propiedades de capa correspondiente.

NotaNota:

Dado que los cortes, especialidades, pares de órdenes y reanudaciones de ruta son tablas, no aparecen en la tabla de contenido.

Tabla de Contenidos

Clases de análisis de problema de generación de rutas para vehículos

La capa de análisis de problema de generación de rutas para vehículos se compone de 13 clases de análisis de red, que son capas de entidades o tablas almacenadas dentro de la capa del análisis. Contienen los objetos de análisis de red utilizados al resolver el problema de generación de rutas para vehículos. Las relaciones entre las diversas clases de análisis de red se muestran en el siguiente documento:

Relationships between network analysis classes in the vehicle routing problem

En las secciones siguientes se proporciona información general de cada clase y descripciones de sus propiedades.

Más información sobre las clases de análisis de red

Capa de entidades de órdenes

Esta capa de entidades almacena las órdenes que forman parte de una capa de análisis de problema de generación de rutas para vehículos determinado. Una orden puede ser una entrega a un cliente, una recogida de un cliente, o algún otro tipo de trabajo. Los ejemplos incluyen la entrega de muebles, recoger aceite de un restaurante o una visita de inspección.

Si las órdenes tienen elementos que recoger o entregar, los elementos pueden tener una o muchas capacidades, que pueden basarse en cualquier tipo de medida o combinación de medidas que desee como, por ejemplo, peso, volumen o número de unidades. Algunas órdenes, como las visitas de inspección, es posible que no tengan entregas o recogidas asociados.

Una orden puede tener un tiempo de servicio, que es el tiempo necesario para completar el trabajo en la orden. Por ejemplo, un camión de entrega puede requerir un tiempo de servicio de 20 minutos para descargar un mueble y llevarlo al interior de un domicilio. El tiempo de servicio puede ser el mismo para todas las órdenes o puede ser exclusivo para cada orden.

Una orden puede tener una o dos ventanas de tiempo, que indican cuando se permite que un vehículo visite la orden. Por ejemplo, solo se permite a un camión de entrega de alimentación mayorista llegar a un restaurante entre las 8:00 y las 10:00 a.m. o entre las 2:00 y 4:00 de la tarde porque al llegar a cualquier otro momento, supondría una interrupción para el negocio del restaurante.

Las especialidades pueden estar asociadas a una orden. Es decir, una orden puede requerir a un técnico con una cierta habilidad (por ejemplo, un electricista) o un vehículo con ciertas funciones (un elevador). Solo se asignará a la orden una ruta que tenga la misma especialidad.

Propiedades de orden

Campos de entrada de órdenes

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

Shape

Campo de geometría que indica la ubicación geográfica del objeto de análisis de red.

Nombre

Nombre del objeto de análisis de red.

El nombre debe ser único.

Este campo actúa como una clave principal y se utiliza como una clave externa para hacer referencia a los pedidos en la tabla OrderPairs. Los nombres de órdenes no distinguen entre mayúsculas y minúsculas y no pueden estar vacíos, incluso aunque la orden se excluya de la operación de resolución.

Descripción

La información descriptiva sobre la orden. Puede contener cualquier información textual para la orden y no tiene ninguna restricción de singularidad. Es posible que desee almacenar el número de Id. de un cliente en el campo Nombre y el nombre real del cliente o la dirección en el campo Descripción.

ServiceTime

Esta propiedad especifica cuánto tiempo se empleará en la ubicación de red cuando la ruta la visite; es decir, almacena el valor de impedancia para la ubicación de red. Un valor de cero o nulo indica que la ubicación de red no requiere ningún tiempo de servicio.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TimeWindowStart1

El tiempo inicial de la primera ventana de tiempo para la ubicación de red. Este campo puede contener un valor nulo; un valor nulo no indica ningún tiempo inicial.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

TimeWindowEnd1

El tiempo final de la primera ventana para la ubicación de red. Este campo puede contener un valor nulo; un valor nulo no indica ningún tiempo final.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

TimeWindowStart2

El tiempo inicial de la segunda ventana de tiempo para la ubicación de red. Este campo puede contener un valor nulo; un valor nulo indica que no hay segunda ventana de tiempo.

Si la primera ventana de tiempo es nula, según lo especificado por los campos TimeWindowStart1 y TimeWindowEnd1, la segunda ventana de tiempo también debe ser nula.

Si ambas ventanas de tiempo son no nulas, no pueden superponerse. Además, la segunda ventana de tiempo debe ocurrir después de la primera.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

TimeWindowEnd2

El tiempo final de la segunda ventana de tiempo para la ubicación de red. Este campo puede contener un valor nulo.

Cuando TimeWindowStart2 y TimeWindowEnd2 son ambos nulos, no hay segunda ventana de tiempo.

Cuando TimeWindowStart2 no es nulo pero TimeWindowEnd2 es nulo, hay una segunda ventana de tiempo que tiene una hora inicial pero no tiene hora final. Esto es válido.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

MaxViolationTime1

Se considera que se ha infringido una ventana de tiempo si la hora de llegada ocurre después de que la ventana de tiempo ha finalizado. Este campo especifica la hora máxima permitida de infracción de la primera ventana de tiempo de la orden. Puede contener un valor cero pero no puede contener valores negativos. Un valor cero indica que no es aceptable una infracción de ventana de tiempo en la primera ventana de tiempo de la orden; es decir, la primera ventana de tiempo es estricta. Por otro lado, un valor nulo indica que no existe ningún límite en el tiempo de infracción permitido. Un valor distinto de cero especifica la cantidad máxima de retraso; por ejemplo, una ruta puede llegar a una orden hasta 30 minutos después del final de su primera ventana de tiempo.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

El solucionador puede realizar un seguimiento y ponderación de las infracciones de la ventana de tiempo. Por ello, puede dirigir el solucionador de VRP para que adopte uno de estos tres enfoques:

  • Minimizar el tiempo de infracción total, sin tener en cuenta el aumento del coste de viaje para la flota.
  • Encontrar una solución que equilibre el tiempo de infracción total y el coste del viaje.
  • Ignorar el tiempo de infracción total, en su lugar, minimizar el coste del viaje para la flota.

Asignando un nivel de importancia para el parámetro Violación de la ventana de tiempo de la capa del análisis, está eligiendo en esencia uno de estos tres enfoques. En cualquier caso, sin embargo, el solucionador devolverá un error si el valor establecido para MaxViolationTime1 se supera.

MaxViolationTime2

Tiempo máximo de infracción permitido para la segunda ventana de tiempo de la orden. Este campo es análogo al campo MaxViolationTime1.

DeliveryQuantities

El tamaño de la entrega. Puede especificar el tamaño de cualquier dimensión que desee, como peso, volumen o cantidad. Incluso puede especificar varias dimensiones, por ejemplo, peso y volumen.

Si la orden requiere 2.000 libras de bienes, entonces, el parámetro Cálculo de capacidad en el cuadro de diálogo Propiedades Capa de la capa del análisis debería establecerse en 1y DeliveryQuantities debería establecerse en 2000.

Si hay varias capacidades, tal y como se especifica en la propiedad Cálculo de capacidad de la capa del análisis, los valores de DeliveryQuantities se separan mediante un espacio.

Por ejemplo, cuando se conocen el peso y el volumen, el Cálculo de capacidad en el cuadro de diálogo Propiedades de capa de la capa del análisis debería estar establecido en 2. Si la orden requiere 2.000 libras de bienes, que ocupan 100 pies cúbicos, DeliveryQuantities debería estar establecido en 2000 100.

Una cadena vacía o un valor nulo equivale a que todas las dimensiones que son cero. Si la cadena de caracteres tiene un número de valores insuficiente en relación al recuento de capacidad o dimensiones rastreadas, los valores restantes se tratan como ceros. Las cantidades de entrega no pueden ser negativas.

PickupQuantities

El tamaño de la recogida. Puede especificar el tamaño de cualquier dimensión que desee, como peso, volumen o cantidad. Incluso puede especificar varias dimensiones, por ejemplo, peso y volumen. No se puede, sin embargo, utilizar valores negativos. Este campo es análogo al campo DeliveryQuantities de órdenes.

NotaNota:
En el caso de una visita de intercambio, una orden puede tener cantidades de entrega y de recogida.

Renta

El ingreso generado si la orden se incluye en una solución. Este campo puede contener un valor nulo (un valor nulo indica una renta de cero), pero no puede tener un valor negativo.

Rentas se incluye al optimizar el valor de función objetivo pero no forma parte del coste operativo de la solución. Es decir, el campo TotalCost en la clase de ruta nunca incluye Rentas en su resultado; sin embargo, la renta pondera la importancia relativa de dar servicio a las órdenes.

SpecialtyNames

Una cadena de caracteres separada por espacios que contiene los nombres de las especialidades requeridas por la orden. Un valor nulo indica que la orden no requiere especialidades.

Este campo es una clave externa al campo Nombre en la tabla Especialidades. Los objetos de especialidad deben existir antes de que aparezcan en la lista desplegable SpecialtyNames. Por ejemplo, una compañía de cuidado de césped podría dar servicio a una orden con un pesticida que requiera una licencia de operario. La compañía podría crear un objeto de especialidad denominado Licencia y establecer esta propiedad en Licencia.

AssignmentRule

Este campo especifica la regla para asignar la orden a una ruta. Este está restringido por un dominio de valores, que se muestran a continuación (sus valores codificados se muestran entre paréntesis).

  • Excluir (0) La orden se va a excluir de la siguiente operación de resolución.
  • Conservar la ruta y la secuencia relativa(1) El solucionador debe asignar siempre la orden a la ruta preasignada y en la secuencia relativa preasignada durante la operación de resolución. Si no se puede seguir esta regla de asignación, se produce una infracción de orden.

    Con esta configuración, sólo se mantiene la secuencia relativa, no la secuencia absoluta. Para ilustrar lo que esto significa, imaginemos que hay dos órdenes: A y B. Tienen valores de secuencia de 2 y 3, respectivamente. Si se establecen los valores de campo AssignmentRule en Conservar ruta y secuencia relativa, los valores de secuencia reales de A y B pueden cambiar después de la solución porque otras órdenes, descansos y visitas al depósito aún se pueden secuenciar antes, entre, o después de A y B. Sin embargo, B no se puede secuenciar antes que A.

  • Conservar la ruta (2) El solucionador siempre debe asignar la orden a la ruta preasignada durante la operación de resolución. También se debe establecer una secuencia válida aunque la secuencia pueda o no conservarse. Si la orden no se puede asignar a la ruta especificada, se produce una infracción de la orden.
  • Excepción (3) El solucionador intenta conservar la ruta y preasignación de secuencia para la orden durante la operación de resolución. Sin embargo, podría asignarse una nueva ruta y/o secuencia para la orden si ayuda a minimizar el valor total de la función objetivo. Este es el valor predeterminado.

Este campo no puede contener un valor nulo.

Campos de ubicación de red

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

Juntas, estas cuatro propiedades describen el punto de la red donde se encuentra el objeto.

Más información sobre los campos de ubicación de red

CurbApproach

La propiedad CurbApproach especifica la dirección en la que un vehículo puede llegar a la ubicación de red y partir de ella. Hay cuatro opciones (sus valores codificados se muestran entre paréntesis):

  • Cualquier lado del vehículo (0): el vehículo puede aproximarse a la ubicación de red y abandonarla en cualquier sentido. Los cambios de sentido están permitidos. Debe elegir esta configuración si el vehículo puede realizar un cambio de sentido en la parada o si puede entrar en un camino o un estacionamiento y dar la vuelta.
  • Lado derecho del vehículo (1): cuando el vehículo se aproxima a la ubicación de red y la abandona, el bordillo debe estar en el lado derecho del vehículo. Los cambios de sentido están prohibidos.
  • Lado izquierdo del vehículo (2): cuando el vehículo se aproxima a la ubicación de red y la abandona, el bordillo debe estar en el lado izquierdo del vehículo. Los cambios de sentido están prohibidos.
  • Sin giro en U (3): cuando el vehículo se aproxima a la ubicación de red, el bordillo puede estar a uno otro lado del vehículo; no obstante, el vehículo debe partir sin cambiar de sentido.

Más información acerca de las políticas de cambio de sentido

NotaNota:
  • Una ventana de tiempo solo indica cuando puede llegar un vehículo a una orden; no indica cuándo se debe completar el tiempo de servicio. Para contabilizar el tiempo de servicio y partir antes de que la ventana de tiempo se agote, reste ServiceTime del campo TimeWindowEnd1.

  • Los campos de la ventana de tiempo pueden contener un valor de solo hora o un valor de fecha y hora. Si un campo de tiempo tal como TimeWindowStart1 tiene un valor solo de tiempo (por ejemplo, 8:00 AM), se asume que la fecha es la fecha especificada por la propiedad Date Default de la capa de análisis. El uso de valores de fecha y hora (por ejemplo, 7/11/2010 8:00 AM) permite establecer ventanas de tiempo que abarcan varios días.

  • Si está utilizando datos de tráfico, los campos de hora del día para la ubicación de red siempre hacen referencia a la misma zona horaria que el borde en el que se encuentra la ubicación de red.

Campos de entrada/salida de las órdenes

Campo de entrada/salida

Descripción

RouteName

El nombre de la ruta a la que se ha asignado la orden.

Como campo de entrada, este campo se utiliza para preasignar una orden a una ruta concreta. Puede contener un valor nulo que indica que la orden no se ha preasignado a ninguna ruta y el solucionador determina la mejor asignación de ruta posible para la orden. Si está establecido en nulo, el campo de secuencia también debe estar establecido en nulo.

El campo RouteName es una clave externa al campo Nombre en la clase Rutas. Los objetos de ruta deben existir antes de que aparezcan en la lista RouteName.

Después de una operación de resolución, si se enruta la orden, el campo RouteName contiene el nombre de la ruta a la que está asignada la orden.

Secuencia

Esto indica la secuencia de la orden en su ruta asignada.

Como campo de entrada, este campo se utiliza para especificar la secuencia relativa para una orden en la ruta. Este campo puede contener un valor nulo que especifica que la orden se puede realizar en cualquier parte a lo largo de la ruta. Un valor nulo solo puede darse junto a un valor RouteName nulo.

Los valores de secuencia de entrada son positivos y únicos para cada ruta (compartida en las visitas de reanudación al depósito, órdenes y descansos), pero no tienen que empezar a partir de 1 ni ser contiguos.

Después de una operación de solución, el campo Secuencia contiene el valor de secuencia de la orden en su ruta asignada. Los valores de secuencia de salida para una ruta se comparten en las visitas a depósito, órdenes y descansos; empiezan a partir de 1 (en el depósito de inicio); y son consecutivos. Así que el valor Secuencia de salida más pequeño posible para una orden enrutada es 2, dado que una ruta siempre comienza en un depósito.

Estado

Este campo está restringido por un dominio de valores, que se muestran a continuación (sus valores codificados se muestran entre paréntesis).

  • Aceptar (0): la ubicación de red es válida
  • No ubicado (1): la ubicación de la red no se puede determinar.
  • Elemento de red no localizado (2): el elemento de red donde se supone que debe estar la ubicación de red no se puede encontrar. Esto puede ocurrir cuando se elimina un borde de la red y no se recalcula la ubicación de red.

Después de una operación de resolución, el estado se puede modificar utilizando uno de los siguientes valores de estado:

  • Aceptar (0): la evaluación de red se evaluó correctamente.
  • Elemento que no se puede cruzar (3): el elemento de red en el que se encuentra la ubicación de red no se puede recorrer. Esto puede ocurrir cuando un elemento de red está restringido por un atributo de restricción.
  • Valores de campo no válido (4): los valores de campo de la ubicación de red caen fuera de los dominios de rango o codificados de la capa de análisis. Por ejemplo, puede existir un número negativo donde se requieran números positivos.
  • No ha llegado (5): el solucionador no puede llegar a la ubicación de red.

Si se utilizan ventanas de tiempo y la ruta llega temprano o tarde, el valor cambia a Violación de la ventana de tiempo (6).

NotaNota:

Si la orden tiene un valor de campo valor AssignmentRule (regla de asignación) de Exclude, entonces los valores de entrada para los campos Estado, RouteName (Nombre de ruta) y Secuencia no se cambian durante la operación de resolución.

Campos de salida de órdenes

Campo de salida

Descripción

ViolatedConstraints

Este campo contiene un resumen de restricciones infringidas y está establecido después una operación de resolución. Podría asignarse al campo una combinación de una o más de las infracciones mostradas abajo si al asignar la orden a cualquiera de las rutas se provocara una infracción en una restricción.

InmersiónInmersión:

El valor codificado que representa la descripción de texto se muestra en la lista siguiente entre paréntesis. Observe que los valores codificados forman parte de una secuencia geométrica que aumenta duplicando el último valor. Esto permite codificar varias combinaciones de infracciones. Por ejemplo, la combinación de Capacidad excedida (2) y Zona de ruta difícil (128) se codifica como 130 (2 +128).

  • Superado MaxOrderCount (1) La orden no se puede asignar a una ruta dado que la asignación superaría el valor de campo MaxOrderCount de la ruta. Si se supera el recuento de órdenes máximo, la solución seguiría generándose, pero dejaría algunas órdenes sin servicio. En este caso, el solucionador de VRP incluye el número más grande de órdenes posible dadas las restricciones.
  • Capacidad excedida (2) La orden no se puede asignar a una ruta dado que la asignación de la orden superaría el valor de campo Capacidades de la ruta.
  • Superado MaxTotalTime (4) La orden no se puede asignar a una ruta dado que la asignación de la orden superaría el valor del campo MaxTotalTime de la ruta.
  • Superado MaxTotalTravelTime (8) La orden no se puede asignar a una ruta dado que la asignación de la orden superaría el valor del campo MaxTotalTravelTime de la ruta.
  • Superado MaxTotalDistance (16) La orden no se puede asignar a una ruta dado que la asignación de la orden superaría el valor del campo MaxTotalDistance de la ruta.
  • Ventana de tiempo estricta (32) La orden tiene una ventana de tiempo estricta y no se puede asignar a una ruta sin encontrar una infracción de ventana de tiempo. (Una ventana de tiempo estricta se especifica asignando un valor de 0 al campo MaxViolationTime1 o MaxViolationTime2.)
  • Especialidad no concordada (64) Las especialidades requeridas por la orden no se encuentran en la ruta de destino.
  • Zona de ruta difícil (128) La orden no cae dentro de una zona de ruta difícil. Si todas las rutas tienen las zonas de ruta difícil y una orden cae fuera de una zona, se asigna esta restricción infringida a la orden.
  • Superado MaxTransitTime (Tiempo de tránsito máximo) de par de órdenes (256) La orden pertenece a un par de órdenes y la asignación de la orden superaría el tiempo de tránsito máximo especificado por el valor de campo MaxTransitTime del par de órdenes.
  • Violación de par de órdenes (512) Una orden pertenece a un par de órdenes y no se puede asignar a una ruta porque la otra orden tiene alguna infracción. Por ejemplo, suponga que las órdenes O1 y O2 están emparejadas y que la orden O1 se encuentra en un elemento de red con impedancias negativas, pero hay ningún problema de infracción con la orden O2. El solucionador devuelve Inalcanzable para la orden O1 y Violación de par de órdenes para O2, dado que ambas órdenes no pueden estar asignadas a una ruta.
  • Inalcanzable (1024) La orden se encuentra en un elemento de red que no se puede alcanzar mediante ninguna ruta. Esto suele estar provocado por una orden situada en una parte inconexa de la red.
  • No se pueden insertar las interrupciones solicitadas (2048) Un corte para la ruta tiene un valor de secuencia nulo en presencia de órdenes preasignadas y el corte no se puede insertar en cualquier parte sin introducir otras infracciones.
  • No se pueden insertar las renovaciones solicitadas (4096) Una ruta supera su capacidad y necesita visitar una renovación de ruta, la renovación de ruta asociada tiene un valor de secuencia nulo en presencia de órdenes preasignadas y no se puede insertar en cualquier parte sin introducir otras infracciones.
  • Se excedió MaxTravelTimeBetweenBreaks (8192) El solucionador no ha podido insertar un corte en el tiempo especificado por el campo MaxTravelTimeBetweenBreaks del corte. Esto suele producirse al preasignar una secuencia a un corte tal que no se puede alcanzar en el tiempo de viaje máximo.

  • Superado Break MaxCumulWorkTime (16384) El solucionador no ha podido insertar un corte en el tiempo especificado por el campo MaxCumulWorkTime del corte. Esto suele producirse al preasignar una secuencia a un corte tal que no se puede alcanzar en el tiempo de trabajo máximo.

Más información acerca de cómo solucionar los problemas de análisis de red

NotaNota:

El valor ViolatedConstraints de una orden sin enrutar podría describir o no todas sus infracciones. Si la infracción es lo bastante grave para excluir inmediatamente la orden de otras consideraciones, el solucionador lo hace, lo que evita descubrir otras infracciones para dicha orden. Si se encuentra una infracción que no impide automáticamente la generación de una solución, dicha infracción se anota en ViolatedConstraints y el solucionador sigue considerando la orden. Cualquier infracción adicional, como las añadidas al campo ViolatedConstraints hasta que (a) el solucionador encuentra una infracción que detiene prematuramente el proceso de resolución para esa orden particular o bien (b) el solucionador encuentra una solución global al problema.

FromPrevTravelTime

El tiempo de viaje de la visita anterior en la ruta a la orden.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

FromPrevDistance

La distancia de viaje de la visita anterior en la ruta a la orden.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

CumulTravelTime

El tiempo de viaje acumulado para la ruta hasta la llegada a la orden.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulDistance

La distancia de viaje acumulado para la ruta hasta la llegada a la orden.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

CumulTime

La duración acumulada de la ruta hasta la orden e incluida. La duración acumulada incluye los tiempos de viaje, así como los tiempos de servicio y espera en las órdenes.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

ArriveCurbApproach

Indica a qué lado del vehículo está el bordillo cuando el vehículo se acerca a la ubicación de red. Si el valor CurbApproach de la ubicación de red está establecido en Lado derecho del vehículo, ArriveCurbApproach después de la solución será Lado derecho del vehículo. Sin embargo, si el valor de CurbApproach está establecido en Cualquier lado del vehículo o Sin giro en U, ArriveCurbApproach podría estar en el lado derecho o izquierdo dependiendo de cuál produzca la trayectoria total más corta.

DepartCurbApproach

Indica a qué lado del vehículo está el bordillo cuando el vehículo parte de la ubicación de red. Si el valor CurbApproach de la ubicación de red está establecido en Lado derecho del vehículo, DepartCurbApproach después de la solución será Lado derecho del vehículo. Sin embargo, si el valor de CurbApproach está establecido en Cualquier lado del vehículo o Sin giro en U, DepartCurbApproach podría estar en el lado derecho o izquierdo dependiendo de cuál produzca la trayectoria total más corta.

ArriveTime

El valor de la fecha y la hora de llegada a la orden.

La ruta puede llegar a la orden antes del inicio de una de las ventanas de tiempo de la orden, en cuyo caso hay un tiempo de espera en la orden. Para una orden con ventanas de tiempo no estrictas, la ruta puede llegar también a la orden después del fin de una de las ventanas de tiempo, en cuyo caso existe una infracción de tiempo en la orden.

Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día se toma del elemento de red en el que se encuentra la orden.

DepartTime

El valor de la fecha y la hora que indica la hora de salida de la orden. La ruta parte de la orden una vez finalizado el servicio.

Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día se toma del elemento de red en el que se encuentra la orden.

WaitTime

El tiempo de espera o relevo en la orden. Por ejemplo, obtiene un valor de tiempo de espera si una ruta debe esperar en la orden para que se abra una ventana de tiempo.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

ViolationTime

La cantidad de tiempo transcurrida entre el fin de la ventana de tiempo de la orden y la llegada del vehículo de ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulWaitTime

El tiempo de espera acumulado desde el principio de la ruta hasta la orden incluida.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulViolationTime

El tiempo de infracción acumulado desde el principio de la ruta hasta la orden incluida.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

Clase de depósitos

Esta clase de análisis de red almacena los depósitos que forman parte de una capa de análisis de problema de generación de rutas para vehículos determinada. Un depósito es una ubicación desde la que sale un vehículo al comienzo de su día laborable y a la que vuelve al final del mismo. Los depósitos son las ubicaciones donde se cargan los vehículos (para las entregas) o se descargan (para las recogidas). En algunos casos, un depósito también puede actuar como ubicación de renovación donde el vehículo puede descargarse o volverse a cargar y seguir realizando entregas y recogidas. Un depósito tiene horas de apertura y cierre, tal y como se especifica en una ventana de tiempo estricta. Los vehículos no pueden llegar a un depósito fuera de esta ventana de tiempo.

Propiedades de depósito

Campos de entrada de Depósitos

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

Shape

Campo de geometría que indica la ubicación geográfica del objeto de análisis de red.

Nombre

Nombre del objeto de análisis de red.

Este campo es una clave principal y se utiliza como clave externa en la capa de entidades Rutas, la tabla RouteRenewals y la capa de entidad Visitas al depósito para hacer referencia a los depósitos. Los nombres de depósitos no hacen distinción entre mayúsculas y minúsculas y tienen que ser únicos y no estar vacíos.

Descripción

La información descriptiva sobre el objeto de análisis de red. Puede contener cualquier información textual y no tiene ninguna restricción de singularidad.

Quizás desee tener en cuenta en qué región está un depósito o la dirección y número de teléfono del mismo; podría introducir esta información aquí en lugar de en el campo Nombre.

TimeWindowStart1

El tiempo inicial de la primera ventana de tiempo para la ubicación de red. Este campo puede contener un valor nulo; un valor nulo no indica ningún tiempo inicial.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

TimeWindowEnd1

El tiempo final de la primera ventana para la ubicación de red. Este campo puede contener un valor nulo; un valor nulo no indica ningún tiempo final.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

TimeWindowStart2

El tiempo inicial de la segunda ventana de tiempo para la ubicación de red. Este campo puede contener un valor nulo; un valor nulo indica que no hay segunda ventana de tiempo.

Si la primera ventana de tiempo es nula, según lo especificado por los campos TimeWindowStart1 y TimeWindowEnd1, la segunda ventana de tiempo también debe ser nula.

Si ambas ventanas de tiempo son no nulas, no pueden superponerse. Además, la segunda ventana de tiempo debe ocurrir después de la primera.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

TimeWindowEnd2

El tiempo final de la segunda ventana de tiempo para la ubicación de red. Este campo puede contener un valor nulo.

Cuando TimeWindowStart2 y TimeWindowEnd2 son ambos nulos, no hay segunda ventana de tiempo.

Cuando TimeWindowStart2 no es nulo pero TimeWindowEnd2 es nulo, hay una segunda ventana de tiempo que tiene una hora inicial pero no tiene hora final. Esto es válido.

(Vea la nota debajo de esta tabla de propiedades para obtener más información).

Campos de ubicación de red

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

Juntas, estas cuatro propiedades describen el punto de la red donde se encuentra el objeto.

Más información sobre los campos de ubicación de red

CurbApproach

La propiedad CurbApproach especifica la dirección desde la que un vehículo puede llegar al depósito y partir de el. Es útil para vehículos que necesitan acercarse y partir de un depósito desde un dirección concreta o evitar realizar giros de 180º. Puede dar cabida a estos requisitos seleccionando uno de los siguientes cuatro valores para CurbApproach:

  • Cualquier lado del vehículo (0): el vehículo puede aproximarse a la ubicación de red y abandonarla en cualquier sentido. Los cambios de sentido están permitidos. Debe elegir esta configuración si el vehículo puede realizar un cambio de sentido en la parada o si puede entrar en un camino o un estacionamiento y dar la vuelta.
  • Lado derecho del vehículo (1): cuando el vehículo se aproxima a la ubicación de red y la abandona, el bordillo debe estar en el lado derecho del vehículo. Los cambios de sentido están prohibidos.
  • Lado izquierdo del vehículo (2): cuando el vehículo se aproxima a la ubicación de red y la abandona, el bordillo debe estar en el lado izquierdo del vehículo. Los cambios de sentido están prohibidos.
  • Sin giro en U (3) Esta opción no se permite con depósitos. Se devuelve un mensaje de error durante el proceso de resolución si se utiliza Sin giro en U. No obstante, se pueden seguir evitando los giros de 180º eligiendo Lado derecho o izquierdo del vehículo.

Más información acerca de las políticas de cambio de sentido

NotaNota:
  • Los campos de la ventana de tiempo pueden contener un valor de solo hora o un valor de fecha y hora. Si un campo de tiempo tal como TimeWindowStart1 tiene un valor solo de tiempo (por ejemplo, 8:00 AM), se asume que la fecha es la fecha especificada por la propiedad Date Default de la capa de análisis. El uso de valores de fecha y hora (por ejemplo, 7/11/2010 8:00 AM) permite establecer ventanas de tiempo que abarcan varios días.

  • Si está utilizando datos de tráfico, los campos de hora del día para la ubicación de red siempre hacen referencia a la misma zona horaria que el borde en el que se encuentra la ubicación de red.

Campos de entrada/salida de los Depósitos

Campo de entrada/salida

Descripción

Estado

Este campo está restringido por un dominio de valores, que se muestran a continuación (sus valores codificados se muestran entre paréntesis).

  • Aceptar (0): la ubicación de red es válida
  • No ubicado (1): la ubicación de la red no se puede determinar.
  • Elemento de red no localizado (2): el elemento de red donde se supone que debe estar la ubicación de red no se puede encontrar. Esto puede ocurrir cuando se elimina un borde de la red y no se recalcula la ubicación de red.

Después de una operación de resolución, el estado se puede modificar utilizando uno de los siguientes valores de estado:

  • Aceptar (0): la evaluación de red se evaluó correctamente.
  • Elemento que no se puede cruzar (3): el elemento de red en el que se encuentra la ubicación de red no se puede recorrer. Esto puede ocurrir cuando un elemento de red está restringido por un atributo de restricción.
  • Valores de campo no válido (4): los valores de campo de la ubicación de red caen fuera de los dominios de rango o codificados de la capa de análisis. Por ejemplo, puede existir un número negativo donde se requieran números positivos.
  • No ha llegado (5): el solucionador no puede llegar a la ubicación de red.

Si se utilizan ventanas de tiempo y el vehículo enrutado llega temprano o tarde, el valor cambia a Violación de la ventana de tiempo (6).

Clase Rutas

Esta clase de análisis de red almacena las rutas que forman parte de una capa de análisis de problema de generación de rutas para vehículos determinada. Una ruta especifica las características del vehículo y del conductor además de representar la travesía entre depósitos y órdenes. En Network Analyst, los vehículos, rutas y conductores son sinónimos y el término ruta se utiliza para englobar a los tres.

NotaNota:

El solucionador de VRP no está diseñado para considerar que el mismo vehículo se utiliza en turnos de día laborable en una única solución de generación de rutas o el cambio de conductores en un día laborable.

Una ruta podría dedicar tiempos de carga o descarga en los depósitos de inicio o fin. La cantidad de tiempo empleada en un depósito es fija para la ruta y se especifica como tiempo de servicio del depósito inicial y final.

Una ruta puede comenzar a una hora fija o podría tener una hora de inicio flexible; es decir, podría tener un intervalo de tiempo de inicio de más temprano a más tardío. Se tienen en cuenta el intervalo de tiempo de inicio y la ventana de tiempo del depósito inicial al determinar la hora de inicio real de la ruta.

El coste operativo de una ruta individual puede estar compuesto por costes basados en tiempo, costes basados en distancia o costes fijos que son independientes de la cantidad de tiempo trabajada o de la distancia recorrida. Puede haber, por ejemplo, un coste fijo asociado al uso de un vehículo si hay que alquilar vehículos adicionales en días de carga de trabajo elevada. De igual forma, es posible que haya que pagarle al conductor el número de horas trabajadas, incluidas o excluidas las horas extraordinarias y las pausas de almuerzo. Tales costes se pueden utilizar para especificar los costes basados en tiempo. Los costes de combustible se pueden utilizar para especificar los costes de la distancia.

El vehículo que opera en una ruta determinada también puede tener una capacidad, que limita la cantidad que puede transportar.

Puede haber restricciones dentro del día laborable de un conductor, por ejemplo, la distancia total recorrida o el número de horas que un conductor puede trabajar o conducir según la normativa estatal o el convenio sindical.

La ruta puede incluir cortes en el trabajo. El conductor podría recibir un pago o no durante estos cortes.

Un vehículo podría tener ciertas capacidades, por ejemplo, un elevador o un blindaje especial, o los técnicos podrían tener distintos conjuntos de habilidades. Las órdenes que tienen definidas estas especialidades se deben asignar a las rutas adecuadas.

Una ruta puede estar asociada a una zona si la ruta está limitada a una región geográfica predefinida.

Las rutas son entidades de línea. Se pueden importar desde rutas existentes en otras capas de análisis de problema de generación de rutas para vehículos, de otras entidades lineales o desde tablas. También se pueden crear utilizando el comando Agregar elemento.

Propiedades de ruta

Campos de entrada de rutas

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

Nombre

Nombre del objeto de análisis de red.

Este campo es la clave principal y se utiliza como clave externa en la capa de entidad Órdenes, tabla Cortes, capa de entidad Zonas de ruta, capa de entidad Puntos de semilla de ruta, tabla Reanudaciones de ruta y capa de entidad Visitas al depósito. Los nombres de ruta no hacen distinción entre mayúsculas y minúsculas y no pueden estar vacíos, incluso aunque la ruta no forme parte de la operación de resolución. El nombre debe ser único.

Descripción

La información descriptiva sobre el objeto de análisis de red. Puede contener cualquier información textual y no tiene ninguna restricción de singularidad.

StartDepotName

El nombre del depósito inicial para la ruta. Este campo es una clave externa para el campo Nombre en la clase Depósitos. Los objetos de depósito deben existir antes de aparecer en la lista desplegable StartDepotName (Nombre del depósito de partida).

Si el valor StartDepotName es nulo, la ruta comenzará desde la primera orden asignada. Omitir el depósito inicial es útil cuando no se conoce la ubicación inicial del vehículo o es irrelevante para el problema. Sin embargo, cuando StartDepotName es nulo, EndDepotName no puede ser nulo tampoco.

Si la ruta está realizando entregas y StartDepotName es nulo, se supone que la carga se carga en el vehículo en un depósito virtual antes de que comience la ruta. Para una ruta que no tiene visitas de reanudación, sus órdenes de entrega (aquéllas con valores DeliveryQuantities distintos de cero en la clase Órdenes) se carga en el depósito de inicio o en el depósito virtual. Para una ruta que tiene visitas de reanudación, solo se cargan en el depósito de inicio o en el depósito virtual las órdenes de entrega antes de la primera visita de reanudación.

EndDepotName

El nombre del depósito final para la ruta. Este campo es una clave externa para el campo Nombre en la clase Depósitos. Los objetos de depósito deben existir antes de aparecer en la lista desplegable EndDepotName (Nombre de depósito terminal).

StartDepotServiceTime

El tiempo de servicio en el depósito inicial. Esto se puede utilizar para modelar el tiempo dedicado a cargar el vehículo. Este campo puede contener un valor nulo; un valor nulo indica un tiempo de servicio cero.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

NotaNota:

Los tiempos de servicio en los depósitos inicial y final son valores fijos (dados por los valores de los campos StartDepotServiceTime y EndDepotServiceTime) y no tienen en cuenta la carga real para una ruta. Por ejemplo, el tiempo necesario para cargar un vehículo en el depósito inicial puede depender del tamaño de los pedidos. En consecuencia, los tiempos de servicio de depósito podrían ser valores dados correspondientes a un camión completamente cargado o con una carga media, o podría realizarse una estimación propia del tiempo.

EndDepotServiceTime

El tiempo de servicio en el depósito final. Esto se puede utilizar para modelar el tiempo dedicado a descargar el vehículo. Este campo puede contener un valor nulo; un valor nulo indica un tiempo de servicio cero.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

NotaNota:

Los tiempos de servicio en los depósitos inicial y final son valores fijos (dados por los valores de los campos StartDepotServiceTime y EndDepotServiceTime) y no tienen en cuenta la carga real para una ruta. Por ejemplo, el tiempo necesario para cargar un vehículo en el depósito inicial puede depender del tamaño de los pedidos. En consecuencia, los tiempos de servicio de depósito podrían ser valores dados correspondientes a un camión completamente cargado o con una carga media, o podría realizarse una estimación propia del tiempo.

EarliestStartTime

El tiempo de inicio más temprano permitido para la ruta. El solucionador utiliza esto junto con la ventana de tiempo del depósito inicial para determinar los tiempos de inicio de ruta factibles.

Este campo no puede contener valores nulos y tiene un valor solo de tiempo predeterminado de 8:00 AM; el valor predeterminado se interpreta como 8:00 a.m. en la fecha proporcionada por la propiedad Fecha predeterminada de la capa del análisis.

Al utilizar los dataset de red con datos de tráfico en varias zonas horarias, la zona horaria para EarliestStartTime es igual a la zona horaria del eje o cruce en que se encuentra el depósito inicial.

LatestStartTime

El tiempo de inicio más tardío permitido para la ruta. Este campo no puede contener valores nulos y tiene un valor solo de tiempo predeterminado de 10:00:00 AM; el valor predeterminado se interpreta como 10:00:00 a.m. en la fecha proporcionada por la propiedad Fecha predeterminada de la capa del análisis.

Al utilizar los dataset de red con datos de tráfico en varias zonas horarias, la zona horaria para LatestStartTime (Tiempo de inicio más tardío) es igual a la zona horaria del eje o cruce en que se encuentra el depósito inicial.

ArriveDepartDelay

Este campo almacena la cantidad de tiempo de viaje necesario para acelerar el vehículo a velocidades de viaje normales, decelerarlo hasta una parada y meterlo y sacarlo de la red (por ejemplo, entrar y salir del aparcamiento). Incluyendo un valor ArriveDepartDelay, se evita que el solucionador de VRP envíe muchas rutas para dar servicio a órdenes físicamente coincidentes.

El coste para esta propiedad se incurre entre visitas a órdenes no coincidentes, depósitos y reanudaciones de ruta. Por ejemplo, cuando una ruta empieza en un depósito y visita la primera orden, el retraso de llegada/salida se agrega al tiempo de viaje. Lo mismo es aplicable al viajar desde la primera orden a la segunda. Si la segunda y tercera órdenes coinciden, el valor ArriveDepartDelay no se añade dado que el vehículo no tiene que desplazarse. Si la ruta viaja a una reanudación de ruta, el valor se añade de nuevo al tiempo de viaje. Aunque un vehículo tiene que reducir la velocidad y detenerse para una interrupción y acelerar después, el solucionador de VRP no puede añadir el valor ArriveDepartDelay para los cortes. Esto significa que si una ruta deja una orden, para durante un corte y continúa en la siguiente orden, el retardo de llegada/salida se añade solo una vez, no dos veces.

Digamos que hay cinco órdenes coincidentes en un edificio alto y a las que dan servicio tres rutas diferentes. Esto significa que se incurrirían en tres retrasos de llegada/salida; es decir, tres conductores tendrían que buscar aparcamiento y entrar en el mismo edificio. Sin embargo, si solo una ruta pudiera dar servicio a las órdenes en su lugar, solo tendría que aparcar un conductor y entrar en el edificio, solo se incurriría en un retraso de llegada/salida. Dado que el solucionador de VRP intenta minimizar el coste, intentará limitar los retrasos de llegada/salida y, de este modo, elegir la opción de ruta única. (Observe que es posible que sea necesario enviar varias rutas cuando otras restricciones, tales como especialidades, ventanas de tiempo o capacidades, lo requieran.)

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

Capacidades

La cantidad máxima (por ejemplo, volumen, pese, cantidad) que se puede transportar en el vehículo. Si un vehículo puede transportar un máximo de 40.000 libras, entonces Cálculo de capacidad en el cuadro de diálogo Propiedades de capa de la capa del análisis se debería establecer en 1y Capacidades se debería establecer en 40.000. De igual forma, si un vehículo puede llevar 1.000 pies cúbicos, el Cálculo de capacidad se debería establecer en 1y Capacidades se debería establecer en 1000.

PrecauciónPrecaución:

El solucionador de VRP solo realiza una comprobación booleana simple para determinar si se superan las capacidades. Si el valor de capacidad de una ruta es mayor o igual a la cantidad total transportada, el solucionador de VRP supondrá que la carga cabe en el vehículo. Esto podría ser incorrecto, dependiendo de la forma real de la carga y el vehículo. Por ejemplo, el solucionador de VRP le permite ajustar una esfera de 1.000 pies cúbicos en un camión de 1.000 pies cúbicos que tiene 8 pies de ancho. En realidad, sin embargo, dado que la esfera tiene un diámetro de 12,6 pies, no cabría en el camión de 8 pies de ancho.

Si hay varias capacidades, tal y como se especifica en el parámetro Cálculo de capacidad de la capa del análisis, los valores de Capacidades se separan mediante un espacio. Por ejemplo, cuando se utilizan el peso y volumen máximo del vehículo, el Cálculo de capacidad en el cuadro de diálogo Propiedades de capa de la capa del análisis se debería establecer en 2; si el vehículo puede llevar un peso de 40.000 libras y un volumen de 2.000 pies cúbicos, Capacidades se debería establecer en 40000 2000.

Una cadena vacía o un valor nulo equivale a que todos los valores son cero. Los valores de capacidad no pueden ser negativos.

Si la cadena Capacidades tiene un número de valores insuficiente en relación al recuento de capacidad, los valores restantes se tratan como cero.

FixedCost

Un coste monetario fijo en el que solo se incurre si la ruta se utiliza en una solución (es decir, tiene órdenes asignadas a la misma). Este campo puede contener valores nulos; un valor nulo indica un coste fijo cero. Este coste forma parte del coste operativo de ruta total.

CostPerUnitTime

El coste monetario incurrido, por tiempo unitario de trabajo, para la duración total de la ruta, incluidos los tiempos de viaje así como los tiempos de servicio y de espera en órdenes, depósitos y descansos. Este campo no puede contener un valor nulo y tiene un valor predeterminado de 1,0.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CostPerUnitDistance

El coste monetario incurrido, por unidad de distancia viajada, para la longitud de la ruta (distancia de viaje total). Este campo puede contener valores nulos; un valor nulo indica un coste cero.

La unidad de distancia viene especificada por la propiedad Unidades de campo de distancia de la capa de análisis.

El solucionador devolverá un error si se proporciona un valor a este campo y no se especifica la propiedad Atributo de distancia para la capa del análisis.

OvertimeStartTime

La duración de tiempo de trabajo normal antes de que se inicie el cálculo de horas extra. Este campo puede contener valores nulos; un valor nulo indica que no se aplican horas extraordinarias.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

Por ejemplo, si al conductor se le pagan horas extra cuando la duración de ruta total supera las ocho horas, entonces OvertimeStartTime se especifica como 8 si la propiedad Unidades de campo de tiempo de la capa del análisis está establecida en Horas.

CostPerUnitOvertime

El coste monetario en el que se incurre por unidad de tiempo de hora extra. Este campo puede contener valores nulos; un valor nulo indica que el valor CostPerUnitOvertime es igual que el valor CostPerUnitTime.

MaxOrderCount

El máximo número permitido de órdenes en la ruta. Este campo no puede contener valores nulos y tiene un valor predeterminado de 30.

MaxTotalTime

La duración máxima permitida de la ruta. La duración de la ruta incluye los tiempos de viaje, así como los tiempos de servicio y de espera en órdenes, depósitos y descansos. Este campo puede contener valores nulos; un valor nulo indica que no hay ninguna restricción en la duración de la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

MaxTotalTravelTime

El tiempo de viaje máximo permitido para la ruta. El tiempo de viaje incluye solo el tiempo empleado en conducir en la red y no incluye tiempos de servicio o de espera.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

Este campo puede contener valores nulos; un valor nulo indica que no hay ninguna restricción en el tiempo máximo de viaje permitido. Este valor de campo no puede ser mayor que el valor del campo MaxTotalTime.

MaxTotalDistance

La distancia de viaje máxima permitida para la ruta.

La unidad para la distancia total viene especificada por la propiedad Unidades de campo de distancia de la capa de análisis.

Este campo puede contener valores nulos; un valor nulo indica que no hay ninguna restricción en la distancia máxima de viaje permitida.

El solucionador devolverá un error si se proporciona un valor a este campo y no se especifica la propiedad Atributo de distancia para la capa del análisis.

SpecialtyNames

Una cadena separada por espacios contiene los nombres de las especialidades admitidas por la ruta. Un valor nulo indica que la ruta no admite ninguna especialidad. Este campo es una clave externa al campo Nombre en la tabla Especialidades. Los objetos de especialidad deben existir antes de que aparezcan en la lista SpecialtyNames.

AssignmentRule

Esto especifica si se puede utilizar la ruta o no al resolver el problema. Un dominio de valores restringe este campo y los valores posibles son los siguientes:

  • Incluir: la ruta está incluida en la operación de resolución. Este es el valor predeterminado.
  • Excluir: la ruta está excluida de la operación de resolución.

Campos de salida de rutas

Campo de salida

Descripción

Shape

La forma de línea de la ruta. Si la propiedad Tipo de forma de salida de la capa de análisis no está establecida en Ninguno, no se devuelve ninguna forma. Al establecer la propiedad Tipo de forma de salida en Línea recta, se devuelven líneas de ruta rectas que conectan cada par de visitas consecutivas. Forma verdadera con medidas y Forma verdadera devuelven líneas que trazan sus rutas correspondientes en la red, la diferencia es que Forma verdadera con medidas devuelve una línea a la que el tiempo ya hace referencia linealmente.

ViolatedConstraints

Este campo contiene un resumen de restricciones infringidas y está establecido después una operación de resolución. Si una ruta provoca la infracción de una restricción, se puede asignar al campo una combinación de una o más infracciones mostradas a continuación.

InmersiónInmersión:

El valor codificado que representa la descripción de texto se muestra en la lista siguiente entre paréntesis. Observe que los valores codificados forman parte de una secuencia geométrica que aumenta duplicando el último valor. Esto permite codificar varias combinaciones de infracciones. Por ejemplo, la combinación de Capacidad excedida (2) y Zona de ruta difícil (128) se codifica como 130 (2 +128).

  • Superado MaxOrderCount (1) Las órdenes preasignadas no se pueden asignar a la ruta dado que la asignación de órdenes superaría el número máximo de órdenes que se pueden asignar a la ruta tal como especifica el valor de campo MaxOrderCount de la ruta.
  • Capacidad excedida (2) Las órdenes preasignadas no se pueden asignar a la ruta ya que la asignación de las órdenes superaría la capacidad total de la ruta tal como especifica el valor de campo Capacidades de la ruta.
  • Superado MaxTotalTime (4) El tiempo de viaje desde el depósito inicial al depósito final más los tiempos de espera y servicio en ambos depósitos y cualquier corte que supere el tiempo total de la ruta tal como especifica el valor de campo MaxTotalTime de la ruta.
  • Superado MaxTotalTravelTime (Tiempo total de viaje máximo) (8) El tiempo de viaje desde el depósito inicial al depósito final supera el tiempo de viaje total de la ruta tal como se especifica en el valor de campo MaxTotalTravelTime de la ruta.
  • Superado MaxTotalDistance (Distancia total máxima) (16) La distancia de viaje desde el depósito inicial al depósito final supera la distancia de viaje total de la ruta tal y como especifica el valor de campo MaxTotalDistance de la ruta.
  • Ventana de tiempo estricta (32) Existe una infracción de ventana de tiempo estricta en el depósito inicial, depósito final o corte asociado a la ruta.
  • Especialidad no concordada (64) Las especialidades requeridas por una orden no se encuentran en la ruta de destino.
  • Zona de ruta difícil (128) Una orden que se preasignó a la ruta no cae dentro de una zona de ruta difícil.
  • Superado MaxTransitTime (Tiempo de tránsito máximo) de par de órdenes (256) Existe un par de órdenes preasignadas a la ruta y al asignar las órdenes al par de órdenes se superaría el tiempo de tránsito máximo para el par de órdenes tal como se especifica en el valor de campo MaxTransitTime del par de órdenes.
  • Violación de par de órdenes (512) Una orden pertenece a un par de órdenes y no se puede asignar a la ruta preasignada.
  • Inalcanzable (1024) Hay una orden preasignada ubicada en un elemento de red que no puede ser alcanzado por la ruta.
  • No se pueden insertar las interrupciones solicitadas (2048) Un corte para la ruta tiene un valor de secuencia nulo en presencia de órdenes preasignadas y el corte no se puede insertar en cualquier parte sin introducir otras infracciones.
  • No se pueden insertar las renovaciones solicitadas (4096) Una ruta supera su capacidad y necesita visitar una renovación de ruta, la renovación de ruta asociada tiene un valor de secuencia nulo en presencia de órdenes preasignadas y no se puede insertar en cualquier parte sin introducir otras infracciones.
  • Se excedió MaxTravelTimeBetweenBreaks (8192) El solucionador no ha podido insertar un corte en el tiempo especificado por el campo MaxTravelTimeBetweenBreaks del corte. Esto suele producirse al preasignar una secuencia a un corte tal que no se puede alcanzar en el tiempo de viaje máximo.

  • Superado Break MaxCumulWorkTime (16384) El solucionador no ha podido insertar un corte en el tiempo especificado por el campo MaxCumulWorkTime del corte. Esto suele producirse al preasignar una secuencia a un corte tal que no se puede alcanzar en el tiempo de trabajo máximo.

OrderCount

El número de órdenes asignadas a la ruta.

TotalCost

El coste operativo total de la ruta, que es la suma de los siguientes valores de campo:

  • FixedCost
  • RegularTimeCost
  • OvertimeCost
  • DistanceCost

RegularTimeCost

El coste de horas de trabajo normales, excluido cualquier corte no pagado.

OvertimeCost

El coste de trabajo en horas extra, excluidos los cortes no pagados.

DistanceCost

El componente de coste de distancia obtenido multiplicando los valores de campo TotalDistance y CostPerUnitDistance. Este valor de campo es nulo si no se especifica la propiedad Atributo de distancia para la capa de análisis.

TotalTime

La duración total de la ruta. Esto incluye los tiempos de viaje, así como los tiempos de servicio y de espera en órdenes, depósitos y cortes. El valor TotalTime es la suma de los siguientes valores de campo:

  • StartDepotServiceTime
  • EndDepotServiceTime
  • TotalOrderServiceTime
  • TotalBreakServiceTime
  • TotalRenewalServiceTime
  • TotalWaitTime
  • TotalTravelTime

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TotalOrderServiceTime

El tiempo de servicio total empleado en todas las órdenes en la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TotalBreakServiceTime

El tiempo de servicio total empleado en todos los cortes en la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TotalTravelTime

El tiempo de viaje total para la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TotalDistance

La distancia de viaje total para la ruta.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

StartTime

La hora de inicio de la ruta. La ruta puede empezar antes del comienzo de su ventana de tiempo de depósito inicial, en cuyo caso hay un tiempo de espera en el depósito inicial.

Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día se toma del elemento de red en el que se encuentra el depósito inicial.

EndTime

El tiempo de finalización de la ruta. La ruta finaliza al completar el servicio en el depósito final.

Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día se toma del elemento de red en el que se encuentra el depósito final.

TotalWaitTime

El tiempo de espera total en todas las órdenes, depósitos y cortes en la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TotalViolationTime

El tiempo de infracción total en todas las órdenes y cortes en la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

RenewalCount

Para una ruta con reanudaciones, equivale al número de visitas a depósitos para reanudación.

TotalRenewalServiceTime

Para una ruta con reanudaciones, el tiempo de servicio total empleado en todas las visitas de renovación en la ruta.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

Capa de entidades Visitas a depósito

Cuando se inicia una ruta, se renueva (descargas o recargas) o finaliza en un depósito, se crea una visita a depósito. Los objetos de visita a depósito proporcionan información relativa a porqué una ruta ha visitado un depósito y qué ha ocurrido allí. La cantidad de bienes cargados o descargados de un vehículo en un depósito se registra en las propiedades de una visita a depósito. También se incluye información adicional que resulta útil para interpretar una solución de problema de generación de rutas para vehículos.

Se trata de una clase de análisis de red de solo resultado. Las entidades de visita a depósito se crean estrictamente durante la operación de resolución; por consiguiente, la clase de análisis siempre está vacía antes del proceso de resolución.

Propiedades Visitas a depósito

Campos de salida de Visitas a depósito

Campo de salida

Descripción

ID de objeto

Campo ID administrado por el sistema.

Shape

Campo de geometría que indica la ubicación geográfica del objeto de análisis de red.

DepotName

El nombre del depósito visitado. Este campo es una clave externa al campo Nombre en la clase de análisis de red Depósitos.

Si la ruta utiliza un depósito virtual, lo que significa que la ruta empieza o finaliza en una orden en lugar de un depósito, DepotName es nulo.

RouteName

El nombre de la ruta que contiene esta visita. Este campo es una clave externa al campo Nombre en la capa de entidades Rutas.

Secuencia

Indica la secuencia del depósito visitado en la ruta. Los valores de secuencia de salida para una ruta se comparten en las visitas a depósito, órdenes y cortes; empiezan a partir de 1 (en el depósito de inicio); y son consecutivos.

VisitType

La razón por la que se visitó este depósito. Un dominio de valores restringe este campo:

  • Depósito inicial
  • Depósito final
  • Depósito de reanudación

ServiceTime

El tiempo del servicio (como carga o descarga) en el depósito.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

FromPrevTravelTime

El tiempo de viaje de la visita anterior en la ruta al depósito.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

FromPrevDistance

La distancia de viaje de la visita anterior en la ruta al depósito.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

CumulTravelTime

El tiempo de viaje acumulado para la ruta hasta la llegada a este depósito.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulDistance

La distancia de viaje acumulada para la ruta hasta la llegada a este depósito.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

CumulTime

La duración acumulada de la ruta hasta el depósito incluido. La duración acumulada incluye los tiempos de viaje, así como los tiempos de servicio y de espera en órdenes, depósitos y cortes.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

ArriveTime

La hora de llegada al depósito. La ruta puede llegar al depósito antes del inicio de la ventana de tiempo del depósito, en cuyo caso hay un tiempo de espera en el depósito.

Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día es igual a la del elemento de red en el que se encuentra el depósito.

DepartTime

La hora de salida del depósito.

Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día es igual a la del elemento de red en el que se encuentra el depósito.

WaitTime

El tiempo de espera en el depósito.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulWaitTime

El tiempo de espera acumulado desde el principio de la ruta hasta el depósito incluido.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulViolationTime

El tiempo de infracción acumulado desde el principio de la ruta hasta el depósito incluido.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

TotalLoadedQuantities

La cantidad (por ejemplo, volumen, peso, cantidad) que se carga en el depósito. Si hay varias capacidades, tal y como se especifica en la propiedad Cálculo de capacidad de la capa del análisis, se separan mediante un espacio. Por ejemplo, en caso de entregas, el valor del campo TotalLoadedQuantities indica la cantidad real de bienes entregada por el vehículo antes de volver a un depósito. Este valor es menor o igual que el valor de campo Capacidades para una ruta determinada, indicando que la ruta la realiza un camión de entregas.

TotalUnloadedQuantities

La cantidad (por ejemplo, volumen, peso, cantidad) que se descarga en el depósito. Si hay varias capacidades, tal y como se especifica en la propiedad Cálculo de capacidad de la capa del análisis, se separan mediante un espacio. Por ejemplo, en caso de recogidas o rutas con reanudaciones, el valor del campo de TotalUnloadedQuantities indica la cantidad real de bienes recogidos por el vehículo y llevados al depósito. Este valor es menor o igual que el valor de campo Capacidades para una ruta determinada, indicando que la ruta la realiza un camión de recogidas.

NotaNota:

No hay ningún campo de salida ViolationTime en la capa de entidad Visitas a depósito dado que los depósitos tienen ventanas de tiempo estrictas.

Clase de cortes

Se trata de una clase de análisis de red no espacial que almacena los períodos de descanso, o cortes, para las rutas en un problema de generación de rutas para vehículos. Un corte está asociado a una ruta exactamente y puede realizarse después de finalizar una orden, mientras se encuentra en ruta para dar servicio a una orden o antes de dar servicio a una orden. Tiene una hora de inicio y una duración, y el conductor puede cobrar o no durante el mismo. Tiene tres opciones para establecer cuando inicia un corte: puede ingresar una ventana de tiempo, una hora de viaje máximo o una hora de trabajo máximo.

  • Time-window break Para configurar un corte de ventana de tiempo introduzca dos valores de hora del día para delimitar un intervalo de tiempo en el que debe comenzar el corte. Los campos TimeWindowStart y TimeWindowEnd contienen los valores delimitadores de hora del día. La duración o tiempo de servicio, del corte es independiente de la ventana de tiempo y, por consiguiente, se puede extender más allá del final de la ventana de tiempo. Por ejemplo, si la ventana de tiempo para un corte de una hora de duración abarca desde las 10:00 a.m. a las 10:15 a.m., el corte debería iniciarse después de las 10:00 a.m. pero antes de las 10:15 a.m. Si inicia a las 10:10 a.m., el corte finalizará a las 11:10 a.m.

  • Maximum-travel-time break Con esta clase de corte, se especifica cuánto tiempo puede conducir una persona antes de que sea necesario realizar un corte. (Observe que solo se limita el tiempo de viaje, no otros tiempos como la espera y los tiempos de servicio.) Si introduce cuatro horas en la propiedad MaxTravelTimeBetweenBreaks del primer corte, por ejemplo, el conductor recibirá un corte antes de que el tiempo de viaje acumulado desde el inicio de la ruta supere las cuatro horas. Para los siguientes cortes, el tiempo de viaje se acumula a partir del corte anterior. Así si tiene un segundo corte con un valor MaxTravelTimeBetweenBreaks de dos horas, el segundo corte se realizará antes de que se hayan acumulado dos horas de tiempo de viaje a partir del corte anterior, no desde el depósito de inicio.

    El corte de tiempo de viaje máximo final de una ruta no solo limita la cantidad de tiempo de viaje acumulado del corte anterior o inicio de la ruta, sino que también limita el tiempo de viaje desde el corte final al depósito final. Esto se cumple incluso aunque solo haya un corte. El solucionador de VRP está diseñado de esta manera para impedir que una ruta haga todos los cortes, viajando durante un período prologando sin realizar otro corte. En el último ejemplo, MaxTravelTimeBetweenBreaks se estableció en dos horas. Si éste es el corte final de la ruta, la ruta debe poder alcanzar el depósito final en un plazo de dos horas de tiempo de viaje a partir del corte final; de lo contrario, el solucionador devolverá un error.

  • Maximum-work-time break Este corte especifica durante cuánto tiempo puede trabajar una persona antes de que sea necesario realizar un corte. A diferencia de los cortes de tiempo máximo de viaje, que pueden acumular tiempo de viaje a partir del final del último corte, los cortes de tiempo máximo de trabajo siempre acumulan tiempo de trabajo desde el inicio de la ruta, incluidos los tiempos de servicio en el depósito de inicio.

    Observe que este corte limita el tiempo de trabajo acumulado, que incluye el tiempo de viaje y todos los tiempos de servicio; sin embargo, excluye el tiempo de espera.

Una capa de análisis de problema de generación de rutas para vehículos solo se puede resolver si todos los cortes son del mismo tipo; es decir, el proceso de resolución fallará si hay alguna combinación de cortes de ventana de tiempo, tiempo máximo de viaje y tiempo máximo de trabajo.

Puede especificar hasta cinco cortes para una ruta única. Por ejemplo, suponga que está utilizando cortes de tiempo máximo de viaje para un análisis. Podría asignar dos cortes a una ruta de modo que una vez acumuladas dos horas de tiempo de viaje, el conductor pueda descansar durante 15 minutos y después de dos horas más de viaje, pueda parar durante una hora para el almuerzo. Podría tener otras rutas con hasta cinco cortes asignados a las mismas.

Los cortes tienen un campo Precedence que los ordena en secuencia. De esta manera, si desea que un corte de 15 minutos aparezca antes de un corte de una hora, el valor de precedencia del corte de 15 minutos debería ser 1 y el valor de precedencia del otro debería ser 2. La precedencia se requiere para todos los cortes, aunque los cortes de tiempo máximo de trabajo y de ventana de tiempo tengan inherentemente un orden cronológico.

Si una ruta alcanza el último destino antes de haber tomado todo el tiempo máximo de viaje o los cortes de tiempo de trabajo máximo, se omiten los cortes restantes. Si queda algún corte de ventana de tiempo al final de una ruta, la ruta esperará hasta que se hayan tomado todos los cortes antes de finalizar en lugar de terminar temprano.

Propiedades de cortes

Campos de entrada de Cortes

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

TimeWindowStart

La hora de inicio de la ventana de tiempo del descanso.

Si este campo es nulo y TimeWindowEnd tiene un valor de hora del día válido, se permite que el descanso empiece en cualquier momento antes del valor TimeWindowEnd.

Si este campo tiene un valor, MaxTravelTimeBetweenBreaks y MaxCumulWorkTime deben ser nulos; es más, todos los demás descansos de la capa del análisis deben tener valores nulos para MaxTravelTimeBetweenBreaks y MaxCumulWorkTime.

Durante la resolución aparecerá un error si una ruta tiene varios descansos con ventanas de tiempo solapadas.

Los campos de ventana de tiempo en los cortes pueden contener un valor de solo hora o un valor de fecha y hora. Si un campo de tiempo tal como TimeWindowStart tiene un valor solo de tiempo (por ejemplo, 12:00 AM), se asume que la fecha es la fecha especificada por la propiedad Fecha predeterminada de la capa de análisis. El uso de valores fecha y hora (por ejemplo, 11/7/2012 12:00 PM) le permite especificar ventanas de tiempo que abarquen dos o más días. Esto es especialmente beneficioso cuando se debe realizar un corte algún tiempo antes y después de la medianoche.

Al utilizar los dataset de red con datos de tráfico en varias zonas horarias, la zona horaria para TimeWindowStart y TimeWindowEnd se supone que es igual a la zona horaria del eje o cruce donde se encuentra el depósito inicial.

TimeWindowEnd

La hora de finalización de la ventana de tiempo del descanso.

Si este campo es nulo y TimeWindowStart tiene un valor válido de hora del día, se permite que el descanso comience en cualquier momento después del valor TimeWindowStart.

Si este campo tiene un valor, MaxTravelTimeBetweenBreaks y MaxCumulWorkTime deben ser nulos; es más, todos los demás descansos de la capa del análisis deben tener valores nulos para MaxTravelTimeBetweenBreaks y MaxCumulWorkTime.

Vea la descripción de TimeWindowStart (anteriormente) para obtener más información.

MaxTravelTimeBetweenBreaks

La cantidad máxima de tiempo de viaje que se puede acumular antes de realizar un descanso. El tiempo de viaje se acumula desde el fin del descanso anterior o, si todavía no se ha realizado un descanso, desde el inicio de la ruta.

Si se trata del descanso final de la ruta, MaxTravelTimeBetweenBreaks también indica el tiempo máximo de viaje que se puede acumular desde el descanso final al depósito final.

Esta propiedad está diseñada para limitar cuánto tiempo puede conducir una persona hasta que sea necesario un corte. Por ejemplo, si la propiedad Unidades de campo de tiempo de la capa del análisis está establecida en Minutos, y MaxTravelTimeBetweenBreaks tiene un valor de 120, el conductor obtendrá un corte después de conducir dos horas. Para asignar un segundo corte después de dos horas más de conducción, la propiedad MaxTravelTimeBetweenBreaks del segundo corte debería ser 120.

Si este campo tiene un valor, TimeWindowStart, TimeWindowEnd, MaxViolationTime y MaxCumulWorkTime deben ser nulos que el análisis se resuelva correctamente.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

MaxCumulWorkTime

La cantidad máxima de tiempo de trabajo que se puede acumular antes de realizar un descanso. El tiempo de trabajo siempre se acumula desde el inicio de la ruta.

El tiempo de trabajo es la suma de tiempo de viaje y de los tiempos de servicio en órdenes, depósitos y descansos. Tenga en cuenta, sin embargo, que esto excluye el tiempo de espera, que es el tiempo que una ruta (o conductor) espera en una orden o depósito a que comience una ventana de tiempo.

Esta propiedad está diseñada para limitar cuánto tiempo puede trabajar una persona hasta que sea necesario un corte. Por ejemplo, si la propiedad Unidades de campo de tiempo de la capa del análisis está establecida en Minutos, MaxCumulWorkTime tiene un valor de 120 y ServiceTime tiene un valor de 15, el conductor obtendrá un corte de 15 minutos tras dos horas de trabajo.

Continuando con el último ejemplo, suponga que se necesita un segundo descanso después de tres horas más de trabajo. Para especificar este descanso, introduciría 315 (cinco horas y 15 minutos) como valor MaxCumulWorkTime del segundo descanso. Este número incluye los valores de MaxCumulWorkTime y ServiceTime del descanso anterior, junto con las tres horas adicionales de trabajo antes de conceder el segundo descanso. Para evitar realizar descansos de tiempo de trabajo máximo prematuramente, recuerde que acumulan el tiempo de trabajo desde el principio de la ruta y ese tiempo de trabajo incluye el tiempo de servicio en los depósitos, órdenes y descansos visitados previamente.

Si este campo tiene un valor, TimeWindowStart, TimeWindowEnd, MaxViolationTime y MaxTravelTimeBetweenBreaks deben ser nulos que el análisis se resuelva correctamente.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

RouteName

El nombre de la ruta a la que se aplica el descanso. Aunque un descanso se asignado a exactamente una ruta, puede haber muchos descansos asignados a la misma ruta.

Este campo es una clave externa para el campo Nombre en la clase Routes y no puede tener un valor nulo.

Los objetos de ruta deben existir antes de que aparezcan en la lista desplegable RouteName.

Precedencia

Los valores de precedencia ordenan en secuencia los descanso de una ruta determinada. Los descansos con un valor de precedencia de 1 aparecen antes de aquéllos con un valor 2, etc.

Todos los descansos deben tener un valor de precedencia, sin tener en cuenta si son descansos de ventana de tiempo, tiempo máximo de viaje o tiempo máximo de trabajo.

ServiceTime

La duración del descanso. Este campo puede contener valores nulos; un valor nulo indica que no hay tiempo de servicio.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

MaxViolationTime

Este campo especifica el tiempo de infracción máximo permitido para una ventana de tiempo de descanso. Se considera que se ha infringido una ventana de tiempo si la hora de llegada fuera del intervalo de tiempo.

Un valor cero indica que no se puede infringir la ventana de tiempo; es decir, la ventana de tiempo es estricta. Un valor distinto de cero especifica la cantidad máxima de retraso; por ejemplo, el corte puede comenzar hasta 30 minutos después del final de su ventana de tiempo, pero el retraso se penaliza según la propiedad Violaciones de ventana de tiempo de la capa del análisis.

Esta propiedad puede ser nula; un valor nulo con valores TimeWindowStart y TimeWindowEnd indica que no hay ningún límite en el tiempo de infracción permitido. Si MaxTravelTimeBetweenBreaks o MaxCumulWorkTime tiene un valor, MaxViolationTime debe ser nulo.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

IsPaid

Un valor booleano que indica si se paga o no durante el descanso. Un valor True indica que el tiempo dedicado en el descanso está incluido en el cálculo de coste de la ruta y la determinación de horas extra. Un valor False indica lo contrario. El valor predeterminado es True.

Campos de entrada/salida de Cortes

Campo de entrada/salida

Descripción

Secuencia

Como campo de entrada, indica la secuencia del descanso en su ruta. Este campo puede contener valores nulos. Los valores de secuencia de entrada son positivos y únicos para cada ruta (compartida en las visitas a depósito de renovación, órdenes y descansos), pero no tienen que empezar a partir de 1 o ser contiguos.

El solucionador modifica el campo de secuencia. Después de la resolución, este campo contiene el valor de secuencia del descanso en su ruta. Los valores de secuencia de salida para una ruta se comparten en las visitas a depósito, órdenes y descansos; empiezan a partir de 1 (en el depósito de inicio); y son consecutivos.

Campos de salida de Cortes

Campo de salida

Descripción

RelativePosition

Posición relativa del corte. Los cortes se realizan en alguna parte entre dos ubicaciones de red (órdenes o depósitos). Un valor de 0,0 indica que el corte se realiza justo después de finalizar el servicio en la ubicación de red anterior; un valor de 1,0 indica que el corte se realiza justo antes de iniciar el servicio en la ubicación de red subsiguiente; y un valor intermedio indica dónde se realiza el corte a lo largo de la ruta de acceso de la primera a la segunda ubicación de red. Por ejemplo, 0,25 indica que el corte se realiza a un cuarto del camino respecto a la ubicación de red anterior hacia la próxima ubicación de red.

No importa cuántos cortes se produzcan entre dos ubicaciones de red, la posición relativa siempre se notifica en relación a las ubicaciones de red, no a los demás cortes.

FromPrevTravelTime

El tiempo de viaje de la orden, depósito o corte anterior hasta este corte.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

FromPrevDistance

La distancia de viaje de la orden, depósito o corte anterior hasta este corte.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

CumulTravelTime

El tiempo de viaje acumulado para la ruta hasta la llegada a el corte.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulDistance

La distancia de viaje acumulado para la ruta hasta la llegada al corte.

La unidad para este valor de campo la especifica la propiedad Distance Field Units de la capa de análisis. Este campo es nulo si no se especifica la propiedad Distance Attribute en los parámetros de análisis.

CumulTime

La duración acumulada de la ruta hasta el corte incluido. La duración acumulada incluye los tiempos de viaje, así como los tiempos de servicio y de espera en órdenes, depósitos y cortes.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

ArriveTime

La hora de llegada real del corte. La ruta puede llegar al corte antes del inicio de la ventana de tiempo del corte, en cuyo caso hay un tiempo de espera en el corte. Para un corte con ventanas de tiempo no estrictas, la ruta puede llegar también al corte después del final de la ventana de tiempo, en cuyo caso hay un tiempo de infracción en el corte.

Si se utilizan datos de tráfico con varias zonas horarias, el tiempo se notifica en la zona horaria del depósito inicial de la ruta asociada.

DepartTime

La hora a la que se completa el corte.

Si se utilizan datos de tráfico con varias zonas horarias, el tiempo se notifica en la zona horaria del depósito inicial de la ruta asociada.

WaitTime

El tiempo de espera en el corte.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

ViolationTime

El tiempo de infracción en el corte.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulWaitTime

El tiempo de espera acumulado desde el principio de la ruta hasta el corte incluido.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

CumulViolationTime

El tiempo de infracción acumulado desde el principio de la ruta hasta el corte incluido.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

Clase Zonas de ruta

Las zonas de ruta especifican un territorio de trabajo para una ruta determinada. Una zona de ruta es una entidad poligonal y se utiliza para restringir rutas para que den servicio solo a las órdenes que quedan dentro o cerca de un área. Aquí se muestran algunos ejemplos que indican cuándo pueden ser útiles las zonas de ruta:

  • Algunos de los empleados no tienen los permisos requeridos para realizar el trabajo en ciertos estados o comunidades. Puede crear una zona de ruta estricta de modo que solo visiten órdenes en aquellas áreas en las que cumplen los requisitos.
  • Uno de los vehículos se estropea con frecuencia de forma que desea minimizar el tiempo de respuesta haciendo que solo visite aquellas órdenes que queden cerca del garaje de mantenimiento. Puede crear una zona de ruta estricta o no estricta para mantener el vehículo cerca.

Si utiliza zonas de ruta en el análisis, no puede utilizar tampoco puntos de semilla de ruta.

Propiedades de la zona de ruta

Campos de entrada de Zonas de ruta

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

Shape

Campo de geometría que indica la ubicación geográfica del objeto de análisis de red.

RouteName

El nombre de la ruta a la que se aplica esta zona. Una zona de ruta puede tener un máximo de una ruta asociada. Este campo no puede contener valores nulos y es una clave externa al campo Nombre en la capa de entidades Rutas.

Los objetos de ruta deben existir antes de que aparezcan en la lista RouteName.

IsHardZone

Un valor booleano que indica una zona de ruta estricta o no. Un valor True indica que la zona de ruta es estricta; es decir, una orden que caiga fuera del polígono de la zona de ruta no se puede asignar a la ruta. El valor predeterminado es Verdadero (1). Un valor Falso (0) indica que tales órdenes se pueden seguir asignando, pero el coste de dar servicio a la orden se pondera mediante función basada en la distancia euclidiana desde la zona de ruta. Básicamente, esto significa que como la distancia en línea recta desde la zona no estricta a la orden aumenta, disminuye la probabilidad de asignar la orden a la ruta.

NotaNota:

  • Puesto que la distancia euclidiana se utiliza para medir la distancia entre la zona de ruta y las órdenes, el atributo de distancia basado en red no es requerido.
  • Aunque una ruta asociada a una zona de ruta estricta solo puede dar servicio a órdenes dentro de la zona de ruta, se pueden seguir introduciendo otras rutas y dar servicio a las órdenes dentro de la misma zona. Esto se debe a que las zonas de ruta restringen la ruta, no las órdenes. (Si desea asignar todas las órdenes de un área exclusivamente a una ruta, no utilice las zonas de ruta; en su lugar, seleccione las órdenes en una área, cambie el campo RouteName de las órdenes a la ruta adecuada y establezca el campo AssignmentRule (regla de asignación) en Conservar la ruta.)

Clase Puntos de semilla de ruta

Esta clase de análisis de red almacena los puntos de semilla de ruta que forman parte de una capa de análisis de problema de generación de rutas para vehículos determinada. Los puntos de semilla de ruta se utilizan para especificar el clustering basado en puntos para las rutas. Normalmente, mientras más cerca está una orden al punto de semilla de una ruta, más probabilidad existe de asignar la orden a dicha ruta, siempre que se cumplan los demás criterios, como especialidades y capacidades. La agrupación de órdenes podría dar como resultado rutas que cubren un área más pequeña y que no intersecan a otras rutas tanto, pero el coste global de la solución podría ser mayor. Es posible que desee utilizar puntos de semilla para mantener a los conductores en vecindarios o regiones generales con las que están familiarizados o podría desear haber dividido las rutas en compartimentos si así resultan más fáciles de administrar para la organización.

Aquí hay algunas reglas y opciones a tener en cuenta al trabajar con puntos de semilla de ruta:

  • Una ruta puede tener un punto de semilla de ruta preasignado o el solucionador de VRP puede calcular el punto de semilla.
  • Si utiliza puntos de semilla de ruta en el análisis, no puede utilizar zonas de ruta.
  • Si se utilizan los puntos de semilla, se debe asignar un punto de semilla de ruta a cada ruta.
  • No se pueden combinar los tipos de punto de semilla de ruta; la clase de análisis de red debe todos los puntos de semilla dinámicos o todos estáticos.

Los puntos de semilla de ruta son entidades de puntos; sin embargo, no son ubicaciones de red. Por tanto, no tienen campos de ubicación de red.

Clase Puntos de semilla de ruta

Campos de entrada de Puntos de semilla de ruta

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

RouteName

El nombre de la ruta a la que se aplica este punto de semilla. Hay a lo sumo un punto de semilla de ruta por ruta. Este campo no puede contener valores nulos y es una clave externa para el campo Nombre en la clase Routes. Los objetos de ruta deben existir antes de que aparezcan en la lista RouteName.

SeedPointType

El tipo de punto de semilla. Un campo está restringido por un dominio de valores y los valores posibles son Estático y Dinámico. Este campo tiene un valor predeterminado de Estático.

En el caso de puntos de semilla estáticos, especifique donde está el punto de semilla de ruta y el solucionador intenta agrupar la ruta alrededor de la localización de punto de la semilla. En el caso de puntos de semilla dinámicos, agregue el punto de semilla en cualquier parte del mapa, las órdenes se agrupan durante el proceso de resolución, a continuación, el punto de la semilla se reubica en el centroide de las órdenes de ruta.

Campos de entrada/salida de Puntos de semilla de ruta

Campo de entrada/salida

Descripción

Shape

Como campo de entrada, indica la ubicación de un punto de semilla de ruta. Para un punto de semilla estático, su forma de punto de entrada queda intacto a lo largo del proceso de resolución.

Por otro lado, la forma de entrada se ignora para un punto de semilla dinámico y el solucionador modifica el campo Forma durante el proceso de resolución para mostrar su nueva ubicación.

NotaNota:

La distancia euclidiana se utiliza para medir la distancia entre los puntos de semilla de ruta y las órdenes; por consiguiente, no se requiere el Atributo de distancia basado en red en las propiedades de capa.

Clase Reanudaciones de ruta

La clase Reanudaciones de ruta especifica los depósitos intermedios que pueden visitar las rutas de un análisis de problema de generación de rutas para vehículos para volver a cargar y descargar los artículos que están entregando o recogiendo.

Específicamente, un objeto de análisis de renovación de ruta vincula un objeto de ruta a un objeto de depósito. La relación indica que la ruta se puede reanudar (volver a cargar o descargar) en el depósito asociado.

En algunas industrias, cada ruta consta de uno o más viajes en los que el vehículo entrega o recoge una carga completa y la entrega. Las renovaciones de ruta se pueden utilizar para modelar escenarios en los que un vehículo recoge una carga completa de entregas en el depósito inicial, da servicio a las órdenes, vuelve al depósito para reanudar su carga de entregas y sigue dando servicio a más órdenes. Por ejemplo, en la entrega de gas propano, el vehículo podría realizar varias entregas hasta que el depósito se quede casi vacío o vacío por completo, visita un punto de recarga y realiza más entregas.

Aquí hay algunas reglas y opciones a tener en cuenta al trabajar con puntos de semilla de ruta:

  • El punto de recarga/descarga o la ubicación de reanudación, pueden ser distintos del depósito inicial o final.
  • Cada ruta puede tener una o varias ubicaciones de reanudación predeterminadas.
  • Una ruta única puede utilizar una ubicación de reanudación más de una vez.
  • En algunos casos donde puede haber varias ubicaciones de renovación potenciales para una ruta, el solucionador elige la ubicación de reanudación más cercana disponible.

Propiedades de reanudación de ruta

Campos de entrada de Renovación de ruta

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

DepotName

El nombre del depósito donde tiene lugar esta reanudación. Este campo no puede contener un valor nulo y es una clave externa al campo Nombre en la capa de entidades Depósitos.

Los objetos de depósito deben existir antes de que aparezcan en la lista DepotName.

RouteName

El nombre de la ruta a la que se aplica esta reanudación. Este campo no puede contener un valor nulo y es una clave externa al campo Nombre en la capa de entidades Rutas.

Los objetos de ruta deben existir antes de que aparezcan en la lista RouteName.

ServiceTime

El tiempo del servicio para la reanudación. Este campo puede contener un valor nulo; un valor nulo indica un tiempo de servicio cero.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

NotaNota:

El tiempo que tarda en cargarse un vehículo en un depósito de reanudación puede depender del tamaño del vehículo y de lo lleno o vacío que esté el vehículo. Sin embargo, el tiempo de servicio para una reanudación de ruta es un valor fijo y no tiene en cuenta la carga real. En consecuencia, al tiempo de servicio de reanudación se le debería dar un valor correspondiente a un camión completamente cargado, con una carga media o podría realizar otra estimación de tiempo propia.

Campos de entrada/salida de Renovación de ruta

Campo de entrada/salida

Descripción

Secuencias

Como campo de entrada, especifica una cadena de caracteres separada por espacios de valores de secuencia de visitas al depósito de reanudación. Este campo puede contener un valor nulo y utilizarse para preasignar visitas al depósito de reanudación.

Como campo de salida, el solucionador podría modificar y almacenar la secuencia aquí. Después de la resolución, este campo contiene los valores de secuencia de las visitas a este depósito de reanudación para la ruta relacionada. Si en dicho depósito aparece más de una visita de reanudación en una ruta única, los valores de secuencia se separan mediante un espacio. Los valores de secuencia de salida para una ruta se comparten en las visitas a depósito, órdenes y cortes; empiezan a partir de 1 (en el depósito de inicio); y son consecutivos. Así si una ruta empieza en un depósito, visita dos órdenes, hace una visita de reanudación y continúa, el valor de secuencia en la reanudación es 4.

Clase Especialidades

En esta tabla se muestran las especialidades que pueden requerir las órdenes y admitir las rutas. Una ruta solo puede dar servicio a una orden si admite todas las especialidades requeridas para dicha orden.

Una orden puede requerir a un técnico con una cierta habilidad o un vehículo con ciertas funciones. Estas habilidades, funciones, etc. se modelan añadiéndolas primero en la clase Especialidades. A continuación, agregue las especialidades admitidas por una ruta a su propiedad SpecialtyNames. Finalmente, agregue las especialidades que requiere una a su propiedad SpecialtyNames. Cuando se resuelve el análisis del VRP, las órdenes que requieren ciertas especialidades se asignan a aquellas rutas que pueden proporcionarlas.

Propiedades de especialidades

Campos de entrada de Especialidades

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

Nombre

Nombre del objeto de análisis de red.

Este campo es la clave principal y se utiliza como una clave externa en las capas de entidades Órdenes y Rutas para hacer referencia a especialidades.

Los nombres de especialidades tienen que ser exclusivos y no pueden estar vacíos. Tampoco pueden contener espacios. Así, por ejemplo, una especialidad de técnico senior debería introducirse como TécnicoSenior.

El requisito de no utilizar espacios es necesario porque las órdenes y rutas que están asociadas a varias especialidades muestran nombres de especialidad separados por espacios; por ejemplo, TécnicoSenior Ascensor.

Descripción

La información descriptiva sobre el objeto de análisis de red. Puede contener cualquier información textual y no tiene ninguna restricción de singularidad.

Clase de pares de órdenes

Esta clase de análisis de red es una tabla de registros que se utiliza para emparejar las órdenes de entrega y recogida de modo que sean atendidas en la misma ruta.

A veces se requiere que se emparejen la recogida y entrega de las órdenes. Por ejemplo, para una compañía de mensajería, una entrega de un documento debe implicar dos paradas: una para recoger el documento en el origen y una segunda parada para dejarlo en el destino. Estas paradas relacionadas tienen asignada la misma ruta con la secuencia adecuada. Es prohibido asignar sólo una de las órdenes a una ruta: ya sea que ambas órdenes estén asignadas a la misma ruta, o ninguna orden esté asignada.

Podría haber restricciones sobre cuánto tiempo puede permanecer el paqueteen el vehículo; por ejemplo, una muestra de sangre tiene que ser transportada desde la consulta del médico al laboratorio en un plazo de dos horas.

Algunas situaciones podrían requerir dos pares de órdenes. Por ejemplo, suponga que desea transportar a una persona mayor desde su casa al médico y llevarla de regreso a casa. El trayecto desde su casa al médico es un par de órdenes con una hora de llegada deseada al médico, mientras que el trayecto del médico a casa es otro par con un tiempo de recogida deseado.

Propiedades de par de órdenes

Campos de entrada de Pares de órdenes

Campo de entrada

Descripción

ID de objeto

Campo ID administrado por el sistema.

FirstOrderName

El nombre de la primera orden del par. Este campo es una clave externa al campo Nombre en la capa de entidades Órdenes.

Los objetos de orden deben existir antes de que aparezcan en la lista FirstOrderName.

SecondOrderName

El nombre de la segunda orden del par. Este campo es una clave externa al campo Nombre en la capa de entidades Órdenes.

Los objetos de orden deben existir antes de que aparezcan en la lista SecondOrderName.

La primera orden del par debe ser una orden de recogida; es decir, el valor del campo DeliveryQuantities es nulo. La segunda orden del par debe ser una orden de entrega; es decir, el valor del campo PickupQuantities es nulo. La cantidad que se recoge en la primera orden debe coincidir con la cantidad que se entrega en la segunda orden. Como caso especial, ambas órdenes pueden tener cantidades cero para escenarios donde no se utilizan las capacidades.

NotaNota:

Las cantidades de órdenes no se cargan o descargan en los depósitos.

MaxTransitTime

El tiempo máximo de tránsito para el par. El tiempo de tránsito es la duración de tiempo desde la hora de salida de la primera orden a la hora de llegada en la segunda orden. Esta restricción limita el tiempo en vehículo o tiempo de trayecto, entre las dos órdenes. Cuando un vehículo lleva personas o bienes perecederos, el tiempo de trayecto suele ser más corto que el de un vehículo que transporta paquetes o bienes no perecederos. Este campo puede contener valores nulos; un valor nulo indica que no hay ninguna restricción en el tiempo de trayecto.

La unidad para este valor de campo la especifica la propiedad Time Field Units de la capa de análisis.

El solucionador puede realizar el seguimiento y ponderar el tiempo de tránsito en exceso (medido con respecto al tiempo de viaje directo entre pares de órdenes). Por ello, puede dirigir el solucionador de VRP para que adopte uno de estos tres enfoques: (1) minimizar el tiempo de tránsito en exceso total, sin tener en cuenta el aumento en coste de viaje para la flota; (2) buscar una solución que equilibre el tiempo de infracción total y el coste del viaje; e (3) ignorar el tiempo de tránsito en exceso total y, en su lugar, minimizar el coste de viaje para la flota. Asignando un nivel de importancia para el parámetro Exceso de tiempo de tránsito de la capa del análisis, está eligiendo en efecto uno de estos tres enfoques. Sin tener en cuenta el nivel de importancia, el solucionador devolverá un error siempre si se supera el valor MaxTransitTime.

Barreras de punto, línea y polígono

Las barreras sirven para restringir temporalmente, agregar impedancia y escalar impedancia en partes de la red. Cuando se crea una nueva capa de análisis de red, las clases de barrera están vacías. Solo se llenan al agregarles objetos; no obstante, no es obligatorio agregar barreras.

Las barreras están disponibles en todas las capas de análisis de red; por consiguiente, se describen en un tema separado.

Más información acerca de las barreras

Parámetros de análisis de problema de generación de rutas para vehículos

Los parámetros de análisis se establecen en el cuadro de diálogo Propiedades de capa para la capa de análisis. Puede tener acceso al cuadro de diálogo de diferentes maneras:

Más información sobre cómo abrir el cuadro de diálogo Propiedades de capa del análisis de red

Ficha Configuración de análisis

Las siguientes subsecciones muestran los parámetros que se pueden establecer en la capa de análisis. Se encuentran en la ficha Configuración de análisis del cuadro de diálogo Propiedades de capa de la capa de análisis.

Ficha Configuración de análisis
Configuración de análisis para una capa de análisis de problema de generación de rutas para vehículos

Atributo de tiempo

El atributo de coste de tiempo utilizado para definir el tiempo de recorrido de los elementos de la red. Se requiere el atributo de coste de tiempo, dado que el solucionador del problema de generación de rutas para vehículos minimiza el tiempo.

Más información sobre los atributos de coste

Atributo de distancia

El atributo de coste de distancia utilizado para definir la longitud de los elementos de la red. El atributo de coste de distancia es opcional.

Más información sobre los atributos de coste

Fecha predeterminada

La fecha implícita para valores de campo de tiempo que no tienen una fecha especificada con el tiempo. Si un campo de tiempo para un pedido como TimeWindowStart1, tiene un valor de solo tiempo, la fecha se supone que es la especificada mediante la propiedad Fecha predeterminada. Por ejemplo, si una orden tiene un valor TimeWindowStart1 de 9:00 AM y la Fecha predeterminada es el 6 de marzo de 2011, el valor de hora completo para el campo es 9:00 a.m., 6 de marzo de 2011. Si se cambia el parámetro Fecha predeterminada, la fecha implícita para todos los valores de campo de tiempo con una fecha no especificada es la nueva fecha predeterminada. La fecha predeterminada no tiene ningún efecto sobre los valores de campo de tiempo que ya tienen una hora junto con una fecha determinada.

Si el dataset de red incluye datos de tráfico, los resultados del análisis podrían cambiar dependiendo de la fecha que especifique aquí. Por ejemplo, si las rutas empiezan a las 8:00 a.m. el domingo, cuando no hay mucho tráfico, frente a las 8:00 a.m. el lunes durante la hora punta, en la ruta del lunes se tardaría más tiempo. Es más, la mejor trayectoria podría cambiar dependiendo del estado del tráfico.

Puede elegir entre ingresar un día "flotante" o una fecha calendario. Una fecha calendario tiene un día específico del mes, mes y año. Un día flotante puede ser Hoy o cualquier día de la semana (de domingo a sábado). Los días flotantes le permiten configurar una capa de análisis reutilizable sin tener que acordarse de cambiar la fecha.

Las fechas flotantes son especialmente beneficiosas cuando se usan con la fecha de tráfico ya que el tráfico cambia de minuto a minuto y de día a día. Por ejemplo, si calcula las mismas rutas cada día y necesita tiempos precisos o las mejores de rutas dadas las condiciones de tráfico, puede elegir las configuraciones del Día de la semana y Hoy. El solucionador generará los resultados con base en el tráfico del día actual, el cual se determina desde el sistema operativo del equipo. Si regresa el siguiente día, por ejemplo, 5 de mayo, para actualizar las rutas para ese día, puede volver a resolver la misma capa de análisis. La solución se basará automáticamente en el tráfico del 5 de mayo ya que se estableció el Día de la semana a Hoy.

PrecauciónPrecaución:

Si elige Día de la semana, lo campos de tiempo del objeto de análisis de redes sólo tienen permitido tener valores de tiempo, no pueden tener valores de fecha y hora.

Más información acerca de los datos de tráfico histórico

Cálculo de capacidad

El número de dimensiones de restricción de capacidad requerido para describir los límites pertinentes de los vehículos. En un caso de entrega de orden, cada vehículo puede tener una limitación de peso y volumen que puede transportar a la vez dependiendo de las limitaciones físicas y legales. En este caso, si realiza el seguimiento del peso y volumen en las órdenes, puede utilizar estas dos capacidades para evitar una sobrecarga en los vehículos. El recuento de capacidad en este supuesto es dos (peso y volumen). Dependiendo del problema, es posible que tenga que realizar el seguimiento de distintos tipos o cantidades de capacidades. Las capacidades introducidas en los campos de capacidad (DeliveryQuantities y PickupQuantities para la clase Órdenes y Capacidades para la clase Rutas) son cadenas de números delimitadas por espacios, que pueden contener hasta el número de valores especificado en Cálculo de capacidad. Cada dimensión de capacidad debería aparecer en el mismo orden posicional para todos los valores de campo de capacidad en la misma capa de análisis de VRP. Las capacidades mismas no tienen nombre, por tanto para evitar transponer las dimensiones de capacidad accidentalmente, asegúrese de que las listas de capacidad delimitadas por espacios se introduzcan siempre en el mismo orden para todos los valores de campo de capacidad.

Unidades de campo de tiempo

Las unidades de tiempo utilizadas por los campos temporales de las subcapas y tablas de la capa de análisis (clases de análisis de red). No tiene que ser igual que las unidades del atributo de coste de tiempo.

Unidades de campo de distancia

Las unidades de distancia utilizadas por los campos de distancia de las subcapas y tablas de la capa de análisis (clases de análisis de red). No tiene que ser igual que las unidades del atributo de coste de distancia opcional.

Cambios de sentido en cruces

Network Analyst puede permitir cambios de sentido en cualquier punto, en ningún punto, solo en callejones sin salida, o solo en intersecciones y en callejones sin salida. Permitir los cambios de sentido implica que la ruta puede dar la vuelta en un cruce y volver atrás por la misma calle.

Más información sobre las directivas para cambios de sentido

Tipo de forma de la salida

Las entidades de ruta generadas por el análisis se pueden representar de cuatro maneras:

  • Forma verdadera proporciona la forma exacta de la ruta resultante.

    Ruta como forma verdadera

  • Forma verdadera con medidas proporciona la forma exacta de la ruta resultante. Además, la salida incluye mediciones de salida para la referencia lineal. Las mediciones aumentan desde la primera parada y registran la impedancia acumulativa.

    Más información sobre la referencia lineal

  • Línea Recta produce una única línea recta entre paradas.

    Forma de línea recta para la ruta

  • Cuando el tipo de forma de salida no está establecido en Ninguno, no se devuelve ninguna forma.

En todos estos casos, los costes basados en tiempo y distancia en la solución son los mismos y los atributos de capa de entidades de Rutas son los mismos también; la única diferencia reside en la forma del resultado de la Ruta o si la referencia lineal está establecida automáticamente o no.

Utilizar jerarquía

Si el dataset de red tiene un atributo de jerarquía, puede utilizar la jerarquía durante el análisis. Utilizar una jerarquía hace que el solucionador prefiera bordes de orden superior en lugar de bordes de orden inferior. Las soluciones jerárquicas son más rápidas, y se pueden utilizar para simular la preferencia del conductor por viajar por autopistas en lugar de hacerlo por carreteras locales, aunque signifique un viaje más largo. No utilizar una jerarquía, sin embargo, produce una ruta exacta para el dataset de red.

Más información sobre el enrutamiento con jerarquía

Restricciones

Puede elegir qué atributos de restricción se deben respetar al solucionar el análisis. En la mayoría de casos, las restricciones ocasionan la prohibición de carreteras, pero también pueden ocasionar que sean evitados o preferidos. Un atributo de restricción, tal como los sentidos únicos, se deben utilizar al buscar soluciones para vehículos que deban recorrer calles de un solo sentido (por ejemplo, vehículos que no sean de emergencias). Otros atributos de restricción comunes incluyen los límites de altura y peso que prohíben que algunos vehículos atraviesen ciertas carreteras o puentes; las restricciones de materiales peligrosos que los conductores de hazmat necesitan para omitir completamente o por lo menos intentar evitar; y las rutas designadas de un camión que los conductores de camiones deben intentar seguir. Puede elegir qué atributos de restricción se deben respetar al solucionar el análisis. (Además puede especificar si los elementos que usa la restricción se deben prohibir, evitar o preferir en la pestaña Parámetro de atributos).

Indicaciones

Con las propiedades Directions, puede establecer las unidades para mostrar la distancia y, opcionalmente, el tiempo. Además, puede decidir abrir las direcciones automáticamente después de la generación de una ruta. (Si no elige mostrar las direcciones automáticamente, puede hacer clic en el botón Ventana de direcciones Indicaciones para mostrar las indicaciones).

Pestaña Configuraciones avanzadas

La pestaña Configuraciones avanzadas de una capa VRP

La ficha Configuración avanzada del cuadro de diálogo Propiedades de capa muestra las siguientes propiedades para la capa de análisis de problema de generación de rutas para vehículos. Los parámetros que configure aquí influyen en las prioridades del solucionador a la hora de controlar las infracciones de la ventana de tiempo para rutas y tiempos de tránsito en exceso para pares de órdenes. Puede asignar un valor Baja, Media o Alta. Mientras mayor es la importancia, más intenta el solucionador reducir o eliminar las infracciones de la ventana de tiempo asociadas o los tiempo de tránsito en exceso.

Violación de la ventana de tiempo

Violación de la ventana de tiempo: Esta propiedad le permite considerar la importancia de respetar las ventanas de tiempo sin causar violaciones. La violación de ventana de tiempo ocurre cuando una ruta llega a una orden, depósito o corte después de que se cierra la ventana de tiempo. La violación es el intervalo entre el final de la ventana de tiempo y la hora de llegada de una ruta.

Diagrama de una infracción de ventana de tiempo

La solución de VRP puede cambiar según el valor que elija para la propiedad Violación de ventana de tiempo. La siguiente lista describe el significado de los valores y cómo puede variar la solución del VRP resultante:

  • Alta El solucionador intenta encontrar una solución que minimice las violaciones de ventana de tiempo a costa de aumentar el tiempo de viaje total. Elija Alto si considera que llegar a tiempo a las órdenes es más importante que minimizar el coste total de la solución. Un ejemplo de esto es cuando se encuentra con los clientes en las órdenes y no desea causarles una molestia con una llegada tarde (otra opción es usar ventanas de tiempo estrictas que no se puedan violar de ninguna manera).

    Dadas otras restricciones de un problema de generación de rutas para vehículos, podría resultar imposible visitar todas las órdenes dentro de sus ventanas de tiempo. Incluso en este caso, un parámetro Alta podría provocar infracciones.

  • Media Se trata de la configuración predeterminada. El solucionador busca un equilibrio entre cumplir con las ventanas de tiempo y reducir el costo total de la solución.

  • Baja El solucionador intenta encontrar una solución que minimice el tiempo de viaje total, sin tener en cuenta las ventanas de tiempo. Elija Bajo si considera que respetar las ventanas de tiempo es menos importante que reducir el coste total de la solución. Puede utilizar esta configuración si tiene varios trabajos atrasados de solicitudes de servicio. Para poder cumplir con más órdenes en un día y reducir el trabajo atrasado, puede elegir Bajo aunque los clientes sufran las molestias de las llegadas tarde de la flota.

Los dos gráficos siguientes muestran el mismo conjunto de órdenes y depósitos; sin embargo, las rutas no son las mismas porque se utilizaron distintas configuraciones de Violación de la ventana de tiempo. El gráfico de la izquierda muestra la ruta resultado del valor de importancia de Violación de la ventana establecido en Baja. La ruta es corta, pero tiene una violación de ventana de tiempo. Si se establece en Alta, la ruta cumple todas las ventanas de tiempo, pero es más larga porque atiende primero la orden con una ventana de tiempo.

Importancia baja
Importancia baja
Importancia alta
Importancia alta

Exceso tiempo tránsito

Esta propiedad le permite valorar la importancia de reducir el tiempo de tránsito de exceso. El exceso de tiempo de tránsito es la cantidad de tiempo que excede el tiempo requerido para viajar directamente entre las órdenes asociadas. El exceso de tiempo resulta de los descansos o viajes a otras órdenes o depósitos entre las visitas a las órdenes asociadas.

Calcular el exceso de tiempo de tránsito
Calcular el exceso de tiempo de tránsito

La solución VRP puede cambiar según el valor que elija para Exceso de tiempo de tránsito. La siguiente lista describe el significado de los valores y cómo puede variar la solución del VRP resultante:

  • Alta El solucionador intenta encontrar una solución con menos tiempo de tránsito de exceso entre los pares de órdenes a costa de aumentar los costes de viaje totales. Resulta lógico utilizar esta configuración si está transportando personas entre órdenes asociadas y desea acortar el tiempo de viaje. Esto es característico de los servicios de taxi.
  • Media Se trata de la configuración predeterminada. El solucionador busca un equilibrio entre reducir el exceso de tiempo de tránsito y reducir el coste total de la solución.
  • Baja El solucionador intenta encontrar una solución que minimice el coste de solución total, sin tener en cuenta el tiempo de tránsito de exceso. En general, esta configuración se usa para servicios de correo. Debido a que los servicios de correo transportan paquetes y no personas, no necesitan preocuparse por el tiempo de viaje. Al utilizar Bajo, los servicios de correo pueden cumplir con las órdenes asociadas en la secuencia adecuada y minimizar el coste total de la solución.

Los dos gráficos siguientes muestran el mismo conjunto de órdenes y depósitos; sin embargo, las rutas no son las mismas porque se utilizaron distintas configuraciones de Exceso de tiempo de tránsito. El gráfico de la izquierda muestra la ruta generada cuando la importancia del Exceso de tiempo de tránsito se establece en Baja. La ruta total es corta, pero el tiempo de viaje desde la primera orden al par de órdenes, el aeropuerto, es larga. Si la importancia se establece en alta, la ruta reduce el tiempo entre la primera orden y el aeropuerto manteniendo el mismo tiempo de trayecto al aeropuerto para la orden de la derecha; sin embargo, el coste total de la ruta aumenta.

Importancia baja
Importancia baja (mensajero)
Importancia alta (taxi)

La ficha Ubicaciones de red

Los parámetros de la ficha Ubicaciones de red se utilizan para buscar ubicaciones de red y establecer valores para sus propiedades.

Más información sobre las ubicaciones de red

Resolver e interpretar los resultados de un problema de generación de rutas para vehículos

Después de crear una capa de análisis de problema de generación de rutas para vehículos, rellenar los objetos de análisis de red necesarios y establecer las propiedades de análisis adecuadas, se puede obtener la solución para el capa de análisis de problema de generación de rutas para vehículos haciendo clic en el botón ResolverResolver en la barra de herramientas Network Analyst.

Después de resolver, si la propiedad Tipo de forma de salida está establecida en Forma verdadera, el solucionador del problema de generación de rutas para vehículos dibuja las líneas a lo largo de la red que conectan los depósitos iniciales, órdenes, depósitos de reanudación y depósitos finales para cada ruta.

La ventana Network Analyst también actualiza la clase Órdenes para agrupar todas las órdenes mediante las rutas a las que están asignadas. La clase Visitas a depósito se actualiza para mostrar los depósitos inicial, final y de reanudación para cada ruta.

Durante la resolución, el solucionador del problema de generación de rutas para vehículos ignora todas las rutas cuyo valor de campo AssignmentRule esté establecido en Excluir y todas las órdenes cuyo valor de campo AssignmentRule esté establecido en Excluir.

A continuación, el solucionador del problema de generación de rutas para vehículos calcula una matriz de coste origen-destino (OD) administrada internamente entre cada una de las órdenes y ubicaciones de depósito utilizando el Atributo de tiempo como impedancia y el Atributo de distancia (si se especifica) como atributo acumulado.

Más información sobre el análisis de matriz de coste OD

El solucionador de VRP crea una solución inicial compuesta de las órdenes preasignadas, cortes y visitas de reanudación si cualquiera de estos objetos de análisis de red están preasignados a rutas. Si no se puede encontrar una solución inicial válida utilizando esta preasignación (es decir, se infringen algunas restricciones), falla el proceso de resolución.

Aunque hay órdenes sin enrutar, el solucionador de VRP intenta insertar la orden sin enrutar más barata en la mejor ruta compatible. El solucionador intenta volver a secuenciar las órdenes asignadas a una ruta si la nueva secuenciación mejora la solución, pero no mueve la secuencia relativa órdenes cuyo valor de campo AssignmentRule está establecido en Conservar la ruta y la secuencia relativa.

Después de generar correctamente todas las órdenes posibles, el solucionador del problema de generación de rutas para vehículos genera los resultados en los campos de salida adecuados de los objetos de análisis de red. Si algunas órdenes no se pueden enrutar, las restricciones infringidas se generan en los campos ViolatedConstraints en la capa de entidades Órdenes. Si no se utiliza una ruta en una solución, los campos de salida se establecen en nulo.

Más información sobre las restricciones infringidas en órdenes y rutas

Interpretar los resultados de un análisis de problema de generación de rutas para vehículos

Después de resolver correctamente una capa de análisis de problema de generación de rutas para vehículos, la solución de enrutamiento para cada ruta se puede ensamblar leyendo los campos de entrada y salida de la tabla Cortes, capa de entidades Visitas a depósito, capa de entidades Órdenes y capa de entidades Rutas. Para cada ruta, buscar por RouteName y mirar los valores de secuencia en Cortes, Visitas a depósito y Órdenes proporciona el itinerario de la ruta. Puede generar direcciones para compilar un itinerario similar. La capa de entidades Rutas proporciona un resumen de cada ruta calculada.

Temas relacionados

9/11/2013