Aprendizaje Interactivo de Teoría de Grafos
Aprendizaje Interactivo de Teoría de Grafos
Guest User
Using app without sign in
Solucionador de rutas de vehículos (VRP)
Planifica rutas de una flota desde un depósito minimizando el coste total
Selecciona un algoritmo y genera pasos para comenzar la visualización
El problema de rutas de vehículos (VRP) extiende el problema del viajante a una flota: varios vehículos parten de un depósito y deben visitar conjuntamente a todos los clientes a coste total mínimo. Es uno de los problemas NP-difíciles de mayor importancia económica.
Los métodos constructivos clásicos incluyen el algoritmo de ahorros de Clarke-Wright, que empieza con una ruta por cliente y fusiona rutas según la distancia ahorrada, y los enfoques agrupar primero rutar después, que agrupan a los clientes geográficamente antes de resolver un TSP por grupo. Las fases de mejora aplican movimientos 2-opt y or-opt dentro y entre rutas, y metaheurísticas como la búsqueda tabú y la búsqueda de gran vecindario cierran gran parte de la brecha restante hasta el óptimo.
El VRP planifica el reparto de paquetería para flotas postales y de mensajería, las rutas de autobuses escolares, los horarios de técnicos de servicio de campo y los circuitos de recogida de residuos. Los motores de enrutamiento comerciales resuelven variantes del VRP millones de veces al día, lo que lo hace una competencia clave para ingenieros de logística e investigación de operaciones.
El problema de rutas de vehículos generaliza el TSP a una flota. La aproximación práctica sigue el patrón de agrupar primero y encaminar después: dividir los clientes entre vehículos y luego resolver un TSP por vehículo.
VRP(depósito, clientes, numVehiculos):
// Fase 1: repartir los clientes entre vehículos
grupos = agrupar(clientes, numVehiculos)
// por sectores angulares, k-medias o ahorros de Clarke-Wright
// Fase 2: encaminar cada vehículo
para cada grupo g:
ruta[g] = resolverTSP(depósito + g)
// Fase 3: mejora entre rutas
repetir hasta que no haya mejora:
probar mover un cliente de una ruta a otra
probar intercambiar clientes entre dos rutas
volver a optimizar con 2-opt las rutas modificadasLa fase 3 es la que separa una solución mediocre de una buena. Agrupar y luego encaminar produce rutas razonables, pero los límites entre grupos suelen estar mal trazados, y mover un solo cliente de una ruta sobrecargada a su vecina con frecuencia ahorra más que cualquier reoptimización dentro de una ruta. Los movimientos entre rutas son, por tanto, esenciales y no un adorno final.
Reparte seis clientes entre dos vehículos desde un único depósito y observa por qué la mejora entre rutas importa.
Grafo de ejemplo: Un depósito en el centro y seis clientes repartidos alrededor: tres agrupados al norte y tres al sur, pero con uno de los del norte situado bastante más cerca del grupo sur que del resto de su propio grupo.
El reparto final ya no está equilibrado en número, cuatro clientes frente a dos, y aun así la distancia total es menor. Este es el punto central del VRP: agrupar por geometría produce grupos de aspecto ordenado, pero el objetivo es la distancia total y no la simetría. Cualquier implementación que se detenga tras agrupar y encaminar deja sobre la mesa mejoras que suelen estar en el rango del 10 al 20 por ciento.
Tiempo: NP-difícil; heurísticas O(n^2) a O(n^3) · Espacio: O(n^2)
El VRP contiene al TSP como caso particular, con un solo vehículo y sin capacidad, así que es NP-difícil de inmediato. La enumeración exacta es impensable salvo en instancias diminutas; los métodos exactos modernos, basados en generación de columnas y ramificación y corte, resuelven instancias de unos 100 clientes con esfuerzo considerable. Las heurísticas son lo que se usa en producción: la construcción por ahorros de Clarke-Wright es O(n al cuadrado log n) dominada por la ordenación de los ahorros, agrupar y encaminar cuesta el agrupamiento más un TSP por vehículo, y la búsqueda local entre rutas cuesta O(n al cuadrado) por pasada. La matriz de distancias por sí sola ocupa O(n al cuadrado), lo que en la práctica es la restricción de memoria dominante en instancias grandes.
Identifica primero qué restricciones tiene tu problema real, porque cada una lo empuja a una familia distinta.
| Alternativa | Prefiérela cuando | Coste |
|---|---|---|
| TSP | Un solo vehículo y sin capacidad. El caso particular más simple. | O(n^2) heurístico |
| CVRP | Los vehículos tienen límite de carga. Es la variante estándar en logística. | NP-difícil |
| VRPTW | Los clientes solo pueden atenderse dentro de ventanas horarias concretas. | NP-difícil, bastante más restringido |
| Ahorros de Clarke-Wright | Quieres una construcción rápida y sensata sin agrupar primero. Fusiona rutas por ahorro decreciente. | O(n^2 log n) |
| Búsqueda de vecindad grande | Instancias grandes donde la calidad importa. Destruye y repara partes de la solución de forma repetida. | variable |
Leer el artículo completo: The Vehicle Routing Problem
Algoritmos relacionados: Problema del Viajante, Rutas de Vehículos con Capacidad, Agrupamiento K-Means