Buscar las rutas mejores para servir pares de órdenes

Disponible con una licencia de Network Analyst.

En este ejercicio, su objetivo es encontrar las rutas mejores para que una flota de furgonetas transporte a personas que no tendrían de otra manera acceso al transporte desde sus hogares hasta 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. Mediante otras entidades de la capa de análisis VRP, se asegurará también de que se cumplan requisitos adicionales. Por ejemplo, introduzca un tiempo de tránsito máximo para los pares de órdenes, de modo que los viajeros no pasen demasiado tiempo en tránsito; use ventanas de tiempo en las órdenes para que los viajeros no lleguen tarde a las citas. Algunos viajeros necesitan silla de ruedas; utilizará especialidades para asociar a esos viajeros a furgonetas que lleven elevadores para silla de ruedas. Cuando se determinen las rutas, publíquelas en ArcGIS.com para que los conductores puedan acceder a ellas mediante Navigator.

Precaución:
Si ejecuta el tutorial utilizando ArcGIS Online, consumirá créditos.

Obtener los datos

Puede descargar los datos de este tutorial.

  1. Vaya a la página de descarga de datos.
  2. Haga clic en el botón Descargar y guarde localmente el archivo.
  3. Descomprima el archivo descargado.

Crea un mapa

  1. Abra ArcGIS Pro.
  2. Cree un proyecto nuevo basado en la plantilla Map.aptx.

    Aparece un proyecto nuevo con un mapa.

Agregar los datos del tutorial al proyecto

Un dataset de red es un modelo inteligente del sistema de carreteras. No solo contiene la ubicación y los atributos de las carreteras, sino también información sobre cómo se relacionan entre sí las carreteras, por ejemplo, qué carreteras están conectadas, qué giros entre carreteras conectadas están prohibidos o permitidos, así como otra información que afecta a las rutas de viaje disponibles y a la duración del viaje. El solucionador de VRP hace referencia al dataset de red para determinar la ruta más corta entre paradas.

Nota:
Si realiza un análisis utilizando ArcGIS Online, el solucionador hace referencia a un dataset de red mundial y de alta calidad almacenado en la nube de ArcGIS Online y utiliza créditos de ArcGIS Online. También puede utilizar su propio dataset de red almacenado localmente en su equipo o utilizar ArcGIS Enterprise para publicar servicios de generación de rutas mediante el uso de su propio dataset de red y configurar los servicios con su portal corporativo para utilizarlos desde ArcGIS Pro.

En esta serie de pasos deberá agregar un dataset de red al mapa.

  1. En el panel Catálogo, que se encuentra en el lateral de la aplicación de forma predeterminada, haga clic con el botón derecho en Carpetas y elija Agregar conexión de carpeta Agregar conexión a carpetas.

    Se abrirá el cuadro de diálogo Agregar conexión de carpeta.

  2. Examine la carpeta donde colocó los datos del tutorial, haga doble clic en Network Analyst y, a continuación, haga clic en Tutorial para seleccionar la carpeta.
  3. Haga clic en Aceptar.

    Se creará una conexión a la carpeta Tutorial.

  4. A continuación, agregue uno de los datasets de red de la carpeta al mapa.

  5. En el panel Catálogo, expanda Carpetas > Tutorial > SanFrancisco.gdb > Transporte.
  6. Arrastre Streets_ND, que tiene un icono de dataset de red Dataset de red sobre el mapa.

    El dataset de red se agrega al panel Contenido y al mapa.

  7. Haga clic en Streets_ND en el panel Contenido y elija Zoom a capa Zoom a capa para ver el área de San Francisco.

    De forma predeterminada, los datasets de red creados con datos de tráfico muestran las condiciones del tráfico para la fecha y hora actual cuando se agregan al mapa. En este dataset de red se incluye el tráfico histórico, de modo que lo que está viendo son las condiciones del tráfico típicas para el día y la hora actuales de la semana. No todas las carreteras de este dataset de red incluyen el tráfico, de modo que, de forma predeterminada, solo se muestran aquellas que sí lo hacen.

    El área que cubre el dataset de red es donde puede realizar análisis de red.

    No es necesario visualizar el dataset de red para realizar un análisis, por lo que, para el siguiente análisis podrá ocultarlo.

  8. En el panel Contenido, desactive Streets_ND para visualizar solo el mapa base.
  9. Agregue los puntos que representen las ubicaciones de depósitos para las furgonetas en el mapa.
  10. En el panel Catálogo, vaya a Tutorial > SanFrancisco.gdb > Análisis.
  11. En el panel Catálogo, haga clic con el botón derecho en la capa CentralDepots y elija Agregar al mapa actualAgregar datos.
    Nota:

    También puede agregar una capa al mapa arrastrándola desde el panel Catálogo al mapa.

    La capa CentralDepots se agrega al panel Contenido y al mapa.

Crear la capa Problema de generación de rutas para vehículos

Una capa Problema de generación de rutas para vehículos (VRP) proporciona la estructura y las propiedades necesarias para definir y solucionar problemas de generación de rutas para varios vehículos. También contiene los resultados posteriores a la solución.

  1. En la pestaña Análisis del grupo Flujos de trabajo, haga clic en Análisis de red > Problema de generación de rutas para vehículos Problema de generación de rutas para vehículos.

    La capa VRP se agrega al panel Contenido. Incluye varias subcapas que contienen las entradas y salidas del análisis.

    La ruta hace referencia al dataset de red de San Francisco porque la red estaba en el panel Contenido cuando se creó la capa de ruta.

    Nota:

    Para ver o cambiar la fuente de datos de red que se utiliza para crear la capa de análisis de red, en la pestaña Análisis, en el grupo Flujos de trabajo, puede hacer clic en el menú desplegable Análisis de red y buscar en Fuente de datos de red.

  2. En el panel Contenido, haga clic en Problema de generación de rutas para vehículos para seleccionar la capa de grupo.

    La pestaña Problema de generación de rutas para vehículos aparece en el grupo Network Analyst, en la parte superior de ArcGIS Pro.

  3. Haga clic en VRP para ver los controles de la pestaña.
    Pestaña VRP

    Utilizará estos controles para definir el modelo VRP que desea generar.

    Sugerencia:

    La pestaña VRP solo aparece cuando se selecciona una capa de VRP en el panel Contenido. Además, si tiene varias capas VRP, puede cambiar la configuración de las capas individualmente o seleccionar varias capas para editar la configuración de todas las capas seleccionadas si comparten la misma fuente de datos de red.

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 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:

AtributoDescripció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

SpecialityNames

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 debe visitar un hospital predeterminado. Puede modelar este escenario 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 órdenes.

En los siguientes pasos, geocodificará las direcciones de pacientes y hospitales y cargará los puntos resultantes como órdenes:

  1. En el panel Catálogo, vaya a la ubicación de los datos del tutorial, busque el archivo OrderPairs.xls y haga doble clic en él.

    El archivo OrderPairs.xls se expande y verá una tabla llamada Patients$.

  2. Nota:
    Aparecerá un mensaje de error si el controlador de Microsoft requerido no está instalado. Descubra cómo trabajar con archivos de Excel en ArcGIS Pro.
  3. Haga clic con el botón derecho en la tabla Patients$ y haga clic en Geocodificar tabla desde el menú contextual.

    Aparece el asistente de Geocodificar tabla. La página que se abre es una descripción de los pasos que seguirá.

  4. Haga clic en el botón Iniciar.
  5. En la pregunta ¿Los datos que desea geocodificar se encuentran en un campo o en más de un campo?, seleccione Un campo desde la lista desplegable.
  6. Haga clic en Siguiente.
  7. Haga clic en el botón Examinar junto al parámetroLocalizador de entrada, vaya a la ubicación guardada de los datos del tutorial y seleccione SanFranciscoLocator.
  8. Haga clic en Siguiente.
  9. En la lista desplegable Campo de datos, seleccione el campo PatientAddress y haga clic en Siguiente.

    Primero, geocodificará las direcciones de los hogares de los pacientes.

  10. En el nombre de campo Salida, asegúrese de que muestre Patients_Geocoded como nuevo nombre de clase de entidad; a continuación, haga clic en Finalizar.
  11. Revise las entradas de la herramienta de geoprocesamiento Geocodificar tabla y haga clic en el botón Ejecutar Ejecutar situado en la parte inferior del panel.
    Herramienta de geoprocesamiento Geocodificar tabla con entradas
  12. Haga clic en No en el elemento emergente Geocodificación completa.

    No es necesario que inicie el proceso de regeocodificación, puesto que los nombres de direcciones se asignaron correctamente. En sus propios flujos de trabajo, podría ser necesario repetir la geocodificación para borrar parte de la información de direcciones.

  13. Repita los pasos del 1 al 11 con los siguientes cambios para geocodificar las ubicaciones de hospitales para las citas de los pacientes:
    • En el paso 8, seleccione HospitalAddress.
    • En el paso 9, cambie el campo con el nombre Salida por DestinationHospitals_Geocoded.

    Puede actualizar la herramienta de geoprocesamiento Geocodificar tabla con los valores anteriores y volver a ejecutar la herramienta sin tener que recorrer todo el asistente.

  14. En el panel Contenido, desactive las dos capas de resultados de geocodificación para que no estén visibles en la visualización del mapa.

    En los próximos pasos, cargará estas capas en la clase de análisis de red Órdenes.

  15. En la pestaña VRP, en el grupo Datos de entrada, haga clic en Importar órdenesImportar órdenes.

    Aparece la ventana Agregar ubicaciones.

  16. Asegúrese de que la Capa de análisis de red de entrada esté establecida en Problema de generación de rutas para vehículos y que la Subcapa esté establecida en Órdenes.
  17. Haga clic en la flecha desplegable para Ubicaciones de entrada y seleccione Patients_Geocoded. Se trata de la clase de entidad de punto que realizó en los pasos anteriores que se agregó al mapa automáticamente.
  18. En Asignaciones de campos, seleccione Nombre desde Propiedad y seleccione USER_OrderName1 en el parámetro Nombre de campo.
  19. Indica que el campo USER_OrderName1 de la clase de entidad se debería asignar al campo Nombre al importar Órdenes.
  20. Asigne los siguientes campos si no se han asignado automáticamente:

    • Description > USER_PatientAddress
    • TimeWindowStart > USER_PickFrom
    • TimeWindowEnd > USER_PickTo
    • PickupQuantity_1 > USER_TotalPassengers

  21. En Asignaciones de campos, seleccione ServiceTime desde Propiedad y escriba 2 en el parámetro Valor predeterminado.

    Todas las ubicaciones de direcciones de pacientes que se carguen tendrán un valor de tiempo de servicio de 2 para tener en cuenta el tiempo medio (en minutos) que tardan los pasajeros en montar en la furgoneta.

  22. En Asignaciones de campos, seleccione MaxViolationTime desde Propiedad y escriba 0 en el parámetro Valor predeterminado.

    Al definir todas las propiedades de MaxViolationTime como cero, el solucionador de VRP solo buscará rutas que visiten las órdenes dentro de sus ventanas de tiempo.

  23. Deje la configuración predeterminada para el resto de parámetros y haga clic en el botón Aceptar.
  24. Se agregan un total de 15 registros en la tabla de atributos Órdenes y se muestran en el mapa.

  25. Repita los pasos del 14 al 16 con estos cambios:
    • En el paso 16, seleccione DestinationHospitals_Geocoded.
    • Realice las siguientes asignaciones de campos:
      • Name > USER_OrderName2
      • Description > USER_HospitalAddress
      • DeliveryQuantity_1 > USER_TotalPassengers
    Nota:
    El valor del atributo Name debe ser único en la clase de análisis de red Órdenes. En este caso, hay muchos pacientes que necesitan visitar el mismo hospital. Por lo tanto, si se utilizaran las direcciones de hospitales 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.
  26. Deje la configuración predeterminada para el resto de parámetros y haga clic en el botón Aceptar.
  27. Se agregan un total de 15 registros en la tabla de atributos Órdenes y se muestran en el mapa.

Agregar pares de órdenes

Es necesario 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.

  1. En la pestaña VRP, en el grupo Datos de entrada, haga clic en Importar pares de órdenesPares de órdenes de entrada desde la lista desplegable de opciones de importación.

    Importar pares de órdenes desde la lista desplegable de opciones de importación

    Aparece la ventana Agregar ubicaciones.

    Ya ha usado con anterioridad esta herramienta para cargar órdenes desde una clase de entidad. Ahora la utilizará para cargar datos en la tabla OrderPairs desde un archivo de Excel.

  2. Asegúrese de que la Capa de análisis de red de entrada esté establecida en Problema de generación de rutas para vehículos y que la Subcapa esté establecida en Pares de órdenes.
  3. Haga clic en el botón Examinar situado junto al campo Ubicaciones de entrada y vaya a la ubicación de los datos del tutorial para seleccionar la tabla Patients$ desde el archivo OrderPairs.xls.
  4. Compruebe que se hayan rellenado automáticamente las siguientes asignaciones de campos:
    • FirstOrderName > OrderName1
    • SecondOrderName > OrderName2
    • MaxTransitTime > MaxTransitTime
  5. Deje la configuración predeterminada para el resto de parámetros y haga clic en el botón Aceptar.
  6. Se agregan un total de 15 registros a la tabla OrderPairs.

Agregar depósitos

La empresa de logística opera furgonetas desde tres depósitos cuyas ubicaciones se muestran en la capa de entidades CentralDepots que agregó con anterioridad al mapa. Ahora agregará estas entidades de puntos a la clase de análisis de red Depósitos.

  1. En la pestaña VRP, en el grupo Datos de entrada, haga clic en Importar depósitosImportar depósitos.

    Aparece la ventana Agregar ubicaciones.

  2. Asegúrese de que la Capa de análisis de red de entrada esté establecida en Problema de generación de rutas para vehículos y que la Subcapa esté establecida en Depósitos.
  3. Haga clic en la flecha desplegable para Ubicaciones de entrada y seleccione CentralDepots.
  4. En Asignaciones de campos, seleccione Nombre desde Propiedad y asegúrese de que Nombre se asigne automáticamente en el parámetro Nombre de campo.
  5. Deje la configuración predeterminada para el resto de parámetros y haga clic en el botón Aceptar.
  6. Se agregan tres registros a la tabla de atributos Depósitos y se muestran en el mapa.

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 por cada furgoneta. En esta sección, agregará las rutas con la tabla de atributos Rutas. Existen otras opciones para utilizar la herramienta Agregar ubicaciones para importar una tabla que ya ha creado o para utilizar la herramienta de geoprocesamiento Agregar rutas de Problema de generación de rutas para vehículos, que creará un conjunto de rutas con los mismos parámetros. En este caso, se contará con suficientes ajustes de cada ruta para saber cuál será el método más rápido a la hora de introducir los valores directamente en la tabla.

  1. En el panel Contenido, haga clic con el botón derecho en Rutas y seleccione Tabla de atributos desde el menú contextual.

    La tabla de atributos aparece con los campos de entrada y salida para cada ruta.

  2. Haga clic en Haga clic para agregar una nueva fila para agregar información sobre las tres rutas como se muestra más abajo:

    NameStartDepotNameEndDepotNameCapacity_1

    Centro de la ciudad

    Depósito del centro de la ciudad

    Depósito del centro de la ciudad

    6

    North Bay

    Depósito de North Bay

    Depósito de North Bay

    6

    East Bay

    Depósito de East Bay

    Depósito de East Bay

    6

    Tres rutas agregadas a la tabla de atributos Rutas

  3. Haga clic en la pestaña Editar y, en el grupo Administrar ediciones, haga clic en el botón Guardar Guardar ediciones.
  4. Haga clic en en el cuadro de diálogo Guardar cambios.
  5. Cierre la tabla de atributos Rutas.

Agregar especialidades

Algunos de los pacientes recogidos usan silla de ruedas, pero solo una de las furgonetas tiene un elevador para ofrecer un acceso sencillo al vehículo para estos pacientes. Por lo tanto, establecerá una especialidad para indicar que estos pacientes necesitan un apoyo que solo proporciona esa ruta. Si observa el documento de Excel que se proporcionó con los datos del tutorial, verá que hay tres pacientes que necesitan accesibilidad para silla de ruedas: Tony, Tim y Bill. Además, la única furgoneta con la funcionalidad del elevador para silla de ruedas es la que realiza la ruta por el centro de la ciudad. En el siguiente conjunto de pasos, agregará valores a las tablas de atributos Especialidades de orden y Especialidades de rutas para indicar esta información.

Primero, introducirá la información sobre las especialidades de orden.

  1. En el panel Contenido, haga clic con el botón derecho en Especialidades de orden y seleccione Abrir desde el menú contextual.

    Aparece la tabla de atributos y puede introducir información sobre cada orden con una especialidad.

  2. Haga clic en el botón Haga clic para agregar una nueva fila para agregar información como se muestra más abajo:

    OrderNameSpecialtyName

    Tony (domicilio)

    Silla de ruedas

    Tony (médico)

    Silla de ruedas

    Tim (domicilio)

    Silla de ruedas

    Tim (médico)

    Silla de ruedas

    Bill (domicilio)

    Silla de ruedas

    Bill (médico)

    Silla de ruedas

    Orden y especialidad agregados a la tabla de atributos Especialidades de orden

  3. Haga clic en la pestaña Editar y, en el grupo Administrar ediciones, haga clic en el botón Guardar Guardar ediciones.
  4. Haga clic en en el cuadro de diálogo Guardar cambios.
  5. Cierre la tabla de atributos Especialidades de orden.
  6. Ahora introducirá la información de especialidades de rutas.
  7. En el panel Contenido, haga clic con el botón derecho en Especialidades de ruta y seleccione Abrir desde el menú contextual.

    Aparece la tabla de atributos y puede introducir información sobre cada ruta que puede servir como especialidad.

  8. Haga clic en el botón Haga clic para agregar una nueva fila.
  9. En RouteName, introduzca Centro de la ciudad.
  10. En SpecialtyName, introduzca Silla de ruedas.
  11. Haga clic en la pestaña Editar y, en el grupo Administrar ediciones, haga clic en el botón Guardar Guardar ediciones.
  12. Haga clic en en el cuadro de diálogo Guardar cambios.
  13. Cierre la tabla de atributos Especialidades de 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 o rutas.

En esta sección, dibujará los límites de estas zonas con el panel Crear entidades; sin embargo, si tiene zonas que ya están digitalizadas, se pueden importar con la herramienta de geoprocesamiento Agregar ubicaciones.

  1. En la pestaña VRP, en el grupo Datos de entrada, haga clic en Crear entidades Crear entidades.

    Aparece el panel Crear entidades, que muestra las plantillas de las clases de entidad asociadas con la capa VRP seleccionada.

  2. En el panel Crear entidades, seleccione Problema de generación de rutas para vehículos: Zonas de ruta.
  3. 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.
    Zona de ruta creada para el área del centro de la ciudad
  4. En el panel Contenido, haga clic con el botón derecho en Zonas de ruta y seleccione Tabla de atributos desde el menú contextual.

    Aparece la tabla de atributos y puede introducir información sobre la zona de ruta que acaba de crear.

  5. Haga doble clic en la primera fila bajo RouteName para editar el valor y escriba Centro de la ciudad.

    Es el nombre de la ruta asociada con esta zona de ruta.

  6. Asegúrese de que el valor IsHardZone se haya definido como True.

    La furgoneta no puede servir órdenes que estén fuera de la zona de ruta. Establecer este valor en True garantiza que solo se asignen órdenes que estén dentro de la zona de ruta a la furgoneta.

  7. Repita los pasos del 3 al 6 para agregar dos zonas de ruta más: una para North Bay y otra para East Bay.

    Zona de ruta creada para East Bay y North Bay

  8. Haga clic en la pestaña Editar y, en el grupo Administrar ediciones, haga clic en el botón Guardar Guardar ediciones.
  9. Haga clic en en el cuadro de diálogo Guardar cambios.
  10. Cierre la tabla de atributos Zonas de ruta.

Establecer las propiedades para el análisis del problema de generación de rutas para vehículos

A continuación, especificará las propiedades para su análisis del problema de generación de rutas para vehículos.

  1. En la pestaña VRP, en Configuración de viaje, asegúrese de que el Modo esté definido como Tiempo de conducción.

    Este modo de viaje encapsula varias configuraciones, como la política de cambios de sentido, políticas de calles restringidas y valores que se desea utilizar para los costes de tiempo y distancia.

  2. En el grupo Configuración de viaje, asegúrese de que Unidades de campo de tiempo tenga el valor Minutos y que Unidades de campo de distancia tenga el valor Millas.
  3. En el grupo Fecha predeterminada, seleccione Día de la semana desde la lista desplegable Tipo de fecha predeterminada.
  4. Desde la lista desplegable resultante con los días de la semana, seleccione Lunes.
  5. En el grupo Geometría de salida, seleccione A lo largo de la red desde la lista desplegable Tipo de forma lineal de geometría de salida.
    Nota:

    Las opciones de la geometría de salida solo afectan a la visualización de las rutas, no a los resultados que determina el solucionador de VRP.

Ejecutar el análisis

Ejecute el análisis VRP para determinar la asignación de ruta mejor.

  1. En la pestaña VRP, haga clic en Ejecutar Ejecutar.

    El solucionador de VRP calcula las rutas para cada furgoneta. Cada ruta comienza en un depósito; la furgoneta recoge a una o más personas si el tiempo que pasan en la furgoneta es menor que el MaxTransitTime especificado en el par de órdenes, las deja en las ubicaciones de los hospitales, continúa recogiendo y dejando a otras personas y, por último, regresa al depósito. Las rutas solo sirven órdenes en sus zonas de ruta asignadas.

    Solución de VRP con tres rutas que dan servicio a un conjunto de órdenes con especialidades
  2. Abra la tabla de atributos Órdenes y observe los momentos de recogida y llegada de los pacientes en el campo ArriveTime. Además, puede obtener la información sobre cuánto tarda cada ruta observando el campo TotalTime.