Ejercicio 8: Buscar las mejores rutas para servir pares de órdenes
En este ejercicio, su objetivo es encontrar las mejores rutas para que una flota de furgonetas transporte a personas que no tendrían de otra manera acceso al transporte desde sus hogares hasta diferentes hospitales para citas médicas. Logrará esto resolviendo un análisis del problema de generación de rutas para vehículos (VRP) utilizando pares de órdenes, que relacionan y secuencian dos órdenes (paradas) para que las furgonetas recojan a los viajeros y los lleven a sus destinos correspondientes. Utilizando otras entidades de la capa de análisis de VRP, se asegurará también de que se cumplan requisitos adicionales. Por ejemplo, escribirá un tiempo de tránsito máximo para los pares de órdenes, de modo que los viajeros no pasen demasiado tiempo en tránsito. Utilizará ventanas de tiempo para las órdenes, de modo que los viajeros no lleguen tarde para sus citas. Algunos viajeros necesitan silla de ruedas; utilizará especialidades para asociar a esos viajeros a furgonetas que lleven ascensores para silla de ruedas. 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.
Preparar la visualización
- Si tiene Exercise08.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 Exercise08.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 especialidades
La empresa de logística tiene tres furgonetas. Una de las furgonetas que opera en el área del centro de la ciudad está equipada con acceso para sillas de ruedas. Agregará Silla de ruedas como especialidad, para que las órdenes que requieran esta especialidad puedan asignarse a la ruta que tiene ascensor para sillas de ruedas.
-
En la ventana de Network Analyst, haga clic con el botón derecho en Especialidades (0) y haga clic en Agregar elemento.
Una nueva especialidad, Elemento 1, se agrega bajo la clase Especialidades en la ventana de Network Analyst. Se abre la ventana Propiedades para la nueva especialidad.
-
En la ventana Propiedades, escriba Silla de ruedas como valor de Nombre.
- Haga clic en Aceptar.
Agregar órdenes
Se proporciona una hoja de cálculo con los datos del tutorial. Contiene información sobre cada paciente, que incluye su nombre y dirección; el nombre y la dirección del hospital al que se lo debe llevar; la ventana de tiempo dentro de la que hay que recoger al paciente; etc. En la siguiente tabla se describen los campos de la hoja de cálculo:
Atributo |
Descripción |
---|---|
OrderName1 |
Nombre del paciente que necesita transporte |
PatientAddress |
Ubicación donde se recogerá al paciente |
OrderName2 |
Un nombre único para el destino |
HospitalAddress |
La ubicación donde el paciente tiene la cita |
PickFrom |
La hora más temprana a la que se puede recoger al paciente en PatientAddress |
PickTo |
La hora más tardía a la que se puede recoger al paciente en PatientAddress |
TotalPassengers |
El número total de pasajeros a recoger |
MaxTransitTime |
El tiempo máximo que el paciente puede pasar en la furgoneta |
SpecialtyNames |
Especifica las necesidades especiales del pasajero, por ejemplo, una silla de ruedas |
En este caso, los pasajeros y las visitas a los hospitales están relacionados entre sí, puesto que cada pasajero tiene que visitar un hospital predeterminado. Puede modelar esta situación con pares de órdenes, cargando tanto las ubicaciones de los pacientes como las de los hospitales en la clase de análisis de red Órdenes y relacionándolas con nuevos objetos de par de orden.
En los siguientes pasos, geocodificará las direcciones de pacientes y hospitales y cargará los puntos resultantes como órdenes.
-
Haga clic en Archivo > Añadir datos > Geocodificación > Geocodificar direcciones.
Se abre el cuadro de diálogo Elegir un localizador de direcciones para usar.
- Haga clic en SanFranciscoLocator.
SanFranciscoLocator se incluye con Exercise08.mxd.
-
Haga clic en Aceptar.
Se abre el cuadro de diálogo Geocodificar direcciones: SanFranciscoLocator.
-
Haga clic en el botón Examinar junto a la lista desplegable Tabla de direcciones.
Se abre el cuadro de diálogo Elegir una tabla conteniendo direcciones.
-
Haga clic en la lista Buscar en y elija Inicio - Tutorial.
La tabla que agregará se almacena en una hoja de cálculo de Excel que está incluida en los datos del tutorial de ArcGIS Network Analyst.
- Haga doble clic en OrderPairs.xls.
-
Haga doble clic en Patients$.
La hoja de cálculo Patients se agrega a la lista desplegable Tabla de direcciones.
- En la lista desplegable Calle o Intersección, elija PatientAddress.
-
Haga clic en el botón Examinar junto al cuadro de texto Shapefile o clase de entidad de salida.
El cuadro de diálogo Guardando datos se abre en la ubicación de inicio para Exercise08.mxd.
- Haga clic en la lista Buscar en y elija Inicio - Tutorial.
-
Haga clic en la lista desplegable Guardar como tipo y elija Archivo y clases de entidad de geodatabase personal.
La lista de archivos y espacios de trabajo se actualiza.
- Haga doble clic en SanFrancisco.gdb.
-
Elimine el nombre del cuadro de texto Nombre y escriba Pacientes.
Pacientes será el nombre de la clase de entidad de salida.
-
Haga clic en Guardar.
El cuadro de texto Shapefile o clase de entidad de salida Del cuadro de diálogoGeocodificar direcciones: SanFranciscoLocator se actualiza para mostrar la nueva ruta de acceso de salida.
-
Haga clic en Aceptar.
El cuadro de diálogo Geocodificar direcciones se abre e indica que se asociaron 15 direcciones.
-
Haga clic en Cerrar.
Las direcciones geocodificadas se agregan al documento de mapa como una capa de la entidad de puntos, Resultado de geocodificación: Pacientes.
-
Repita los pasos 1.16 para cargar los hospitales de destino de los pacientes, pero haga las siguientes modificaciones:
- En el paso 8, establezca Calle o Intersección en HospitalAddress.
-
En el paso 13, escriba DestinationHospitals en el cuadro de texto Nombre.
La ventana Tabla de contenido debe tener ahora dos capas de entidades, Resultado de geocodificación: DestinationHospitals y Resultado de geocodificación: Patients.
- En la ventana Tabla de contenido, desactive las dos capas de resultados de geocodificación para que no estén visibles en la visualización del mapa.
-
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.
- Elija Resultado de geocodificación: Patients en la lista desplegable Cargar desde.
-
Configure las propiedades que aparecen en la sección Propiedades del análisis de ubicación para que copien los valores de campo de la capa Resultados de geocodificación: Patients de la manera especificada en los pasos siguientes. (El gráfico siguiente resalta estos cambios.)
- Asigne la propiedad Name al campo OrderName1.
- Asigne la propiedad Description al campo PatientAddress.
- Asigne la propiedad TimeWindowStart1 al campo PickFrom.
- Asigne la propiedad TimeWindowEnd1 al campo PickTo.
- Asigne la propiedad PickupQuantities al campo TotalPassengers.
- Asegúrese de que la propiedad SpecialtyNames se asocie automáticamente al campo SpecialtyNames.
-
Escriba 2 bajo Valor predeterminado para la propiedad ServiceTime.
Todas las ubicaciones de direcciones de pacientes que se carguen tendrán un valor de ServiceTime de 2 para tener en cuenta el tiempo medio (en minutos) que tardan los pasajeros en montar en la furgoneta.
-
Escriba 0 bajo Valor predeterminado para la propiedad MaxViolationTime1.
Estableciendo todas las propiedades MaxViolationTime1 en cero, el solucionador de VRP buscará solo rutas que visiten las órdenes dentro de sus ventanas de tiempo.
-
Haga clic en Aceptar.
Se cargan quince órdenes. Puede verlas en la visualización del mapa y en la ventana de Network Analyst.
-
En la ventana Network Analyst, haga clic con el botón derecho en Órdenes (15) y elija Cargar ubicaciones.
Se abre el cuadro de diálogo Cargar ubicaciones.
- Elija Resultado de geocodificación: DestinationHospitals en la lista desplegable Cargar desde.
-
Configure las propiedades que aparecen en la sección Propiedades del análisis de ubicación para que copien los valores de campo de la capa Resultados de geocodificación: DestinationHospitals de la manera especificada en los pasos siguientes. (El gráfico siguiente resalta estos cambios.)
-
Asigne la propiedad Name al campo OrderName2.
Observe que el valor para el atributo Name tiene que ser único en la clase de análisis de red Órdenes. En este caso, hay muchos pacientes que necesitan visitar el mismo hospital. En consecuencia, si se utilizaran las direcciones de hospital para derivar el valor del atributo Name para Órdenes, el solucionador de VRP devolvería mensajes de error puesto que habría valores Name duplicados.
- Asigne la propiedad Description al campo HospitalAddress.
- Asigne la propiedad DeliveryQuantities al campo TotalPassengers.
- Asegúrese de que la propiedad SpecialtyNames se asocie automáticamente al campo SpecialtyNames.
-
Asigne la propiedad Name al campo OrderName2.
-
Escriba 2 bajo Valor predeterminado para la propiedad ServiceTime.
-
Haga clic en Aceptar.
Se muestran treinta órdenes en la ventana de Network Analyst bajo la clase de análisis de red Órdenes, y se muestran como órdenes en el mapa de la capa Problema de generación de rutas para vehículos.
En los próximos pasos, cargará estas capas en la clase de análisis de red Órdenes.
La sección Propiedades del análisis de ubicación del cuadro de diálogo Cargar ubicaciones permite especificar qué atributos de la capa Resultados de geocodificación: DestinationHospitals contienen los valores a los que hará referencia Network Analyst en este problema de generación de rutas para vehículos.
Agregar pares de órdenes
Hay que llevar a los pasajeros a un hospital predeterminado. Agregando objetos a la clase de análisis de red Pares de órdenes, puede agregar información que especifica a qué hospital hay que llevar a los pacientes y el tiempo máximo que pueden pasar los pacientes en la furgoneta durante un viaje unidireccional.
-
En la ventana Network Analyst, haga clic con el botón derecho en Pares de órdenes (0) y elija Cargar ubicaciones.
Se abre el cuadro de diálogo Cargar ubicaciones.
- Haga clic en el botón Examinar junto a la lista desplegable Cargar desde.
-
Haga clic en la lista Buscar en y elija Inicio - Tutorial.
La tabla que agregará se almacena en una hoja de cálculo de Excel que está incluida en los datos del tutorial de Network Analyst.
- Haga doble clic en OrderPairs.xls.
-
Haga doble clic en Patients$.
La tabla Patients se agrega a la lista desplegable Cargar desde en el cuadro de diálogo Cargar ubicaciones.
-
Configure las propiedades que aparecen en la sección Propiedades del análisis de ubicación para que extraigan los valores de campo de la tabla Patients$ de la manera especificada en los pasos siguientes.
- Asigne la propiedad FirstOrderName al campo OrderName1.
- Asigne la propiedad SecondOrderName al campo OrderName2.
- Asegúrese de que la propiedad MaxTransitTime se asocie automáticamente al campo MaxTransitTime.
-
Haga clic en Aceptar.
Aparecen quince pares de órdenes en la ventana deNetwork Analyst bajo la clase de análisis de red pares de órdenes.
Agregar depósitos
La empresa de logística opera furgonetas desde tres depósitos cuyas ubicaciones se muestran en la capa de entidades CentralDepots en ArcMap. Ahora agregará estas entidades 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 CentralDepots en la lista desplegable Cargar desde.
-
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.
-
Haga clic en Aceptar.
Aparecen tres depósitos en la ventana de Network Analyst bajo la clase de análisis de red Depósitos, y se muestran en el mapa en la capa Problema de generación de rutas para vehículos.
Agregar rutas
La empresa de logística tiene tres furgonetas, cada una con una capacidad máxima de seis pasajeros. Las furgonetas salen de los depósitos y vuelven a ellos después de completar todos los viajes. Una de las furgonetas que operan dentro del área del centro de la ciudad tiene un ascensor para facilitar el acceso a las sillas de ruedas.
Agregará tres rutas (una para cada furgoneta) y establecerá la propiedad para que la furgoneta del centro incluya Silla de ruedas como especialidad.
-
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, Item1, bajo la clase de análisis de red Rutas y se abre la ventana Propiedades de la ruta.
-
En la ventana Propiedades, especifique los atributos para la ruta como se muestra en la tabla siguiente, dejando los valores predeterminados para los demás atributos. La columna Descripción de la tabla explica el uso de valores determinados.
Atributo
Valor
Descripción
Name
Centro de la ciudad
Nombre de la ruta.
StartDepotName
Depósito del centro de la ciudad
La furgoneta sale del depósito del centro de la ciudad.
EndDepotName
Depósito del centro de la ciudad
La furgoneta vuelve al depósito del centro de la ciudad al final de la ruta.
Capacidades
6
La furgoneta puede llevar un máximo de seis pasajeros a la vez.
SpecialtyNames
Silla de ruedas (Active Silla de ruedas para establecerlo como valor.)
La furgoneta está equipada para proporcionar acceso a las sillas de ruedas.
-
Haga clic en Aceptar.
Una nueva ruta, Centro de ciudad, aparece en la ventana de Network Analyst.
-
Repita los 1-3 para agregar dos rutas más que representen las furgonetas que operan en las áreas de North Bay y East Bay. Utilice las tablas siguientes para estas nuevas rutas en lugar de las propiedades que aparecen en el paso 2.
Atributo
Valor
Name
North Bay
StartDepotName
Depósito de North Bay
EndDepotName
Depósito de North Bay
Capacidades
6
Atributo
Valor
Name
East Bay
StartDepotName
Depósito de East Bay
EndDepotName
Depósito de East Bay
Capacidades
6
Observe que estas furgonetas no están equipadas para permitir el acceso a sillas de ruedas.
La ventana de Network Analyst muestra tres objetos de ruta que aparecen dentro de la clase de análisis de red Rutas.
Agregar zonas de ruta
Las tres furgonetas utilizadas por la empresa solo están autorizadas a servir órdenes en un área predeterminada. Agregará zonas de ruta y las asociará con las furgonetas/rutas.
- En la ventana de Network Analyst, seleccione Zonas de ruta (0).
- Haga clic en la Herramienta para crear una ubicación de red en la barra de herramientas Network Analyst.
-
En la visualización del mapa, digitalice un polígono que cubra aproximadamente el área del centro de la ciudad como se muestra a continuación.
Haga clic para agregar vértices; haga doble clic para completar el polígono.
Se agrega una nueva zona de ruta, Graphic Pick 1, a la clase de zonas de ruta en la ventana de Network Analyst. -
En la ventana de Network Analyst, haga doble clic en el nuevo objeto de zona de ruta, Graphic Pick 1.
Se abre la ventana Propiedades de la zona de ruta.
-
Establezca las propiedades de la zona de ruta como se muestra en la tabla siguiente.
Atributo
Valor
Descripción
RouteName
Centro de la ciudad
El nombre de la ruta a la que está asociada esta zona de ruta.
IsHardZone
Verdadero
La furgoneta no puede servir órdenes que estén fuera de la zona de ruta. Si se establece este valor en Verdadero, se garantiza que a la furgoneta solo se asignen órdenes que estén dentro de la zona de ruta.
-
Repita los pasos 1-6 para agregar dos zonas de ruta más: una para North Bay y otra para East Bay.
El mapa y la ventana de Network Analyst deben contener tres objetos de zona de ruta.
Configurar las propiedades para el análisis
A continuación, especificará 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 los depósitos.
-
Asegúrese de que no haya nada seleccionado en la lista Atributo de distancia.
Puesto que no está utilizando ningún parámetro de coste basado en distancia, tal como CostPerUnitDistance o MaxTotalDistance, no es necesario establecer el atributo de distancia.
- Establezca Fecha predeterminada en Día de la semana. En la lista desplegable Día de la semana elija Lunes.
-
Dado que la capacidad de la furgoneta se mide solo por el número total de pasajeros que puede acomodar, establezca Cálculo de capacidad en 1.
Si la capacidad se ha medido mediante el número total de pasajeros y el número máximo de sillas de ruedas que se pueden acomodar en la furgoneta, el cálculo de capacidad sería 2.
-
Deje las opciones predeterminadas para las demás propiedades.
- Haga clic en Aceptar.
Ejecute el proceso para determinar la solución
-
Haga clic en el botón Resolver. en la barra de herramientas Network Analyst.
El solucionador de VRP calcula las rutas para cada furgoneta. Cada ruta comienza en un depósito, recoge a una o más personas si el tiempo que pasan en la furgoneta es menor que el valor de MaxTransitTime especificado en el par de órdenes, las deja en sus hospitales, continúa recogiendo y dejando a otras personas, y vuelve al final al depósito. Las rutas solo sirven órdenes en sus zonas de ruta asignadas.
Determinar indicaciones giro por giros para las rutas
-
Haga clic en el botón Ventana de indicaciones en la barra de herramientas Network Analyst.
Se abre el cuadro de diálogo Indicaciones.
- Puede exportar el problema de generación de rutas para vehículos como un archivo de capa (<nombre de archivo> .lyr) en disco para poder cargarlo en un documento de mapa diferente.
- Salga de ArcMap sin guardar ningún cambio.