Saltar al contenido
Leanmaster PymesOptimización · Automatización

Perspectiva técnica

Gestión de rutas multi-sucursal con Machine Learning y programación dinámica

Una arquitectura abierta y reproducible para que una distribuidora con varios centros deje de planificar rutas como islas: predicción de demanda, clustering por capacidad real y un plan diario coordinado.

Manuel Antonio Pérez Ogando3 de mayo de 202611 min de lectura
Portada del artículo: red tecnológica con cinco centros de distribución conectados a clientes en distintos colores, tres camiones y branding Leanmaster Pymes sobre fondo azul oscuro con grilla y partículas.

Una arquitectura abierta, reproducible y de bajo costo para que cualquier distribuidora con varios centros de distribución deje de planificar rutas como islas y empiece a operar un plan diario coordinado.

Demo y código sin instalación

Antes de leer, abre el sistema funcionando en tu navegador:

1. El problema operativo que se repite en la mayoría de las distribuidoras

En la mayoría de las distribuidoras con varios centros de distribución que he visitado (sucursales, depósitos regionales o incluso fábricas), dos camiones de la misma empresa terminan a tres cuadras del mismo cliente el mismo día. Cada centro planifica su ruta como una isla: arma su propia plantilla, reparte sus pedidos, y nadie se entera de que el centro vecino está pasando por la misma calle dos horas después. El resultado se paga en silencio: kilómetros duplicados, combustible perdido, horas extra del chofer y el clásico camión flash subcontratado a última hora cuando la demanda real superó la capacidad asignada.

El patrón suele ser el mismo:

  • Cada centro estima su demanda al ojo sobre el promedio de las últimas semanas, sin un modelo que capture estacionalidad ni tendencia.
  • La asignación cliente–centro se hereda desde hace años y nadie la cuestiona, aun cuando dos centros hayan crecido en zonas que ya se solapan.
  • Cuando el plan del día queda corto, se subcontrata un camión flash con un costo 30 a 50% superior al de un camión propio. Nadie mide cuánto se va al año por este renglón.
  • Cuando el plan queda holgado, los choferes regresan a la rampa con espacio vacío y se justifican horas que no se trabajaron en ruta. La utilización real de la flota nunca aparece en el reporte mensual.
Caja CTA destacando el sistema de código abierto disponible en GitHub: github.com/leanmasterpymes/gestion_rutas, que aborda el problema desde la predicción de demanda hasta el plan diario coordinado.

2. La arquitectura propuesta

La solución se compone de cuatro capas, todas basadas en software libre y reproducibles desde el repositorio. El sistema toma dos insumos principales: el histórico de pedidos de los clientes y la disponibilidad de cada centro de distribución (cantidad de camiones y capacidad de cada uno). Conocer la disponibilidad antes de asignar es lo que permite respetar la capacidad real de despacho de cada centro y evitar la sobrecarga.

Pipeline del sistema con dos inputs (histórico de pedidos y disponibilidad por centro) que alimentan la predicción de demanda, el clustering de clientes, la programación dinámica, el plan de rutas coordinado y el dashboard.

De los datos al plan diario, pipeline end-to-end de la solución.

  • Predicción de demanda por cliente: un modelo aprende los patrones de pedido de cada cliente y proyecta cuánto pedirá mañana, capturando estacionalidad semanal, tendencia mensual y comportamiento individual.
  • Clustering inteligente de clientes: los clientes se agrupan en zonas de ruteo balanceadas por la capacidad real del camión, no por divisiones administrativas heredadas.
  • Optimización de la ruta: cada zona se resuelve con un algoritmo clásico de optimización que minimiza kilometraje y respeta ventanas horarias.
  • Coordinación entre centros: antes de salir, el sistema reasigna clientes fronterizos para que dos centros no se pisen el territorio.

El resultado es un plan diario donde cada cliente tiene un centro de distribución, una ruta y una posición en la secuencia, con cifras reproducibles a partir de un caso de estudio que cualquiera puede correr en su computadora.

3. Predecir antes de planificar

El insumo principal del ruteo es la demanda esperada de cada cliente para el día siguiente. Sin esa predicción, todo el resto del sistema opera con promedios planos que no capturan la realidad: lunes y martes pico, domingo valle, clientes que crecen, clientes que cambian de hábitos.

El modelo aprende de cuatro tipos de señales:

  • El calendario (día de la semana, mes, semana del año), que captura los ciclos predecibles del negocio.
  • El historial reciente del cliente (cuánto pidió hace 1, 7 y 14 días), que captura la inercia de pedidos y los hábitos individuales.
  • La tendencia (medias móviles de 7 y 30 días), que suaviza ruido y muestra si el cliente está creciendo, estable o decreciendo.
  • El perfil del cliente (tipo de comercio, ventana horaria, nivel de demanda base).

Validación rigurosa

La validación se hace de forma rigurosa: los últimos 30 días del histórico se reservan como prueba, sin que el modelo los vea durante el aprendizaje. Esto evita la fuga de información típica de los splits aleatorios sobre series de tiempo, donde un modelo puede “ver el futuro” durante el entrenamiento y reportar métricas optimistas que después no se reproducen en producción.

Sobre el caso de estudio del repositorio (50 clientes, 540 días de histórico), el modelo logra estas métricas en datos que el modelo no usó para aprender:

Cuadrícula de cuatro métricas del modelo de demanda: 10.1% de error en la demanda total esperada por día, 11.3 unidades de error promedio por cliente y día, 540 días de histórico y 50 clientes en el caso de estudio.

La métrica que más importa para la planificación de capacidad es el error sobre la demanda agregada por día: si la flota total va a recibir alrededor de 870 unidades en pedidos para mañana, el modelo se equivoca en promedio un 10% (cerca de 87 unidades arriba o abajo). Ese rango de error es suficiente para dimensionar correctamente cuántos camiones cargar y permite anticipar días pico antes de que aparezca la sobrecarga.

Mapa de los 50 clientes coloreados por centro de distribución asignado, con los 5 centros marcados como cuadrados.

Distribución geográfica de los clientes con su centro asignado por el sistema.

4. Cómo se optimiza la ruta

La optimización de rutas se apoya en una idea de los años sesenta que sigue siendo el corazón de los mejores sistemas industriales: descomponer un problema grande en piezas pequeñas, resolver cada pieza una sola vez y reutilizar el resultado. La técnica se llama programación dinámica, y el algoritmo clásico que la materializa para el ruteo es Held-Karp (1962).

Cita destacada: ¿Cuál es el camino más corto para visitar este conjunto de clientes y volver al centro de distribución? La programación dinámica responde esa pregunta sin probar todas las combinaciones posibles.

El método tiene un límite práctico: cuando una ruta crece de 15 clientes en adelante, el cálculo se vuelve demasiado pesado. La estrategia del sistema es respetar ese límite y usar descomposición por zonas: el clustering reduce 50 clientes a varias rutas pequeñas, cada una con menos de 15 clientes, donde el algoritmo exacto resuelve el óptimo en milisegundos. Cuando una zona excede los 15 clientes, se sustituye automáticamente por una variante aproximada que sigue siendo óptima en la práctica.

El resultado, en cifras del propio sistema, es contundente: un plan completo de 50 clientes y 5 centros de distribución se calcula en menos de 10 milisegundos.

5. Coordinación entre centros, el verdadero cambio de paradigma

El gran cambio que introduce esta arquitectura no es el algoritmo de optimización en sí, sino el paso previo de asignar clientes a centros de distribución con visión global. La asignación tradicional, que es la que opera hoy en la mayoría de las distribuidoras, asigna cada cliente al centro más cercano y termina ahí. Funciona razonablemente bien cuando la red es pequeña, pero cuando crece, dos centros empiezan a invadirse el territorio.

La asignación coordinada plantea el problema desde otro lugar: cada centro tiene una capacidad real (cantidad de camiones multiplicada por la capacidad de cada camión), y cada cliente debe asignarse de modo que se minimice la distancia total respetando esa capacidad. El sistema resuelve este planteo en milisegundos y elimina los solapamientos sin necesidad de redibujar zonas a mano.

Mapa con las rutas finales resueltas, líneas coloreadas saliendo de cada centro de distribución hacia sus clientes en secuencia óptima.

Plan de rutas resuelto, cada color representa un centro de distribución con sus rutas coordinadas.

6. Validación contra el estándar industrial

Para validar la calidad del sistema, el motor propio se compara lado a lado con Google OR-Tools, el estándar industrial de problemas de ruteo. Sobre el mismo caso de estudio:

Tabla comparativa motor propio vs Google OR-Tools: en el TSP exacto de 12 clientes ambos llegan a 154.06 km, con el motor propio 50 veces más rápido (95 ms vs 5000 ms); en el plan completo de 50 clientes y 5 sucursales el motor propio entrega 334.66 km vs 289.31 km de OR-Tools, un gap de 15.7%.

Benchmark lado a lado · motor propio vs Google OR-Tools sobre el mismo dataset.

Lectura del benchmark: en el caso pequeño el sistema propio iguala al estándar industrial 50 veces más rápido. En el caso grande OR-Tools logra menos kilómetros porque consolida la flota en un depósito ficticio, esquema irrealizable en la operación real. Bajo la misma restricción operativa el motor propio queda dentro de un margen razonable del óptimo.

7. Cinco beneficios operativos medibles

Las cifras siguientes corresponden a referencias públicas del sector (Gartner, McKinsey, Project44, FarEye, ORTEC, OptimoRoute) cuando una arquitectura de planificación con predicción de demanda y ruteo automatizado se implementa con disciplina. No son promesas: son rangos documentados de mejora, con su traducción directa al impacto en el negocio.

15 a 30% menos kilometraje total

Menos combustible, menos desgaste de flota, menos peajes y menos tiempo improductivo en ruta. Si una distribuidora corre 50.000 km al mes, esto se traduce en un ahorro de 7.500 a 15.000 km mensuales.

15 a 25% más clientes por ruta

Mayor productividad por chofer y por camión. Si hoy un camión visita 20 clientes al día, puede llegar a 23 o 25 con el mismo recurso. Cuando la red crece, no es necesario contratar más camiones de inmediato.

20 a 25% menos costo de combustible

Ahorro directo en el renglón más visible del estado de resultados de logística. Si el combustible representa entre 25 y 30% del costo logístico total, esto se traduce en una reducción de 5 a 7% en el costo logístico total.

10 a 20% menos horas extra del chofer

Menos pago de horas extra, menor rotación de personal y menor riesgo laboral. El chofer fatigado tiene entre 2 y 3 veces más probabilidad de accidente; estabilizar la jornada protege a la operación y al negocio.

30 a 60% menos subcontrataciones flash

El ahorro más subestimado de toda la arquitectura. Un camión flash subcontratado cuesta entre 30 y 50% más que un camión propio. Si hoy 10% de las rutas se cubren con flash y se baja a 4 o 5%, ese es ahorro puro al cierre del mes, mes tras mes.

Comparativa antes y después en tres barras: kilometraje total, número de rutas y costo estimado.

Comparativa antes y después, planificación coordinada con predicción y optimización.

8. Cómo probar el sistema

Opción rápida, sin instalar nada

Hace clic en el badge “Open in Colab” del repositorio. Las celdas ejecutan en orden el flujo completo: caso de estudio, predicción, clustering, optimización, validación contra el estándar industrial y mapa del plan resuelto. En menos de dos minutos, la solución está corriendo en una pestaña del navegador.

Opción para implementarlo, clonar el repositorio

🔗 El código completo está publicado bajo licencia MIT en github.com/leanmasterpymes/gestion_rutas. Cualquiera puede clonarlo, correr el sistema en su computadora y conectar sus propios datos de clientes. El planificador abre en el navegador y permite cargar un archivo de clientes propio para generar un plan personalizado.

🔬 ¿Querés profundizar en el detalle técnico?

Para profesionales técnicos, estudiantes de Investigación de Operaciones y desarrolladores que quieran entender el sistema por dentro, el repositorio incluye una versión extendida del artículo y un notebook ejecutable paso a paso con:

  • La formulación matemática del subproblema y la ecuación de Bellman aplicada al ruteo.
  • La tabla de complejidad teórica y el momento exacto en que cada enfoque deja de ser viable.
  • El código fuente completo de los siete módulos del motor.
  • El benchmark detallado contra Google OR-Tools, con tiempos de cómputo y gap de optimalidad.
  • Lecturas recomendadas (Held & Karp 1962, Bellman 1962, Toth & Vigo 2014).

👉 Abrir el repositorio en GitHub para acceder al material extendido.

Si este contenido le resultó útil

👀 Abra el notebook en Colab antes de cerrar la pestaña, corre con un solo clic, sin instalación.

⭐ Marque el repositorio en GitHub para darle visibilidad y poder clonarlo en su empresa.

💬 Comparta el artículo con su responsable de logística o de operaciones; el sistema puede evaluarse en una sola jornada con los datos de su propia distribuidora.

📩 Si desea adaptar la solución a su flota o integrarla a sus sistemas, puede contactarme mediante mensajes directos.