Highway

Sabemos lo duro que es tu día a día. Planificar las rutas es un trabajo tedioso que requiere mucha concentración y experiencia. Desde Routal.com queremos ayudarte, por eso lanzamos una serie de píldoras formativas para que te ayuden a mejorar día a día. Nuestro objetivos es que planifiques mejor, más rápido y con mayor éxito.
¿Empezamos?
En la entrada de hoy hablaremos sobre uno de los mayores problemas la georeferenciación, o en inglés Geocoding. Este término hace referencia al hecho de ser capaces de convertir una dirección escrita en unas coordenadas (GPS) en un mapa.
Este hecho que puede parecer tan trivial y obvio es proceso realmente muy complicado. ¿Cuántas veces Google Maps os ha dirigido a un lugar equivocado? En mi caso personal, decenas sino cientos de veces. Y tengo una anécdota personal, en mitad de los alpes suizos nevando y con una maleta pesada, nos envió a mujer y a mi a la otra punta del pueblo. Ya hace tiempo de aquello, pero no lo olvidaré jamás…
Esta anécdota no puede ocurrir en tu día a día. Tu negocio depende de ello. Por suerte tus repartidores se conocen bien las zonas y no tienen problemas en llegar a los lugares. (Un secreto, se perdieron muchas veces antes y ahora ya han aprendido 😉)
¿Cómo conseguimos geolocalizar mejor?
Muy sencillo, siguiendo unos pequeños trucos de formato en función del lugar que se quiera geolocalizar. Estas son nuestras recomendaciones después de trabajar con todos estos países y encontrar la manera con la que tener el mayor éxito.
Siguiendo esta recomendación conseguirás mucho más éxito a la hora de la geolocalización ya sea subiendo manualmente tus direcciones o mediante la importación masiva mediante fichero XLSX.
Bonus track – Importando coordenadas GPS en Highway
El mundo del geocoding cambia radicalmente cuando disponemos de las coordenadas GPS de los lugares a los que queremos ir. En este caso, el concepto se llama, reverse-geocoding, o georeferenciación inversa, que trata de convertir coordenadas GPS en una calle y un número. Este trabajo es muy sencillo por parte de los sistemas de mapas y el error suele ser ínfimo.
La buena noticia es que puedes usar las coordenadas GPS directamente en la plataforma Highway y nuestro sistema realizará la geocodificación inversa por ti.
Simplemente hemos de copiar las coordenadas siguiendo este formato:
Latitud, longitud
41.387021, 2.170123
Es importante mantener el separador de los decimales con el punto y el separador entre latitud y longitud con una coma. Este es el formato anglosajón, que encontraremos en la mayoría de sistemas de mapas (Google Maps, HERE, OSM, …).
Esperamos que haya sido útil y te esperamos la próxima semana!

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.

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.

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.

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.
Documento de ejemplo para subir a Highway Descarga un XLS de ejemplo
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.

Sant Jordi siempre es un dia especial, libros, rosas, colas y gente, mucha gente. Todo el mundo esta en la calle, disfrutando de un día mágico tanto para los niños como para mayores. Es el día del año en que más libros se venden, el 7,5% de la facturación anual en la ciudad de Barcelona.

Este año será especial. Tendremos que pasarlo en casa, disfrutando de una buena lectura, nuestra recomendación para estos días El cisne negro de Nassim Taleb. Este año nos ahorraremos los apretones de Las Ramblas y tendremos que comprar las rosas por internet. Sin duda un año especial.
Queremos aprovechar esta fecha tan señalada para ver el éxito de iniciativas que, en un año normal, difícilmente hubieran conseguido un éxito tan aplastante.
Uno de nuestros clientes SantJordiaCasa.com está usando Highway como herramienta para optimizar la distribución de las rosas en una fecha tan especial como es Sant Jordi.

Gracias a la potencia del planificador de rutas Highway han sido capaces de crecer en las entregas y llegar a clientes que antes les hubiera sido imposible.
Como ellos, cientos de otros clientes están entrando en un mundo como es el de las entregas a domicilio. Un canal que en el que muchas ocasiones había quedado totalmente olvidado. Gracias, o por desgracia, el COVID-19 ha obligado a lanzarse a nuevos canal de comercialización como es el Ecommerce y la propia distribución y el envío a domicilio.
Lo estamos viendo en nuestros clientes tradicionales, empresas de distribución al canal HORECA que se están reconvirtiendo a distribuidores a domicilio de la noche a la mañana.
Pastelerías como Cropics han sido capaces de entregar todas las monas de pascua en tiempo récord y tener el detalle de dejar una mona en casa de la abuela de mi mujer 😁. Este tipo de detalles hacen que poder ayudar a pequeñas empresas te haga sentir orgulloso del trabajo que haces y de ver como puedes ayudar más gente a tu alrededor.

Estamos en un momento muy duro para muchas empresas y familias. Toda ayuda es poca para conseguir pasar esta crisis y conseguir llegar a aquellas personas a las que podemos ayudar siempre es un reto. Te animo a que compartas nuestra historia, la historia de nuestros usuarios y clientes, empresas que se lanzan a una nueva aventura, el delivery. Sin experiencia, sin procesos, pero con ganas de luchar y hacer frente al corona, no estáis solos.
Esto lo ganamos entre todos.

La distribución bajo demanda es una industria que está creciendo a muy alta velocidad. Todos los días aparecen nuevas empresas, especialmente en el mercado de alimentos, bebidas y entregas de productos perecederos. Y la competencia es salvaje. La eficiencia es una métrica clave en la era de «Lo quiero todo y lo quiero ahora» y la parte más crítica es lo que sucede desde que se realiza un nuevo pedido hasta que se entrega.
Hoy quiero centrarme en el problema de enviar nuevos pedidos, es decir, cómo decidir cuál es el servicio de mensajería al que se debe asignar el pedido cuando un pedido ingresa en el sistema. Esto se debe a que el dispatch hoy en día no se aborda sistemáticamente. La optimización del sistema de dispatch puede minimizar el tiempo de entrega y mejorar la satisfacción del cliente.
El paradigma operativo de las empresas que realizan entregas bajo demanda se puede dividir en dos tipos diferentes:
- Operativa basada en un solo almacén son aquellas operativas centradas en un solo depósito. Este depósito tiene varios reparidores y la programación se realiza una vez para obtener una lista de pedidos; generalmente agrupando los pedidos por áreas. Amazon Prime es un buen ejemplo de este paradigma.
- Operativa basada en múltiples almacenes son aquellas operativas que confían en elegir el pedido en uno de los múltiples depósitos y entregarlo a un cliente. En este caso, los repartidores se encuentran dispersas por la ciudad, y una vez que llega un nuevo pedido, se asigna mediante un proceso de envío a uno de los múltiples repartidores. Empresas como Uber, Just Eat, Delivero, etc. operan de esta forma.
El problema del dispatching se resuelve más o menos satisfactoriamente en el primer escenario gracias a la posibilidad de encadenar una lista de entregas y considerándolo como un Problema del vendedor viajero (Traveling Salesman Problem) con algunas restricciones pre-clustering (OK, se que el TSP es un problema caro, pero… venga, se trata de Amazon).
Al contrario en el segundo escenario, no está tan claro que el problema se aborde de manera óptima. ¿Cómo se puede agregar un nuevo pedido entrante a un escenario en ejecución? Hay toneladas de variables que deben tenerse en cuenta:
- ¿Puede el mensajero realizar múltiples recogidas antes de comenzar a entregar?
- ¿Se puede reasignar un pedido ya asignado a otro servicio de mensajería?
- ¿Todas las órdenes tienen la misma prioridad? (por ejemplo, todos los pedidos deben entregarse antes de los 30 minutos posteriores a su realización)
¿Los pedidos requieren ser entregados por un vehículo en particular? - …

Modelar este escenario puede ser bastante desafiante, y es por eso que SmartMonkey ha estado trabajando durante un tiempo en este problema. Llamamos a nuestra solución Modelo de optimización de programación en línea (OSOM) (Sí, la marca no es uno de nuestros puntos fuertes 😅, pero fonéticamente suena como «increíble» y eso es bastante divertido). OSOM puede modelar las restricciones comerciales y encontrar una solución factible para el problema de dispatching.
En la simulación que se ofrece a continuación, hemos modelado un mundo donde:
- a un servicio de mensajería se le pueden asignar múltiples recogidas y entregas a la vez
- y el primer servicio próximo de cada servicio de mensajería es fijo y no se puede reasignar en las siguientes iteraciones.
La visualización contiene veinte iteraciones del mundo divididas en dos pasos:
1. Los nuevos servicios entrantes están marcados en color gris.
2. Los servicios se asignan dinámicamente a los repartidores para optimizar el tiempo de entrega general.




.png)
