La optimización de rutas es la práctica de ordenar paradas y asignar vehículos para que una flota termine su trabajo en el menor tiempo, distancia o coste. Es la diferencia entre un repartidor que termina a las 16:00 y otro que termina a las 19:00 con la misma furgoneta y las mismas paradas. Bajo cada botón de "ruta optimizada" en una app logística hay un solver que acaba de masticar millones de ordenaciones posibles y elegir una.
Esta guía explica qué es realmente la optimización de rutas, cómo la abordan los solvers, dónde aparece en el mundo real y qué restricciones y errores separan una demo de producción.
Qué es realmente la optimización de rutas
En ciencias de la computación, la optimización de rutas vive dentro de dos problemas clásicos. El Travelling Salesman Problem (TSP) pregunta: dada una lista de ciudades y las distancias entre ellas, ¿cuál es la ruta más corta que visita cada ciudad exactamente una vez y vuelve al inicio? Es un problema de un solo vehículo. El Vehicle Routing Problem (VRP) lo generaliza a una flota: dado un depósito, un conjunto de clientes y varios vehículos, ¿cómo se reparten los clientes entre los vehículos y en qué orden los visita cada uno?
Ambos problemas son NP-hard. El número de ordenaciones posibles crece factorialmente con el número de paradas. Veinte paradas ya producen más de 10 elevado a 18 rutas posibles. Ningún algoritmo exacto puede buscar en ese espacio en tiempo real. La optimización, en producción, no va por tanto de encontrar la respuesta perfecta. Va de encontrar una respuesta muy buena lo bastante rápido como para actuar sobre ella.
Cómo abordan los solvers el problema
Como el espacio de búsqueda es enorme, los solvers reales mezclan varias técnicas.
Para problemas pequeños (por debajo de unas 15 paradas), métodos exactos como branch-and-bound o programación entera pueden devolver una solución demostrablemente óptima en segundos. Por encima de esa escala, los métodos exactos dejan de ser prácticos y el campo cambia a heurísticas.
Un pipeline típico empieza con una heurística constructiva como vecino más cercano o el algoritmo de savings de Clarke-Wright para producir una ruta inicial. Esa ruta se pasa entonces a una metaheurística, que iterativamente intercambia paradas, invierte sub-tours o mueve paradas entre vehículos para mejorar el objetivo. Simulated annealing, tabu search, large neighbourhood search y algoritmos genéticos son las opciones más comunes. Todas tienen la misma forma: prueba un cambio, decide si aceptarlo, repite durante un presupuesto de tiempo fijo.
El otro input crítico es la distance matrix: una tabla precomputada de tiempo y distancia de viaje entre cada par de paradas. El optimizador consulta la matriz millones de veces durante su búsqueda, así que la matriz se construye una vez al principio con un motor de routing y se mantiene en memoria mientras corre el solver.
Dónde aparece la optimización de rutas
La optimización de rutas mueve en silencio una larga lista de negocios operativos.
- Last-mile delivery: las empresas de paquetería, el delivery de supermercado y el fulfillment de e-commerce secuencian todos decenas o cientos de paradas por furgoneta y día
- Field service: técnicos de aire acondicionado, instaladores de telecos y trabajadores sanitarios a domicilio visitan clientes por una región con ventanas de cita y requisitos de skill
- Fuerza de trabajo móvil: brigadas de servicios públicos, lectores de contadores e inspectores que cubren territorios con tipos de tarea mixtos
- Delivery de comida: agregadores de restaurantes que agrupan varios pedidos en un solo viaje del rider cuando la geografía cuadra
- Recogida de basura: camiones municipales que cubren rondas semanales fijas donde pequeñas reordenaciones ahorran combustible real
- Comerciales: planificación de territorios donde un comercial visita 8 a 12 cuentas al día y el orden importa para tiempo de conducción y densidad de reuniones
En cada caso el usuario ve una lista de paradas en el orden correcto. El trabajo ocurre en el optimizador que hay detrás.
Restricciones que importan
Un solver que solo minimiza distancia es un juguete. El routing de producción se define por sus restricciones.
- Capacidad del vehículo: cada furgoneta tiene un límite de peso, volumen o palets que las paradas asignadas no pueden superar
- Ventanas horarias: los clientes esperan la entrega entre, digamos, las 9 y las 11, y llegar a las 11:05 es un fallo
- Turnos del conductor: horas máximas de trabajo, descansos obligatorios e inicio y fin en depósitos específicos
- Matching por skill o vehículo: una instalación de nevera necesita un equipo de dos personas, una entrega de cadena de frío necesita una furgoneta refrigerada
- Multi-depósito: las flotas grandes hacen dispatch desde varios almacenes y el solver decide qué depósito gestiona qué parada
- Vuelta a base: algunas rutas son abiertas (el conductor termina en casa), otras cerradas (el conductor vuelve al depósito)
Cada restricción reduce el conjunto factible de rutas y empuja al solver hacia soluciones que parecen ligeramente peores sobre el papel pero que son realmente entregables.
Errores en producción
La optimización de rutas es una categoría donde la demo siempre funciona y el rollout muchas veces no.
Optimizar el objetivo equivocado. Minimizar distancia es lo por defecto, pero para muchas flotas los ingresos o el cumplimiento de SLA importan más que los kilómetros ahorrados. Una ruta que entrega un paquete extra a coste de 2 km suele ser una victoria.
Tiempos de free-flow vs conscientes del tráfico. Una matriz construida a partir de velocidades viarias crudas te dirá que una ruta tarda 4 horas cuando en hora punta tarda 6. Usa un motor de routing que exponga tiempos de viaje conscientes del tráfico para la hora del día en la que correrá la ruta.
Sin replanificación en tiempo real. Los planes se desvían en el momento en que un conductor se encuentra tráfico inesperado, un cliente cancela o entra una parada nueva. Los equipos de operaciones necesitan una manera de reoptimizar las paradas restantes a media jornada sin tirar a la basura el trabajo de la mañana.
Plan congelado y obsoleto. Una ruta semanal fija parecía óptima en enero y ahora es un 20 por ciento peor porque los clientes se han movido, los volúmenes han cambiado y ha aparecido una calle de un solo sentido. Reejecuta la optimización periódicamente y compara el plan nuevo con el activo antes de forzar un cambio sobre los conductores.
Optimización de rutas en MapAtlas
La API Optimize Route de MapAtlas resuelve problemas de routing de un solo vehículo y de flota con las restricciones que de verdad necesitan los equipos de operaciones: capacidad, ventanas horarias, turnos, skills y configuraciones multi-depósito. Devuelve un plan secuenciado por vehículo junto con horas previstas de llegada y salida para cada parada.
Se combina de forma natural con otros dos endpoints del stack de MapAtlas. La API Distance Matrix construye la tabla de tiempos de viaje que consume el solver, con tiempos conscientes del tráfico para que los planes aguanten en hora punta. La API Directions dibuja los caminos reales giro a giro entre paradas consecutivas una vez fijado el orden, para que una app de conductor pueda mostrar una polyline real en vez de una línea recta.
La optimización de rutas no va a verse glamurosa en una presentación. Es un solver, una matriz y una lista de restricciones. Pero es la capa que decide si una flota termina su jornada a tiempo y dentro de presupuesto, y acertar con ella es lo que separa una funcionalidad de routing que se lanza de una que se acaba apagando en silencio.
Preguntas frecuentes
¿Qué es la optimización de rutas?
La optimización de rutas es el proceso de decidir el mejor orden para visitar un conjunto de paradas y, cuando hay más de un vehículo en juego, qué vehículo se encarga de qué paradas. El objetivo es minimizar una función como tiempo total de conducción, distancia, combustible o coste, respetando restricciones del mundo real como capacidad del vehículo, turnos del conductor y ventanas horarias del cliente. En ciencias de la computación se sitúa dentro de dos problemas clásicos: el Travelling Salesman Problem (TSP) para un solo vehículo y el Vehicle Routing Problem (VRP) para una flota.
¿Cuál es la diferencia entre planificación de rutas y optimización de rutas?
La planificación de rutas responde a 'cómo voy de A a B'. Devuelve un solo camino entre dos puntos, normalmente con indicaciones giro a giro. La optimización de rutas responde a 'en qué orden visito estas 80 paradas con estas 6 furgonetas, y qué furgoneta lleva qué parada'. La optimización está una capa por encima de la planificación: decide la secuencia y la asignación, y luego llama a un motor de routing para dibujar el camino real entre cada par de paradas.
¿Qué algoritmos se usan para la optimización de rutas?
Para problemas pequeños (por debajo de unas 15 paradas) los métodos exactos como branch-and-bound o programación entera pueden encontrar una solución demostrablemente óptima. Más allá, el espacio de búsqueda explota y los sistemas de producción usan heurísticas y metaheurísticas: vecino más cercano y algoritmos de savings para una solución inicial, y luego local search, simulated annealing, tabu search o algoritmos genéticos para mejorarla. La mayoría de solvers comerciales combinan varios y corren con un presupuesto de tiempo fijo en vez de hasta optimalidad demostrable.
¿Qué inputs necesita una API de optimización de rutas?
Como mínimo: la lista de paradas con coordenadas, los vehículos con sus ubicaciones de inicio y fin, y una matriz de distancia o tiempo entre cada par de paradas. En la práctica también pasas capacidades de vehículo, ventanas horarias del cliente, duración del servicio en cada parada, horas de turno del conductor, skills o tipos de vehículo requeridos por parada y ubicaciones de depósito. La matriz es el input más pesado y normalmente la produce una distance matrix API aparte antes de que corra el optimizador.

