Prestar servicio a varios clientes desde un único centro de distribución utilizando Last Mile Delivery

Complejidad: PrincipianteRequisitos de datos: ArcGIS Tutorial Data for Desktop

Una nueva empresa de sándwiches de desayuno ha prosperado y se ha convertido en un negocio floreciente de reparto de sándwiches a cafeterías independientes de toda el área de San Francisco. Los sándwiches han ganado seguidores propios y las cafeterías los piden por docenas. Para trabajar con el horario de la hora punta de las cafeterías, la empresa de sándwiches debe entregarlos en las cafeterías entre las 5:00 y las 7:30. Es decir, la empresa de sándwiches y su flota de conductores deben ser lo más eficientes posible a la hora de realizar sus entregas durante esta pequeña ventana de tiempo.

Por ahora, los conductores no tienen problemas de espacio para transportar todos los sándwiches del desayuno, pero acaban retrasándose cuando entregan órdenes con cantidades mayores. Dado que la ventana de tiempo es tan importante, la empresa quiere contabilizar mejor el tiempo de entrega sobre la base de las cantidades que se entregan.

Nota:
Los datos utilizados en este tutorial son ficticios y se han creado únicamente para resolver el escenario de ejemplo expuesto anteriormente.

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.

Crear un mapa

Siga estos pasos para crear un mapa:

  1. Inicie ArcGIS Pro.
  2. Cree un nuevo proyecto haciendo clic en la plantilla Mapa. Opcionalmente, cambie el nombre de su proyecto y su ubicación.

    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.

Nota:
Si realiza un análisis con 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 lado derecho de la aplicación de forma predeterminada, haga clic con el botón derecho en Carpetas y elija Agregar conexión a carpetas Agregar conexión de carpeta.

    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 al mapa el dataset de red contenido en la carpeta.

  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. En el panel Contenido, desactive Streets_ND para visualizar solo el mapa base.

Geocodificar las cafeterías

Ahora geocodificará el archivo CoffeeShops.csv para crear una clase de entidad con las ubicaciones de los clientes. Cuando una tabla tiene direcciones para una ubicación, puede localizarse en un mapa mediante geocodificación. Las direcciones pueden estar en un solo campo o en varios campos de la tabla.

Nota:

Si dispone de sus propios datos de calles, puede crear un localizador utilizando esos datos; de lo contrario, Esri ofrece el ArcGIS World Geocoding Service, que consume créditos.

  1. En el panel Catálogo, examine la ubicación de los datos del tutorial, haga clic con el botón derecho en SanFranciscoLocator.loc y haga clic en Agregar al proyecto.
  2. Haga clic con el botón derecho en CoffeeShops.csv y, en el menú contextual, seleccione Geocodificar tabla.

    Aparece el panel Geocodificar tabla.

  3. En el panel Geocodificar tabla, haga clic en Iniciar.

    Panel Geocodificar tabla

  4. En la lista desplegable Localizador de entrada, seleccione SanFranciscoLocator.
  5. En el panel Geocodificar tabla, haga clic en Siguiente.
  6. Asegúrese de que Tabla de entrada apunta a CoffeeShops.csv; la lista desplegable tiene Más de un campo como dirección para los clientes en los campos Dirección, Ciudad y Código postal y haga clic en Siguiente.
  7. Asigne los campos de dirección como se indica a continuación:
    • Address o Place a Dirección
    • City a Ciudad
    • ZIP a Código postal
    • State a Estado
  8. Haga clic en Siguiente.

    Deje Salida como está para guardarla en el espacio de trabajo del proyecto.

  9. En Tipo de ubicación preferida, elija Ubicación de generación de rutas en las opciones desplegables.

    Esta opción sitúa las entidades localizadas en la ubicación de la red de calles en lugar de en la azotea. En Network Analyst, los puntos se ubican espacialmente en el eje de la calle más cercana. El centro de un edificio a veces puede estar más cerca de una calle que no sea la de acceso a la entrada.

  10. Deje Campos de salida establecido en Todos y haga clic en Siguiente.
  11. En Categoría, active Dirección y haga clic en Finalizar.
  12. Haga clic en Ejecutar.

    Una vez finalizado el proceso, aparecerá un mensaje preguntándole si desea repetir la geocodificación.

  13. Haga clic en No, ya que todas las ubicaciones se geocodifican correctamente.

    Mensaje de geocodificación completada

  14. Cierre el panel Geocodificar tabla.

Crear la capa de análisis Last Mile Delivery

El solucionador Last Mile Delivery se centra en el subconjunto de problemas de generación de rutas para vehículos asociados a la entrega de paquetes a clientes finales. Los problemas de Last Mile Delivery tienen un único centro de distribución desde el que salen los vehículos de reparto para visitar las ubicaciones de los clientes. Esta capa le permite agregar información sobre los clientes, la ubicación inicial y final de las rutas, los vehículos y los conductores. Existen varias clases de entidad y tablas para recopilar información. También hay varios parámetros a los que puede acceder en la pestaña Capa Last Mile Delivery para asegurarse de que se está resolviendo para la fecha correcta y utilizando las unidades y la información de viaje del vehículo correctas.

Para crear la capa de análisis Last Mile Delivery, siga estos pasos:

  1. En la pestaña Análisis, en el grupo Flujos de trabajo, haga clic en Análisis de red > Last Mile Delivery Last Mile Delivery.

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

    Esta capa hace referencia al dataset de red de San Francisco porque la red estaba en el panel Contenido cuando se creó la capa Last Mile Delivery.

    Nota:

    Para revisar 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, haga clic en el menú desplegable Análisis de red y vea Fuente de datos de red.

Agregar órdenes

Las órdenes se utilizan para especificar información sobre los clientes. Cada orden puede contener información sobre el tiempo que se espera que el conductor esté en esa ubicación, la cantidad de elementos que se van a entregar o recoger y las horas de las citas, entre otras cosas.

Para agregar órdenes, siga estos pasos:

  1. Seleccione la capa Last Mile Delivery en el panel Contenido para habilitar la pestaña.
    Cinta de la capa Last Mile Delivery
  2. Haga clic en la pestaña Capa Last Mile Delivery y, en la sección Datos de entrada, haga clic en el botón Importar órdenes Importar órdenes.

    Aparece el cuadro de diálogo Agregar ubicaciones.

  3. Seleccione CoffeeShops_Geocoded para Ubicaciones de entrada.
  4. En los pasos del 4 al 6, realizará una asignación de campos. Sirve para garantizar que la información relativa a las cafeterías de la clase de entidad CoffeeShops_Geocoded se asigna y rellena correctamente en los campos correspondientes de la subcapa Órdenes.
  5. En Asignaciones de campos, seleccione Nombre en la sección Propiedad.
  6. En la lista desplegable Nombre de campo, seleccione USER_Name cerca del final de la lista.

    El solucionador Last Mile Delivery requiere un nombre único para cada orden. Dado que cada cafetería de la lista para entregar tiene un nombre único, los nombres de las cafeterías (en el campo USER_Name) se asignan al campo Name de la subcapa Órdenes.

  7. Asigne la siguiente propiedad adicional como DeliveryQuantity_1>USER_DozensOfBreakfastSandwiches.

    La sandwichería reparte sándwiches por docenas. La cantidad a entregar en cada tienda se rastrea en el campo USER_DozensOfBreakfastSandwiches, por lo que este se asignará al campo DeliveryQuantity_1 que permite al solucionador Last Mile Delivery rastrear las docenas de sándwiches entregados en cada ubicación.

  8. Seleccione CurbApproach en la sección Propiedad y seleccione Lado derecho del vehículo en la lista desplegable Valor predeterminado.

    El campo CurbApproach designa el lado de la calle en el que debe situarse la ubicación en relación con el vehículo durante el servicio. Al tratarse de rutas de San Francisco, donde los coches circulan por el lado derecho de la calle, establecer CurbApproach en el lado derecho del vehículo garantiza que la furgoneta de reparto se estacione en la acera junto a las cafeterías, y el conductor no tendrá que cruzar la calle.

  9. Haga clic en Aceptar.

    Las cafeterías se agregan a la subcapa Órdenes.

    Cafeterías en la subcapa Órdenes

    Aparece un mensaje de advertencia indicando que el proceso de geocodificación hizo que el campo Name de la clase de entidad CoffeeShops_Geocoded fuera demasiado largo para el campo Name de la subcapa Órdenes. Cierre la ventana del mensaje de advertencia ya que los nombres no eran demasiado largos.

    Mensaje de advertencia

  10. Ahora actualizará el tiempo de servicio en función de la cantidad de entrega.
  11. En el panel Contenido, haga clic con el botón derecho en la subcapa Órdenes y seleccione Tabla de atributos.
  12. En la tabla de atributos, haga clic con el botón derecho en el campo ServiceTime y seleccione Calcular campo.

    Aparecerá el cuadro de diálogo Calcular campo.

  13. En los pasos 11 y 12, calculará el tiempo de servicio en función de la cantidad de sándwiches que haya pedido una cafetería determinada. La cantidad pedida es por docenas y el tiempo de entrega se encuentra en minutos. Si la cafetería pidió una, dos o tres docenas de sándwiches, tardará 3, 4 o 5 minutos, según corresponda, en realizar la entrega. Cualquier orden superior a tres docenas se tardará 6 minutos en entregar en la cafetería.
  14. Establezca el valor ServiceTime en BasedOnQuantity(!DeliveryQuantity_1!).
  15. Use lo siguiente para Bloque de código:
  16. def BasedOnQuantity(quantity):
        if quantity == 1:
            time = 3
        elif quantity == 2:
            time = 4
        elif quantity == 3:
            time = 5
        else:
            time = 6
        return time
    La ventana debería parecerse a la siguiente:

    Cuadro de diálogo Calcular campo con los parámetros completados

  17. Haga clic en la marca de verificación para verificar la expresión.
  18. Haga clic en Aceptar.

    El campo ServiceTime se rellena ahora con un valor apropiado.

  19. Cierre la tabla de atributos.

Agregar la ubicación de la sandwichería a la subcapa Depósitos

Los depósitos son lugares donde las rutas comienzan y terminan su jornada. Todas las rutas deben comenzar y terminar en la misma ubicación. Para este análisis, se utilizará la sandwichería como depósito. Al igual que con los datos de los clientes, la dirección de la sandwichería puede geocodificarse. Sin embargo, como se trata de una única dirección, utilizará en su lugar el panel Localizar para geocodificar la dirección y agregarla a la subcapa Depósitos.

Nota:

Utilizar la opción Agregar a clase de entidad con ArcGIS World Geocoding Service consume créditos. El uso del localizador proporcionado no consume créditos.

Para agregar la ubicación de la sandwichería, siga estos pasos:

  1. Haga clic en la pestaña Mapa, y en el grupo Consulta, haga clic en el botón Localizar Localizar.

    Botón Localizar del grupo Consulta

    Aparece el panel Localizar.

  2. Haga clic en la flecha desplegable Opciones junto al cuadro de búsqueda.

    Botón Opciones en el panel Localizar

  3. Active SanFranciscoLocator.
  4. En el cuadro de texto de búsqueda, introduzca la dirección de la sandwichería, 50 Southdale Ave. Daly City, CA 94015 y pulse Intro.
  5. En el panel Localizar, haga clic con el botón derecho en la opción A y seleccione Agregar a clase de entidad.

    Aparece la ventana Agregar a clase de entidad, donde puede seleccionar la clase de entidad para agregar la dirección.

  6. Expanda Last Mile Delivery: Depósitos, seleccione la plantilla Depósitos y haga clic en Aceptar.
  7. En el panel Contenidos, haga clic con el botón derecho en la subcapa Depósitos y seleccione Tabla de atributos.

    Se ha agregado una fila a la tabla de atributos que representa la única ubicación de la sandwichería. La dirección completa de la sandwichería se incluyó como nombre del depósito.

  8. Cierre la tabla de atributos.
  9. En la pestaña Editar, borre la selección y guarde las ediciones.
  10. Cierre el panel Localizar.

Agregar información a la subcapa Rutas

Las rutas incluyen información tanto sobre el vehículo como sobre el conductor. Se puede incluir información sobre la jornada laboral de un conductor, como cuándo empieza y cuánto tiempo puede trabajar al día. También se puede incluir información sobre el vehículo, como su capacidad y el coste de su funcionamiento.

Para entregar las órdenes a 173 cafeterías de forma eficiente, establezca los siguientes parámetros al agregar las rutas. Deberá especificar el número de rutas que pueden dar servicio a 173 cafeterías, la ubicación inicial y final de la ruta (que es la ubicación de la sandwichería), la hora más temprana a la que puede comenzar la ruta (la ventana de tiempo de entrega es de 5:00 a 7:30), la capacidad del camión, el tiempo total máximo que puede tomar la ruta y cuánto se paga a un conductor por hora.

Para agregar rutas y otra información a la subcapa Rutas, siga estos pasos:

  1. En el panel Contenido, haga clic con el botón derecho en el nombre de la capa de grupo Last Mile Delivery y seleccione Zoom a capa para alejarse a la extensión completa.
  2. Vuelva a la pestaña Capa Last Mile Delivery.
  3. En el grupo Datos de entrada, haga clic en la lista desplegable Importar rutas y seleccione Agregar rutas.

    Aparece el cuadro de diálogo Agregar rutas de Problema de generación de rutas para vehículos.

  4. Defina estos valores:
    1. Número de rutas: 12

      La sandwichería dispone de 12 vehículos para estas entregas, por lo que ese es el número de rutas que pueden enviar.

    2. Nombre del depósito inicial: 50 Southdale Ave. Daly City, CA 94015

      La ruta debe empezar y terminar en la sandwichería, por lo que los valores Nombre del depósito inicial y Nombre del depósito final son la dirección de la sandwichería.

      Puede seleccionar Nombre del depósito inicial en la lista desplegable y el valor debe coincidir con el del campo Name de la subcapa Depósitos.

    3. Nombre del depósito final: 50 Southdale Ave. Daly City, CA 94015

      Puede seleccionar Nombre del depósito final en la lista desplegable y el valor debe coincidir con el del campo Name de la subcapa Depósitos.

    4. Hora de inicio más temprana de la ruta: 5:00 a.m.

      Las rutas deben comenzar a las 5 de la mañana para llevar los sándwiches de desayuno a las cafeterías a tiempo para el ajetreo matutino.

    5. Capacity_1: 150

      Cada vehículo puede albergar un máximo de 150 docenas de sándwiches de desayuno. Es importante que las unidades utilizadas para Capacity_1 coincidan con las unidades para DeliveryQuantity_1, que en este caso es docenas de sándwiches.

    6. Tiempo máximo total: 150

      Las rutas deben estar terminadas y de vuelta en la sandwichería a las 7:30 de la mañana. Esto da a los conductores 2,5 horas para completar sus rutas. Dado que las unidades del campo de tiempo que se están utilizando para modelar este problema son minutos, deberá introducir 150 minutos para Tiempo máximo total.

    7. Coste por unidad de tiempo: 0,5

      Los conductores cobran 30 $ por hora, pero como para modelar este problema se utilizan minutos, equivale a 0,5 $ por minuto.

  5. Haga clic en Aceptar para ejecutar la herramienta.

    Se agregan doce rutas a la subcapa Rutas.

Agregar zonas

Para mantener a los conductores en sus regiones preferidas de la ciudad, ahora agregará zonas.

  1. En la pestaña Capa Last Mile Delivery, en la sección Datos de entrada, haga clic en el botón Crear entidades Crear entidades.
  2. En el panel Crear entidades, seleccione la plantilla Zonas.
  3. Dibuje dos polígonos para separar el norte y el sur del Golden Gate Park y San Miguel Hills. Las zonas deben parecerse a la imagen que aparece a continuación.

    Zonas norte y sur agregadas

  4. En el panel Contenido, haga clic con el botón derecho en Zonas y seleccione Tabla de atributos.
  5. Para el polígono al sur del Golden Gate Park y de San Miguel Hills, cambie el valor del campo Name a Sur.
  6. Para el polígono al norte del Golden Gate Park y de San Miguel Hills, cambie el valor del campo Name a Norte.
  7. Abra la tabla de atributos Rutas y desplácese hacia la derecha hasta los campos ZoneName y IsHardZone.
  8. Haga clic con el botón derecho en el campo IsHardZone y haga clic en Calcular campo.

    Aparecerá el cuadro de diálogo Calcular campo.

  9. Establezca el valor IsHardZone en True.

    Este ajuste define que las rutas solo pueden entregar órdenes dentro de la zona especificada.

  10. Seleccione las tres primeras filas de la tabla de atributos, haga clic con el botón derecho en el campo ZoneName y haga clic en Calcular campo.

    Aparecerá el cuadro de diálogo Calcular campo.

  11. Establezca el valor ZoneName en Sur.

    Esto pone un límite a las tres primeras rutas que pueden entregar órdenes solo en la zona sur.

  12. Cambie la selección de filas en la tabla de atributos y utilice Calcular campo para establecer el valor ZoneName en Norte para las nueve rutas restantes.

    Esto pone un límite a las nueve rutas restantes que pueden entregar órdenes solo en la zona norte.

  13. Borre la selección y guarde las ediciones.
  14. Cierre la tabla de atributos.

Establecer la fecha y ejecutar el análisis

Ahora establecerá una fecha para el inicio de las rutas. No necesita fijar la hora porque cada ruta tiene una hora establecida desde que agregó rutas utilizando la herramienta Agregar rutas de Problema de generación de rutas para vehículos en una sección anterior.

  1. En la cinta Capa Last Mile Delivery, en la sección Fecha y hora, haga clic en la flecha desplegable Fecha predeterminada y establezca la fecha como 03/14/2024.
  2. En el grupo Análisis, haga clic en Ejecutar.

    La capa Last Mile Delivery se resuelve. Las órdenes se asignan a rutas y la simbología se actualiza para mostrar las rutas y sus órdenes asignadas en colores correlacionados.

    Las órdenes atendidas por una ruta específica se muestran con un código de colores correlacionados

  3. En el panel Contenido, haga clic con el botón derecho en la subcapa Rutas y seleccione Tabla de atributos.
  4. Desplácese hacia la derecha en la tabla hasta el campo de salida OrderCount.
  5. Consulte los resultados. Varias clases de entidades de la capa de análisis Last Mile Delivery tienen campos de salida que proporcionan detalles sobre la solución resuelta. La tabla Rutas proporciona una visión general de cada ruta, pero también puede consultar los detalles de cada orden. La salida Rutas incluye el número de ubicaciones a las que va cada conductor, el tiempo total que tarda, cuándo empieza la ruta y cuándo se espera que regrese a la sandwichería. Observará que tres rutas no daban servicio a ninguna de las cafeterías, porque estaban cubiertas por otras rutas. En consecuencia, la mayoría de los campos de estas tres rutas tienen valores nulos.