SmartMonkey es la plataforma de ruteo inteligente más rápida y fácil de usar del mercado.

Píldoras formativas – Ep 2. – Optimización de rutas en base a Zonas

Sabemos lo duro que son estos días. Planificar las rutas diariamente es un trabajo tedioso y desde SmartMonkey.io queremos ayudarte, por eso lanzamos una serie de píldoras formativas para ayudarte a mejorar en tu día a día. Queremos que planifiques mejor tus trabajos y para ello, la formación puede ayudarte a ganar ese plus.

En el episodio de hoy, optimizaremos definiendo Zonas de reparto. Esta estrategia es la más habitual en cualquier compañía de distribución y logística para resolver el problema diario de optimización de rutas.

Este es un problema muy complejo, también llamado problema del viajante, y dada la gran cantidad de posibles soluciones ( Factorial del número de lugares a visitar) y las limitaciones de nuestro cerebro, los humanos desarrollado una estrategia de simplificación del problema llamada divide y vencerás desarrollada en la antigua Roma y con grandes usos a día de hoy. Esta estrategia o algoritmo trata de reducir el problema en problemas más pequeños para así poder llegar a una solución en un tiempo razonable.

Puede parecer la estrategia más acertada y eficiente para resolver este problema pero en muchas ocasiones genera una perdida de eficiencia si se analizan todas las rutas en conjunto. El ejemplo típico de falta de eficiencia lo podemos encontrar en el uso de los códigos postales como sistema de zonificación. Cuándo un pedido justo queda en la frontera del siguiente código postal y el resto de servicios de ese código postal se encuentran alejados de este.

Los códigos postales, al no generarse en función de la concentración de los servicios, generan fronteras ficticias que impactan sobre el rendimiento de las operaciones de distribución , aunque a a su vez ayudan a agilizar la organización y el sorting del reparto.

Ejemplo de cliente justo fuera del código postal (Puntero en rojo) – Captura Google Maps

En la logística no existen los blancos y negros, y es por esa razón por la que en este momento es donde entran otros factores externos muy importantes en juego. El tiempo y la experiencia de los repartidores.

En logística no hay nada más caro que el tiempo. Por eso, cualquier acción encaminada a reducir tiempos es siempre muy bienvenida. En el ejemplo anterior, dividir por códigos postales es un trabajo sencillo, cualquier persona es capaz de hacer grupos por un código predefinido. Por esta razón, esa estrategia es buena y es ampliamente usada. Es una estrategia resolutiva en un corto espacio de tiempo con un rendimiento aceptable.

El otro factor clave es la experiencia del repartidor. Nuestros clientes nos transmiten que la experiencia puede marcar una diferencia de rendimiento de más de 3x entre un trabajador experto y otro que no. Por lo que es una variable muy importante a tener en cuenta.

El objetivo es poder planificar una ruta alcanzando buenos resultados en muy poco tiempo sin tener experiencia.

Smartmonkey goal

Para ello, definir zonas que representen la experiencia de los repartidores junto con un sistema de optimización de rutas puede ser una buena estrategia.

¿Cómo definimos una zona en Highway?

Una zona es una área en la que todos los servicios incluidos en ella comparten un mismo atributo. Por ejemplo, forman parte de la zona 1. Una vez definida una zona, deberemos asignar a esta zona al menos un vehículo para que pueda realizar los servicios.

Para poder definir zonas, usamos el concepto Provee – Requiere. Conceptualmente, estamos generando agrupaciones de servicios por una etiqueta que únicamente podrán ser asignados a los vehículos/rutas que compartan/provean de esa misma etiqueta. (Por esta razón las etiquetas deben ser exactamente iguales)

En este ejemplo, hemos asignado a cada uno de los servicios de cada zona una restricción Requiere según la zona que le corresponde. De esta forma podremos agruparlos según la imagen.

El segundo paso, es asignar qué rutas va o van a realizar qué zonas. Para ello, simplemente debemos editar la restricción Provee de cada una de las rutas y asignarle la misma etiqueta de las rutas que queremos que realice.

Restricción de Provee a cada una de las rutas

Ya sólo queda pulsar el botón de optimizar para conseguir la ruta optimizada mediante zonas. Como podemos ver en la imagen, los servicios se han asignado exactamente según las zonas que habíamos indicado.

Rutas planificadas teniendo en cuenta las zonas mediante la restricción provee

A continuación podrás descargar un documento XLSX de ejemplo con los servicios. Podrás ver como hay una columna extra Requisitos, está debemos hacer la asignación al concepto Requisito en el momento de subir el XLSX a la plataforma para que automáticamente le asigne la etiqueta de la zona.

Por último, después de tener las rutas optimizadas, podríamos jugar a modificar algún servicio de ruta, asignándolo de forma manual y ver si se obtiene alguna mejora o se consigue distribuir de forma más equilibrada, pero este último consejo lo veremos en próximo capítulos.