InicioIA y Aprendizaje AutomáticoOptimizador de Rutas de Reparto — Recocido Simulado en Vivo

🚚 Optimizador de Rutas de Reparto — Recocido Simulado en Vivo

Observa cómo el recocido simulado templa las rutas de una flota de reparto en el mapa de una ciudad, escapando de mínimos locales con saltos aleatorios controlados mientras la distancia total cae hacia el óptimo.

IA y Aprendizaje Automático3DAvanzado60 FPS
ai-supply-chain-route-optimization ↗ Abrir independiente

Acerca de esta simulación

El enrutamiento de reparto es uno de los problemas difíciles más antiguos de la investigación operativa: dado un depósito y un conjunto de paradas, encontrar el recorrido cerrado más corto que visite cada parada exactamente una vez — el problema del viajante. Esta simulación implementa un optimizador genuino de recocido simulado sobre ese problema. Un entorno 2-opt real (inversión de segmento), un programa de enfriamiento geométrico real y la regla de aceptación de Metrópolis real se ejecutan de forma continua en el navegador, y puedes observar cómo el recorrido actual y el mejor recorrido encontrado hasta ahora se redibujan en directo sobre el mapa de la ciudad a medida que la distancia total disminuye.

🔬 Qué se muestra

Cada fotograma de la animación propone varios movimientos 2-opt aleatorios: se eligen dos posiciones del recorrido y se invierte el segmento entre ellas, lo que equivale a intercambiar dos aristas por otras dos. El cambio exacto en la longitud del recorrido (Δ) se calcula a partir de solo las cuatro longitudes de arista afectadas. Si Δ < 0 el movimiento siempre se conserva; en caso contrario se acepta con probabilidad e^(−Δ/T). La temperatura T decae en cada iteración como T ← α·T, así que al principio el recorrido rebota e incluso a veces se alarga, y más tarde se asienta en una mejora suave y monótona.

🎮 Cómo usarlo

Arrastra el control deslizante de paradas de reparto (8–40) o haz clic en "Nuevo mapa aleatorio" para generar una disposición de ciudad nueva. La tasa de enfriamiento α controla lo lento que baja la temperatura — valores cercanos a 0.9999 exploran mucho más antes de comprometerse, valores cercanos a 0.985 se comportan casi como un 2-opt codicioso puro. La temperatura inicial establece cuán agresivamente se aceptan los movimientos iniciales. Los pasos por fotograma controlan la velocidad de reproducción. Reiniciar vuelve a barajar el recorrido y reinicia el programa en el mismo mapa; Pausa congela el recocido para que puedas inspeccionar el estado actual.

💡 ¿Sabías que...?

El recocido simulado toma su nombre —y su regla de aceptación— directamente de la metalurgia: calentar un metal y enfriarlo lentamente permite que sus átomos encuentren una red cristalina de baja energía y pocos defectos, mientras que enfriarlo demasiado rápido "congela" una estructura desordenada de mayor energía. Kirkpatrick, Gelatt y Vecchi aplicaron exactamente esta analogía física a la optimización combinatoria en 1983, y la optimización de rutas —el problema del viajante— fue uno de sus casos de prueba originales.

Preguntas frecuentes

¿Qué es el recocido simulado y por qué se usa para optimizar rutas?

El recocido simulado es una técnica de optimización probabilística inspirada en el proceso metalúrgico de calentar un metal y enfriarlo lentamente para que sus átomos se asienten en una estructura cristalina de baja energía. Aplicado al problema del viajante / enrutamiento de vehículos, la "energía" es la distancia total del recorrido. A alta temperatura el algoritmo acepta muchos movimientos que empeoran la solución, permitiéndole explorar ampliamente y escapar de disposiciones locales pobres; a medida que la temperatura baja se vuelve cada vez más codicioso, refinando el recorrido hasta converger cerca de una ruta corta. Es popular para el enrutamiento porque el espacio de búsqueda de posibles órdenes de paradas es de tamaño factorial, demasiado grande para buscar exhaustivamente, aunque los entornos 2-opt combinados con el recocido encuentran de forma fiable recorridos a pocos puntos porcentuales del óptimo.

¿Qué es un movimiento 2-opt y por qué invertir un segmento?

Un movimiento 2-opt elimina dos aristas del recorrido y reconecta los cuatro extremos de la única otra forma que mantiene un único bucle cerrado, lo que equivale a invertir el orden de las paradas entre los dos puntos de corte. Es el movimiento de búsqueda local más simple capaz de deshacer un cruce en el recorrido: siempre que dos segmentos de ruta se cruzan en el mapa, exactamente un movimiento 2-opt los endereza y acorta la distancia total. Como solo cambian dos aristas, el cambio en la longitud del recorrido (Δ) puede calcularse comparando solo esas dos aristas antiguas y las dos nuevas, sin volver a sumar toda la ruta.

¿Qué es el criterio de aceptación de Metrópolis?

Una vez calculado el delta de coste de un movimiento candidato, el algoritmo siempre acepta los movimientos que acortan el recorrido (Δ < 0). Para los movimientos que lo alargan, se aceptan con probabilidad e^(−Δ/T), donde T es la temperatura actual. Esto significa que un movimiento que empeora mucho rara vez se acepta, pero los movimientos que empeoran poco siguen siendo bastante probables al principio, cuando T es alta. A medida que T decae hacia cero, e^(−Δ/T) colapsa hacia cero para cualquier Δ positivo, de modo que el algoritmo se convierte en la práctica en un descenso puramente codicioso — no se permite subir colinas y solo sobreviven los movimientos que mejoran.

¿Cómo afecta el programa de enfriamiento al resultado?

Esta simulación usa enfriamiento geométrico: T se multiplica por una tasa de enfriamiento α (cercana a 1 pero por debajo) tras cada movimiento propuesto, de modo que T decae exponencialmente con el número de iteraciones. Una tasa de enfriamiento muy cercana a 1 (por ejemplo, 0.9995) enfría lentamente, dando a la búsqueda muchas iteraciones a temperaturas más altas para explorar ampliamente antes de comprometerse a refinar una solución — esto suele encontrar recorridos más cortos, pero tarda más en estabilizarse. Una tasa de enfriamiento más baja (por ejemplo, 0.985) enfría rápido y se comporta casi como una búsqueda local 2-opt codiciosa, convergiendo rápidamente pero con más probabilidad de quedar atrapada en un mínimo local mediocre.

¿Por qué a veces la longitud del recorrido empeora antes de mejorar?

Ese es precisamente el objetivo del recocido: a alta temperatura, el criterio de Metrópolis acepta deliberadamente algunos movimientos que aumentan la longitud. Un recorrido puede parecer localmente óptimo (ningún movimiento 2-opt individual lo mejora) y sin embargo estar lejos del recorrido más corto posible — esto es un mínimo local. Al aceptar ocasionalmente un movimiento peor, la búsqueda puede salir de la cuenca de ese mínimo local y caer más tarde en otro distinto y más corto. Observando el gráfico de distancia, normalmente lo verás caer rápido al principio, subir de forma puntual mientras T sigue alta, y luego asentarse en un descenso monótono y suave a medida que T se aproxima a cero.

¿Cómo se relaciona esto con la planificación real de rutas de reparto?

Las empresas de logística reales resuelven problemas de enrutamiento de vehículos (VRP) con cientos o miles de paradas, múltiples vehículos, ventanas horarias y límites de capacidad — un problema combinatorio NP-difícil donde las soluciones exactas son computacionalmente inviables más allá de unas pocas decenas de paradas. Metaheurísticas como el recocido simulado, junto con los algoritmos genéticos, la optimización por colonia de hormigas y la búsqueda tabú, son herramientas estándar en la industria para encontrar rutas muy buenas (aunque no demostrablemente óptimas) en segundos o minutos. Esta simulación modela el núcleo de un solo vehículo de ese problema — el clásico problema del viajante — que es el mismo motor combinatorio que hay en el corazón del software de enrutamiento en producción.

⚙ Bajo el capó

Un entorno 2-opt real, un programa de enfriamiento geométrico real y el criterio de aceptación de Metrópolis real se ejecutan en cada fotograma — el recorrido actual y el mejor recorrido encontrado se redibujan ambos en directo a medida que evolucionan la distancia total y la temperatura.

Canvas 2DSimulated Annealing2-optTSPVehicle Routing

3D · motor de renderizado Three.js / WebGL · objetivo de 60 FPS · funciona enteramente en el cliente, sin instalación

¿Qué encontraste?

Añadir pasos de reproducción (opcional)