Ejercicio 7: Dar servicio a un conjunto de órdenes con una flota de vehículos
En este ejercicio, buscará las mejores rutas para una flota de vehículos, operada por una empresa de distribución, para entregar mercancías desde un centro de la distribución a un conjunto de 25 tiendas de comestibles. Cada almacén tiene una cantidad concreta de demanda de mercancías y cada camión tiene una capacidad limitada para llevar las mercancías. El objetivo principal es asignar a los camiones de la flota un subconjunto de las tiendas a las que prestar servicio y establecer la secuencia de entregas de manera que se minimicen los costes de transporte totales.
Esto se puede lograr resolviendo un problema de generación de rutas para vehículos (VRP). Una vez determinada la secuencia de entrega, generará instrucciones giro por giro para las rutas resultantes, que se pueden distribuir electrónicamente, o imprimirse y entregarse a los conductores para que hagan las entregas.
Preparar la visualización
- Si tiene Exercise07.mxd abierto en ArcMap, salte al paso 6.
- Para iniciar ArcMap, haga clic en Inicio > Todos los programas > ArcGIS > ArcMap 10.
-
En el cuadro de diálogo Introducción a ArcMap, haga clic en Mapas existentes > Buscar más.
Aparecerá el cuadro de diálogo Abrir documento de ArcMap.
-
Vaya a C:\ArcGIS\ArcTutor\Network Analyst\Tutorial.
Ésta es la ubicación de instalación predeterminada para los datos de tutorial.
-
Haga doble clic en Exercise07.mxd.
El documento de mapa se abre en ArcMap.
-
Habilite la extensión Network Analyst.
-
Haga clic en Personalizar > Extensiones.
Se abre el cuadro de diálogo Extensiones.
- Active Network Analyst.
- Haga clic en Cerrar.
-
Haga clic en Personalizar > Extensiones.
-
Haga clic en Personalizar > Barras de herramientas > Network Analyst.
La barra de herramientas Network Analyst se agrega a ArcMap.
-
En la barra de herramientas de Network Analyst, haga clic en el botón Mostrar/ocultar la ventana de Network Analyst .
Se abre la ventana Network Analyst.
Si no se muestra la barra de herramientas de Network Analyst tendrá que agregarla.
Si no se muestra la ventana de Network Analyst tendrá que agregarla.
Puede acoplar o desacoplar la ventana de Network Analyst. En este ejercicio, está acoplada bajo la ventana Tabla de contenido.
Crear la capa de análisis del problema de generación de rutas para vehículos
-
Haga clic en Network Analyst en la barra de herramientas de Network Analyst y haga clic en Problema de generación de rutas para vehículos nuevo.
La capa de análisis de problema de generación de rutas para vehículos se agrega a la ventana de Network Analyst. Las clases de análisis de red (Órdenes, Depósitos, Rutas, Visitas a depósito, Rupturas, 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) están vacías.
La capa del análisis también se agrega a la ventana Tabla de contenido.
Agregar órdenes
Agregará las ubicaciones de las tiendas de comestibles a la clase de análisis de red Órdenes. Puede pensar en las órdenes como en pedidos que satisfacer, dado que cada tienda de comestibles ha pedido que le entreguen mercancías desde el centro de distribución. Los miembros de la clase Órdenes se convertirán finalmente en paradas a lo largo de las rutas de los vehículos.
Las ubicaciones de las tiendas de comestibles ya se han agregado como una capa de entidades, Almacenamientos, en el documento de mapa. Los atributos de Almacenamientos contienen información sobre el peso total de las mercancías (en libras) solicitadas en cada tienda, la ventana de tiempo durante la que se tiene que realizar la entrega, y el tiempo de servicio (en minutos) empleado en la visita a una tienda en particular. El tiempo de servicio es el tiempo necesario para descargar las mercancías.
Agregará estas entidades de puntos de tiendas como órdenes en la capa del análisis.
-
En la ventana Network Analyst, haga clic con el botón derecho en Órdenes (0) y elija Cargar ubicaciones.
Se abre el cuadro de diálogo Cargar ubicaciones
- Seleccione Almacenamientos en la lista desplegable Cargar ubicaciones.
-
En la sección Propiedades del análisis de ubicación, asegúrese de que la propiedad Name se asocie automáticamente al campo NAME, y que la propiedad ServiceTime se asocie al campo ServiceTime.
Network Analyst intenta asociar automáticamente las propiedades de análisis de ubicación para una capa del problema de generación de rutas para vehículos creada recientemente basándose en un archivo de configuración (que se encuentra busca en el directorio de instalación del ArcGIS dentro de [...]\NetworkAnalyst\NetworkConfiguration\NASolverConfiguration.xml).
-
Establezca el valor Campo de TimeWindowStart1 en TimeStart1.
- Establezca el valor Campo de TimeWindowEnd1 en TimeEnd1.
- Establezca el valor Campo de DeliveryQuantities en Solicitud.
-
Escriba 0 bajo Valor predeterminado para la propiedad MaxViolationTime1.
Establecer esta propiedad en cero especifica que no se debe infringir la ventana de tiempo.
-
Haga clic en Aceptar.
Veinticinco tiendas se muestran en la ventana de Network Analyst en Órdenes y se muestran como órdenes en el mapa.
La sección Propiedades del análisis de ubicación del cuadro de diálogo Cargar ubicaciones permite especificar qué atributos de la clase de entidad de Almacenamientos contienen los valores que ArcGIS Network Analyst utilizará para ayudar a resolver este problema de generación de rutas para vehículos.
Agregar depósitos
Las mercancías se entregan desde un centro de distribución único cuya ubicación se muestra en la capa de entidad DistributionCenter en ArcMap. El centro de distribución funciona entre las 8:00 a.m. y las 5:00 p.m. Agregará esta entidad de puntos a la clase de análisis de red Depósitos.
-
En la ventana Network Analyst, haga clic con el botón derecho en Depósitos (0) y elija Cargar ubicaciones.
Se abre el cuadro de diálogo Cargar ubicaciones.
- Seleccione DistributionCenter en la lista desplegable Cargar ubicaciones.
- En la sección Propiedades del análisis de ubicación, asegúrese de que la propiedad Name se asocie automáticamente al campo NAME.
- Escriba 8 AM bajo Valor predeterminado para la propiedad TimeWindowStart1.
-
Escriba 5 PM bajo Valor predeterminado para la propiedad TimeWindowEnd1.
-
Haga clic en Aceptar.
Un centro de la distribución se muestra en la ventana de Network Analyst en Depósitos y se muestra como un depósito en el mapa.
Agregar rutas
El centro de distribución tiene tres camiones, cada uno con una capacidad máxima de transporte de 15.000 libras de mercancías. Agregará tres rutas (una para cada vehículo) y establecerá las propiedades para las rutas sobre la base de los procedimientos operativos del centro.
-
En la ventana de Network Analyst, haga clic con el botón derecho en Rutas (0) y elija Agregar elemento.
Se agrega una nueva ruta, Elemento 1, bajo la clase Rutas en la ventana de Network Analyst y se abre la ventana Propiedades para la ruta.
-
En la ventana Propiedades, especifique los atributos para la ruta como se muestra en la tabla siguiente. La columna de descripción de la tabla explica el uso de valores determinados. Deje los valores predeterminados para los atributos que no estén en la tabla.
Atributo
Valor
Descripción
Nombre
Truck_1
Nombre del vehículo.
StartDepotName
San Francisco
El camión empieza en el centro de la distribución.
EndDepotName
San Francisco
El camión vuelve al centro de la distribución al final de la ruta.
StartDepotServiceTime
60
Tiempo (en este caso, minutos) necesario para cargar por completo el camión con mercancías.
EarliestStartTime
8 AM
El camión puede iniciar la operación en cuanto abra el centro de distribución a las 8:00 a.m.
LatestStartTime
8 AM
El camión debe iniciar la operación lo antes posible.
Capacidades
15000
El camión puede transportar como máximo 15.000 libras de mercancías.
CostPerUnitTime
0.20
Al conductor del camión se le paga 12 dólares por hora, de modo que el sueldo es:12,00 $/60 minutos = 0,20 $ por minuto.
CostPerUnitDistance
1.5
El importe medio en dólares que se gasta por milla en combustible, depreciación del camión y mantenimiento.
MaxOrderCount
10
El número máximo de tiendas a las que puede dar servicio un camión.
MaxTotalTime
360
Debido a las restricciones del horario laboral, los conductores no pueden tener turnos de trabajo de más de seis horas (360 minutos).
MaxTotalTravelTime
120
Para satisfacer las restricciones del horario laboral y poder continuar dando servicio a un número razonable de tiendas —teniendo en cuenta el tiempo de servicio necesario en una tienda—, el camión no debe pasar más de dos horas (120 minutos) circulando por las calles.
MaxTotalDistance
80
Para repartir los costes diarios de combustible y mantenimiento entre la flota, cada camión no debe recorrer más de 80 millas en su ruta.
-
Haga clic en Aceptar.
Una nueva ruta, Truck_1, se agrega a la clase de rutas en la ventana de Network Analyst.
-
Haga clic con el botón derecho en el objeto de ruta Truck_1 en la ventana de Network Analyst y elija Copiar.
-
Haga clic con el botón derecho en la clase Ruta (1) en la ventana de Network Analyst y elija Pegar.
La clase Rutas contiene dos objetos de ruta idénticos.
-
Repita el último paso para crear un tercer objeto de ruta.
-
Haga doble clic en el segundo objeto Truck_1 en la lista.
Se abre la ventana Propiedades.
- Haga clic en la propiedad Name y escriba Truck_2.
-
Presione ENTRAR dos veces.
La ruta recibe un nombre único y la ventana se cierra.
-
Utilice el mismo procedimiento para cambiar el nombre de la última ruta a Truck_3.
Puesto que los tres camiones del centro de distribución son iguales, puede hacer dos copias del primer camión que escribió y cambiar sus nombres.
Configurar las propiedades para el análisis del problema de generación de rutas para vehículos
-
Haga clic en el botón Propiedades de capa de análisis de la ventana de Network Analyst.
Se abre el cuadro de diálogo Propiedades de capa.
- Haga clic en la ficha Configuración de análisis.
-
Establezca la lista desplegable Atributo de tiempo en TravelTime (Minutos).
El solucionador de VRP utilizará este atributo para calcular los costes basados en tiempo entre las órdenes y el depósito.
-
Haga clic en la lista desplegable Atributo de distancia y elija metros.
Este atributo se utiliza para determinar distancias de viaje entre las órdenes y el depósito para propósitos de restricción y creación de instrucciones; no obstante, el objetivo del solucionador de VRP es minimizar los costes horarios.
-
Establezca Fecha predeterminada en Día de la semana. Elija Lunes en la lista desplegable Día de la semana.
-
Establezca Cálculo de capacidad en 1.
Esta configuración indica que las mercancías que se están entregando tienen solo una medida. En este caso, esa medida es el peso (libras). Si las capacidades se especificaran utilizando dos medidas, tales como peso y volumen, el cálculo de capacidad se establecería en 2.
-
Seleccione Minutos para Unidades de campo de tiempo.
Esto especifica que todos los atributos basados en tiempo, tales como ServiceTime y MaxViolationTime1 para Órdenes, y MaxTotalTime, MaxTotalTravelTime y CostPerUnitTime para Ruta, están en minutos.
-
Establezca Unidades de campo de distancia en Millas.
Esto especifica que todos los atributos basados en distancia, tales como MaxTotalDistance y CostPerUnitDistance para Rutas, están en millas.
- Puesto que para estos camiones de reparto es difícil hacer cambios de sentido, establezca Giros en U en cruces en No permitido.
-
Seleccione Línea recta en la lista desplegable Tipo de forma de salida.
Podría seleccionar la opción Forma verdadera con medidas o Forma verdadera si deseara que las rutas siguieran las calles. Observe que esta opción solo afecta a la visualización de las rutas, no a los resultados determinados por el solucionador de VRP.
- Active Utilizar jerarquía.
- En el marco Restricciones, active RestrictedTurns y Oneway.
-
Deje las opciones del marco Indicaciones establecidas en sus valores predeterminados.
- Haga clic en Aceptar.
Ejecutar el proceso para determinar la asignación de la mejor ruta y la secuencia de orden
-
Haga clic en el botón Resolver. en la barra de herramientas Network Analyst.
El solucionador de VRP calcula las tres rutas necesarias para servir las órdenes y dibuja líneas que conectan las órdenes. Cada ruta comienza y finaliza en el centro de la distribución y sirve un conjunto de órdenes por el camino.
Si recibe cualquier mensaje de error, asegúrese de que el valor del atributo Capacidades para las rutas esté establecido en 15000 en lugar de 15.000 y de que cada ruta tenga un nombre único.
Determinar indicaciones giro por giros para las rutas
- Haga clic con el botón derecho en Rutas (3) en la ventana de Network Analyst y haga clic en Selección > Borrar entidades seleccionadas.
-
Haga clic en el botón Ventana de indicaciones en la barra de herramientas Network Analyst.
Se abre el cuadro de diálogo Indicaciones.
- También puede exportar la capa de problema de generación de rutas para vehículos como un archivo de capa (<nombre de archivo>.lyr) haciendo clic con el botón derecho en Problema de generación de rutas para vehículos en la ventana Tabla de contenido y eligiendo Guardar como archivo de capa. Esto guarda el análisis en disco para poder agregarlo a un documento de mapa diferente y reutilizarlo más tarde.
- Si desea continuar con las siguientes secciones avanzadas de este ejercicio tutorial, cierre la ventana Indicaciones. De lo contrario, salga de ArcMap y no guarde ningún cambio en Exercise 07.mxd.
Hacer cambios en la solución existente para resolver un escenario diferente
La solución del problema de generación de rutas para vehículos obtenida anteriormente funcionó bien para la empresa. Sin embargo, después de unas semanas, el conductor asignado a Truck_2 se fue de vacaciones. Por lo tanto, ahora la empresa de distribución tiene que dar servicio a las mismas tiendas, pero ahora con solo dos camiones. Para acomodar la carga de trabajo adicional, la empresa decidió pagar horas extras a los otros dos conductores y darles un descanso pagado durante el día. La empresa de distribución también adquirió dos centros de distribución satélite adicionales. Los camiones pueden utilizar estos centros para renovar la carga mientras hacen sus entrega, en lugar de volver al centro de distribución principal para volver a cargar. Modificará la solución obtenida del paso anterior para acomodar estos cambios.
Eliminar una ruta existente de una solución
-
En la ventana de Network Analyst, haga clic con el botón derecho en el objeto Truck_2 de la clase Rutas y haga clic en Eliminar.
Agregar reanudaciones de ruta
Los dos centros de distribución satélite que la empresa adquirió están en 800 Brush Street y 100 Old County Roady, y pueden actuar como ubicaciones de reanudación para los camiones. Los camiones pueden reponer su carga visitando estas ubicaciones de reanudación y así ahorrar tiempo no teniendo que volver a los depósitos iniciales. Agregará las ubicaciones de reanudación a la clase de análisis de red Depósitos geocodificando sus direcciones. Las rutas que se pueden reanudar en una ubicación de reanudación y el momento del servicio para la reanudación se especifican en la clase de análisis de red Reanudaciones de ruta.
-
En la ventana de Network Analyst, haga clic con el botón derecho en Depósitos (1) y elija Buscar dirección.
Se abre el cuadro de diálogo Buscar.
- Elija SanFranciscoLocator en la lista desplegable Elegir un localizador de direcciones.
-
En el cuadro Calle o intersección, escriba 800 Brush St.
-
Haga clic en Buscar.
SanFranciscoLocator, que es un localizador de direcciones que ya se agregó a Exercise07.mxd, busca la dirección y muestra el resultado en la parte inferior del cuadro de diálogo Buscar.
-
Haga clic con el botón derecho en el resultado en el cuadro de diálogo Buscar y elija Agregar como objeto de análisis de red.
La dirección ubicada se agrega como depósito a la ventana de Network Analyst y a la visualización del mapa.
- En el cuadro Calle o intersección del cuadro de diálogo Buscar, escriba 100 Old County Rd.
- Haga clic en Buscar.
-
Haga clic con el botón derecho en el nuevo resultado en la parte inferior del cuadro de diálogo Buscar y elija Agregar como objeto de análisis de red.
Se agrega un tercer depósito a la clase de análisis de red Depósitos.
- Cierre el cuadro de diálogo Encontrar.
-
En la ventana de Network Analyst, haga clic con el botón derecho en Reanudaciones de ruta (0) y haga clic en Agregar elemento.
Un nuevo objeto de reanudación de ruta, Item1, se agrega bajo la clase reanudaciones de ruta en la ventana de Network Analyst y se abre la ventana Propiedades para Item1.
-
En la ventana Propiedades, especifique los atributos para la reanudación de ruta como se muestra a continuación.
Atributo
Valor
Descripción
DepotName
800 Brush St
El camión puede utilizar esta ubicación de depósito para la reanudación.
RouteName
Truck_1
Nombre del vehículo.
ServiceTime
30
Tiempo en minutos necesario para cargar el camión.
-
Haga clic en Aceptar.
Un nuevo objeto de reanudación de ruta, 800 Brush St, se muestra dentro del elemento Truck_1 en la ventana de Network Analyst.
-
Siga los últimos tres pasos para agregar tres objetos de reanudación de ruta más de modo que cada camión (Truck_1 y Truck_3) pueda volver a cargar en ambas ubicaciones de reanudación (800 Brush St, 100 Old County Rd).
La ventana de Network Analyst debería mostrar ahora dos objetos de reanudación de ruta dentro de los elementos Truck_1 y Truck_3, respectivamente.
Puesto que ambos camiones pueden reponer sus cargas en las ubicaciones de 800 Brush Street y 100 Old County Road, asociará cada camión a las dos ubicaciones de reanudación. El solucionador de VRP deducirá la mejor ubicación de reanudación para los camiones.
Modificar rutas para incluir horas extra
Para acomodar la carga de trabajo adicional, la empresa desea retirar de las rutas las restricciones de tiempo máximo, tiempo de viaje máximo y las distancia máxima. Dado que los conductores tienen que trabajar más tiempo que antes, se les paga la tarifa de hora extra a razón de 18 $ la hora una vez completadas seis horas de trabajo. En este paso, hará estos cambios en las rutas.
-
En la ventana de Network Analyst, bajo la clase de análisis de red Rutas, haga doble clic en Truck_1.
Se abre la ventana Propiedades.
-
Haga cambios en los atributos de Truck_1 de modo que coincidan con los valores de la tabla siguiente.
Atributo
Valor
Descripción
OvertimeStartTime
360
El conductor cobra horas extra si trabaja durante más de seis horas (360 minutos).
CostPerUnitOvertime
0.3
El conductor del camión recibe 18 $ por hora por las horas extraordinarias. Por lo tanto, el sueldo en dólares por minuto es de: 18,00 $/60 minutos = 0,30 $ por minuto.
MaxOrderCount
20
Dado que el conductor sobra horas extra, se espera que sirva a más tiendas.
MaxTotalTime
<Nulo>
No hay ninguna restricción en la duración total del turno de trabajo para el conductor.
MaxTotalTravelTime
<Nulo>
No hay ninguna restricción sobre el tiempo empleado conduciendo por las calles.
MaxTotalDistance
<Nulo>
No hay ninguna restricción sobre la distancia total recorrida por un camión.
- Haga clic en Aceptar.
- Repita los últimos tres pasos para Truck_3.
Agregar descansos
Dado que los conductores tienen que trabajar más tiempo, necesitarán un descanso de media hora durante el turno de trabajo. En este paso, especificará los descansos para cada ruta.
-
En la ventana de Network Analyst, haga clic con el botón derecho en Rupturas (0) y elija Agregar elemento.
Se abre la ventana Propiedades.
-
Especifique los valores de atributo para el nuevo descanso como se muestra en la tabla siguiente.
Atributo
Valor
Descripción
TimeWindowStart
12:30 PM
El descanso tiene que iniciarse después de las 12:30 p.m.
TimeWindowEnd
1:30 PM
El descanso tiene que iniciarse antes de la 1:30 p.m.
RouteName
Truck_1
El nombre de la ruta a la que se aplica este descanso.
ServiceTime
30
La duración del descanso en minutos.
MaxViolationTime
0
El descanso tiene que empezar entre las 12:30 p.m. y la 1:30 p.m. El valor cero indica que el descanso no puede iniciarse después de la 1:30 p.m. (es decir, la ventana de tiempo del descanso es rígida).
IsPaid
Verdadero
Es un descanso pagado, de modo que el coste está incluido en el coste total de la ruta.
- Haga clic en Aceptar.
-
Repita los últimos tres pasos, escribiendo Truck_3 para la propiedad RouteName.
La ventana de Network Analyst muestra ahora dos objetos bajo la clase Rupturas: Truck_1 y Truck_3.
Determinar la solución
-
Haga clic en el botón Resolver. en la barra de herramientas Network Analyst.
El solucionador de VRP calcula las dos rutas que se pueden utilizar para servir las órdenes y dibuja líneas rectas que conectan las órdenes. Cada ruta empieza y termina en el centro de distribución, sirve un conjunto de órdenes a lo largo del camino, visita una ubicación de reanudación para cargar el camión de nuevo, continúa sirviendo las órdenes restantes y, finalmente, vuelve al centro de distribución.
Esta solución cumple todas las restricciones especificadas por la empresa de distribución. Sin embargo, después de dar el itinerario de ruta a los dos conductores, la empresa detectó que el conductor de Truck_1 prefiere conducir por el centro de la ciudad y el conductor de Truck_3 prefiere conducir en el área de East Bay. A la empresa le gustaría determinar una nueva solución en la que las rutas sirvieran las órdenes que se encontraran en las áreas que prefieran sus conductores. En los pasos siguientes, agregará puntos semilla de ruta para incorporar estas preferencias de los conductores.
Agregar puntos semilla de ruta
En este paso, agregará puntos semilla de ruta para Truck_1 y Truck_3 geocodificando direcciones. Tenga en cuenta que los puntos semilla de ruta también se pueden importar de una clase de entidad de puntos existente o crearse interactivamente utilizando la herramienta Crear una ubicación de red .
-
En la ventana de Network Analyst, haga clic con el botón derecho en Puntos de semilla de ruta (0) (0) y elija Buscar dirección.
Se abre el cuadro de diálogo Buscar.
-
En el cuadro combinado Calle o intersección, escriba 278 Dorantes Ave.
-
Haga clic en Buscar.
SanFranciscoLocator busca la dirección y muestra el resultado en la parte inferior del cuadro de diálogo.
-
Haga clic con el botón derecho en el resultado y elija Agregar como objeto de análisis de red.
La ubicación de la dirección se agrega como un punto de semilla de ruta. Se muestra en la ventana de Network Analyst y en la visualización del mapa.
- Cierre el cuadro de diálogo Encontrar.
-
En la ventana de Network Analyst, haga doble clic en el nuevo punto de semilla de ruta, 278 Dorantes Ave.
Se abre el cuadro de diálogo Propiedades.
-
Especifique los valores de atributo para el punto de semilla de ruta como se muestra en la tabla siguiente.
Atributo
Valor
Descripción
RouteName
Truck_1
El nombre de la ruta a la que se aplica este punto de semilla.
SeedPointType
Estática
Esto hace más probable que las órdenes cercanas al punto de semilla especificado se asignen a Truck_1.
- Repita los pasos 1–5 de esta sección para agregar otro punto de semilla de ruta en 1888 Peralta St.
-
Repita los pasos 6 y 7 para cambiar el atributo RouteName del segundo punto de semilla a Truck_3.
Determinar la solución
-
Haga clic en el botón Resolver. en la barra de herramientas Network Analyst.
El solucionador de VRP calcula las dos rutas que se pueden utilizar para servir las órdenes y dibuja líneas rectas que conectan las órdenes. La ruta para Truck_1 solo incluye las órdenes del centro de la ciudad.
- Salga de ArcMap sin guardar ningún cambio.