EstevezAlvarez
Análisis experimental

Localización capacitada y aprendizaje automático: modelos, experimentos y resultados

Un análisis experimental de dónde ayuda el aprendizaje automático a la optimización logística, con resultados, comparaciones clásicas y límites de la evidencia.

Abrir un centro de distribución parece una decisión local: elegir un lugar y atender a sus vecinos. Sin embargo, cada elección cambia las posibilidades del resto de la red. En este proyecto investigué si un modelo aprendido podía ayudar a decidir qué centros abrir y cómo asignarles la demanda, sin sacrificar calidad y contando todo el tiempo necesario para producir la solución.

Reconstruí seis líneas de la literatura, P02–P07, y las conecté con experimentos de filtrado de candidatos y búsqueda de grandes vecindarios. Utilicé SCIP 10, HiGHS, OR-Tools y PyTorch en CPU. La conclusión es acotada: en estos experimentos, orientar la búsqueda resultó más útil que sustituir sus decisiones por predicciones. Una buena puntuación predictiva, por sí sola, no garantizó una mejor solución logística.

El problema: una demanda, un centro, capacidad limitada

El modelo principal es SSCFLP: cada región debe ser atendida íntegramente por un único centro abierto. A diferencia del modelo con penalización por demanda no atendida presentado en la serie anterior, aquí el servicio es obligatorio. Se minimiza el coste fijo de abrir centros más el coste de atender las regiones, respetando la capacidad de cada instalación.

min Σᵢ fᵢ yᵢ + Σᵢⱼ cᵢⱼ xᵢⱼ
Σᵢ xᵢⱼ = 1
Σⱼ dⱼ xᵢⱼ ≤ Qᵢ yᵢ
xᵢⱼ ≤ yᵢ
xᵢⱼ, yᵢ ∈ {0, 1}

La variable y indica si se abre un centro; x, si atiende a una región. f es el coste fijo, d la demanda y Q la capacidad. c ya representa el coste de atender toda la demanda de la región: multiplicarlo otra vez por d contaría la demanda dos veces. Los costes se expresan en unidades monetarias; demanda y capacidad, en pedidos.

Ejemplo didáctico, no resultado experimental: dos regiones con 60 pedidos no caben juntas en un centro con capacidad 100. Las decisiones comparten una restricción.
Ejemplo didáctico, no resultado experimental: dos regiones con 60 pedidos no caben juntas en un centro con capacidad 100. Las decisiones comparten una restricción. Ampliar figura

Esta dependencia explica por qué separar el mapa no separa automáticamente el problema. Es como reservar asientos de un mismo autobús desde dos ventanillas: ambas necesitan conocer las reservas de la otra. En instancias de 30 centros y 150 regiones, SCIP no siempre probó el óptimo en 60 segundos; se registraron gaps certificados de 1,8–3,6%. En una instancia de 50 × 200, el gap llegó al 15,6%.

Datos y separación de los experimentos

ConjuntoInstanciasUso y referencia
Entrenamiento160 · 30 × 150Uniformes y agrupadas; SCIP 60 s + LNS 30 s; gap medio 4,4%.
Validación32 · 30 × 150Semillas 1000+; selección de parámetros.
Test reservado32 · 30 × 150Semillas 2000+; preparado, no presentado aquí como test final completado.
Corredor no visto16 · 30 × 150Generalización espacial; SCIP 60 s + LNS 30 s.
Escala16 · 50 × 200SCIP 120 s + LNS 60 s.
Holmberg71 · 10–30 × 50–200Costes no euclídeos y óptimos publicados.
Olist4 · 30 × 150 → 150 × 850Pedidos entregados por CEP3; ANTT; SCIP 300 s + LNS 120 s.

El generador sintético empleó demandas U(5,35), capacidades U(10,160) reescaladas, costes fijos proporcionales a la raíz de la capacidad y servicio 10 × distancia × demanda. Se probaron distribuciones uniformes y agrupadas con razones de capacidad 1,5 y 3. Las instancias incompatibles con asignación única se descartaron mediante empaquetado FFD y un MILP de factibilidad.

Olist aporta pedidos reales, pero no convierte todos los parámetros en observaciones: costes fijos y capacidades son supuestos del modelo. Los gaps de referencia fueron 0,04%, 0,7%, 3,3% y 4,2% para 150, 300, 600 y 850 regiones. Estas diferencias importan: superar una referencia heurística no equivale a probar optimalidad ni a demostrar ahorro implantado en una empresa.

Cómo se midió una mejora

Antes de comparar velocidad, contrasté enumeración y SCIP en 13 microinstancias de tres familias, incluyendo capacidades ajustadas y costes asimétricos. Un evaluador separado recalculó costes, asignación única y capacidad. El reloj incluyó atributos, inferencia, relajación lineal, reparación, construcción del modelo, resolución y validación.

El entrenamiento es una etapa previa. En la evaluación, el reloj incluye toda la cadena necesaria para entregar una solución válida; no solo la llamada al solver.
El entrenamiento es una etapa previa. En la evaluación, el reloj incluye toda la cadena necesaria para entregar una solución válida; no solo la llamada al solver. Ampliar figura

La desviación final es (U − BKS) / BKS, donde U es el coste obtenido y BKS la mejor referencia validada o el óptimo publicado. La integral primal añade la trayectoria: promedia durante el presupuesto temporal el desvío de la mejor solución disponible, limitado a [0,1], con valor 1 mientras no hay solución. Cero significa alcanzar la referencia desde el inicio; uno, permanecer sin solución o con desvío máximo. Menor es mejor, pero una integral menor no garantiza un menor coste final.

La auditoría de implementación detectó doble cómputo de construcción, falta de acumulación de la mejor solución entre etapas, ausencia de plazo global y evaluación de solo una de tres GNN. Se archivó la ejecución temporal inválida y se corrigió el protocolo con manifiestos de datos, modelos y código y checkpoints transaccionales. Los costes y la factibilidad no se invalidaron por esos errores de reloj. El análisis estadístico agrega semillas por instancia, usa comparaciones pareadas, Wilcoxon con corrección de Holm e intervalos bootstrap; los objetivos no alcanzados quedan censurados en el presupuesto.

Filtrar candidatos: una buena clasificación no basta

Mapa de las siete líneas experimentales, adaptado del documento original. Resume resultados con alcances distintos; no es una clasificación global de los algoritmos.
Mapa de las siete líneas experimentales, adaptado del documento original. Resume resultados con alcances distintos; no es una clasificación global de los algoritmos. Ampliar figura

En la primera etapa, los modelos ordenaron centros para resolver un problema reducido. La GNN alcanzó AUC cercana a 0,95, pero preservar conjuntamente los centros de una buena solución es más exigente que acertar etiquetas individuales. En 32 instancias de validación, la relajación lineal sin entrenamiento superó a la GNN entre ρ = 0,2 y 0,7. Con ρ = 0,8, la GNN conservó la referencia en 31/32 casos (96,9%) y LP en 30/32 (93,8%). La diferencia fue de una instancia, reteniendo todavía el 80% de los centros.

Validación, GNN semilla 0. ρ es la fracción solicitada; la reparación de capacidad puede retener más centros. La curva mide conservación de la referencia, no optimalidad certificada.
Validación, GNN semilla 0. ρ es la fracción solicitada; la reparación de capacidad puede retener más centros. La curva mide conservación de la referencia, no optimalidad certificada. Ampliar figura

UniFL: aprender una construcción y después mejorarla

P06 estudió una variante distinta: sin capacidad y con coste uniforme de apertura. Una MPNN de cuatro capas aprendió sin etiquetas, minimizando el coste esperado; se entrenó con n = 100 y 200. En 56 instancias, la versión estabilizada llegó a una razón de coste cercana a 1,03 con n = 1000, frente a 1,19 de Mettu–Plaxton. Aquí la referencia para n = 1000 es la mejor solución encontrada, no un óptimo probado. Con búsqueda local, ambos enfoques quedaron a aproximadamente 0,6% o menos de sus referencias: gran parte de la ventaja desapareció.

UniFL, 56 instancias: mediana por tamaño; dos semillas neuronales promediadas por instancia. La banda muestra p10–p90 de MPNN. Referencias SCIP hasta n = 500 (8/10 óptimos probados en 500); mejor coste observado en n = 1000.
UniFL, 56 instancias: mediana por tamaño; dos semillas neuronales promediadas por instancia. La banda muestra p10–p90 de MPNN. Referencias SCIP hasta n = 500 (8/10 óptimos probados en 500); mejor coste observado en n = 1000. Ampliar figura

La versión prerregistrada sufrió colapso en tres de cuatro modelos: abrían un solo centro y generaban razones de coste entre 3 y 6. La corrección limitó probabilidades a 0,01–0,99, recortó gradientes a 1 y redujo la tasa de aprendizaje a 5 × 10⁻⁴. Se aplicó después de observar el test y quedó registrada como desviación del protocolo; por ello, la versión estable no constituye una confirmación independiente en datos intactos.

Filtrar intercambios: velocidad a cambio de qué

P04/P05 redujeron los intercambios evaluados por la búsqueda local. El modelo aprendido entrenado en n = 200 obtuvo desvío de 3,5%, frente a 5,1% del filtro clásico, sin fallback. En n = 500 y 1000, perdió esa ventaja. En n = 1000, el clásico alcanzó aproximadamente 47× de aceleración y 6,6% de desvío; el aprendido, 14× y 8,8%; el aleatorio, 622× y 19,9%. La aceleración compara tiempos pareados desde el mismo inicio; los desvíos usan la mejor referencia encontrada.

Compromiso calidad–tiempo, sin fallback y k = 16. El eje horizontal es logarítmico. Más a la derecha significa más rápido; más abajo, menor coste relativo. El filtro aleatorio ilustra por qué acelerar no basta.
Compromiso calidad–tiempo, sin fallback y k = 16. El eje horizontal es logarítmico. Más a la derecha significa más rápido; más abajo, menor coste relativo. El filtro aleatorio ilustra por qué acelerar no basta. Ampliar figura

Con fallback, se vuelve a revisar la vecindad completa cuando el filtro no encuentra mejora. La calidad se aproxima a la búsqueda completa, pero la aceleración queda alrededor de 1,1–1,6×. Calcular atributos e invocar el modelo también cuesta tiempo: el filtro aprendido fue más lento que el clásico. La comparación pertinente es entre filtros con presupuestos equivalentes, no solamente contra la búsqueda sin filtrar.

Redes dentro del MIP y decisiones de ramificación

P07 incorporó un predictor Deep Sets al MIP de localización y rutas, mediante big-M. Un MAPE de 7,5% parecía favorable, pero Kendall τ = 0,34 mostró que ordenar decisiones era bastante más difícil. En 20 de 20 casos, el MIP neural no mejoró su solución inicial. En un caso con 50 clientes, el límite inferior fue 9222 y el coste 63746: el gap de 591% usa (U − L) / L; con U en el denominador sería aproximadamente 85,5%. No son convenciones intercambiables.

Método LRPDesvío mediano (%)Desvío medio (%)Mejor (%)Tiempo MIP (s)
Continuo clásico0.030.67451.5
NEO SCIP0.050.694561
NEO: mejor inicio0.081.334061
NEO: búsqueda sustituta0.301.48452
FLP → VRP4.545.60150.1

La evaluación usó rutas de OR-Tools en 20 instancias CLRP de 20–100 clientes. Los porcentajes de mejor resultado admiten empates. Es una comparación de calidad con presupuestos propios, no una prueba con tiempo total igual. La aproximación continua clásica, sin entrenamiento, empató o ganó frente a las alternativas neuronales.

P02/P03 aprendieron decisiones de ramificación, reconstruidas en SCIP 10 con LightGBM. Sobre 20 instancias de 100 × 100, la política aprendida fue aproximadamente 8% más rápida que relpscost, aunque exploró más de tres veces sus nodos. Empató prácticamente con pscost. Se utilizaron 953 muestras de entrenamiento, frente a unas 100 mil del estudio original; la inferencia consumió 0,4% del tiempo. La precisión top-1 fue 0,36, frente a 0,39 de la regla más fraccionaria.

RamificaciónResueltas en 300 sTiempo geom. desplazado (s)Nodos
LightGBM95%91.7167
pscost95%93.2165
relpscost95%100.149
fullstrong90%107.423

CLNS: reorganizar una parte sin romper el conjunto

Resolver grupos geográficos de forma independiente y unirlos falló en tres instancias de validación, con sobrecargas de 690–1070 unidades. Repararlas dejó costes 19–29% superiores a la referencia. CLNS evitó ese desacoplamiento: liberó un subproblema cada vez, mantuvo el resto fijo, descontó su ocupación de la capacidad disponible y contó el coste fijo una sola vez.

Se probaron cuatro vecindarios: interior de un grupo, frontera entre dos grupos, liberación de un centro caro y clientes con mayor arrepentimiento según información dual de LP. Cinco selectores eligieron qué vecindario resolver: rotación, aleatorio, ALNS, dual y aprendido. El selector LightGBM estimó ganancia por segundo y obtuvo AUC 0,76 en validación separada por instancia.

Piloto de validación: 16 instancias × 10 métodos = 160 ejecuciones, una semilla por método, presupuesto nominal de 60 s. Izquierda: integral media e intervalo bootstrap del 95%; el valor 0,497 del método ingenuo queda fuera de la escala y se indica con una flecha. Derecha: desvío final mediano. El método adaptativo GNN pertenece a la etapa de expansión, no a CLNS.
Piloto de validación: 16 instancias × 10 métodos = 160 ejecuciones, una semilla por método, presupuesto nominal de 60 s. Izquierda: integral media e intervalo bootstrap del 95%; el valor 0,497 del método ingenuo queda fuera de la escala y se indica con una flecha. Derecha: desvío final mediano. El método adaptativo GNN pertenece a la etapa de expansión, no a CLNS. Ampliar figura

CLNS alcanzó integrales medias de 0,024–0,041, frente a 0,062–0,074 de LNS y SCIP, y desvíos finales medianos de 1,2–2,7%. El selector aprendido obtuvo la mejor integral agregada de CLNS, pero rotación ganó en alrededor del 62% de las instancias; p = 0,43 no respaldó superioridad estadística del aprendizaje. La expansión adaptativa GNN + información de LP obtuvo integral 0,0198 y desvío mediano 0,32%. Son resultados de este piloto de validación, no del test cerrado reservado.

Qué demuestran los resultados y qué no

El proyecto permitió identificar mecanismos útiles y límites concretos. La búsqueda conservó factibilidad global cuando los subproblemas respetaron capacidad residual. Los modelos aprendidos ordenaron candidatos y vecindarios, pero no superaron sistemáticamente alternativas clásicas equivalentes. LP fue un filtro fuerte; Mettu–Plaxton con búsqueda local absorbió gran parte de la ventaja neural; una aproximación continua compitió con el MIP neural. El número que interesa depende de la decisión: rapidez de una buena solución, coste final o prueba de optimalidad.

La ejecución usó CPU, con hasta tres procesos sobre cuatro núcleos físicos, y datos mayoritariamente sintéticos. Holmberg aporta una referencia externa; en otros casos, BKS sigue siendo heurística. Son reconstrucciones metodológicas en un entorno abierto, no reproducciones exactas de entornos históricos o de Gurobi. Cambios de solver, escalas y presupuestos limitan la transferencia de las conclusiones. Los gráficos de esta publicación fueron reconstruidos a partir de los CSV guardados; no representan nuevas ejecuciones de los experimentos.

Datos de los gráficos y proyecto

Filtrado de candidatos: CSV

UniFL estable: CSV

Intercambios: CSV

Resumen del piloto CLNS: CSV

Repositorio del proyecto

Leer la serie didáctica de optimización logística

Volver al índice del blog