13 DE ABRIL DE 2026

El problema de enrutamiento de vehículos en distribución farmacéutica

Cuando un hospital necesita sus medicamentos antes que una farmacia, el algoritmo decide quién se atiende primero. Un recorrido técnico por el problema y cómo lo resolvemos.

El problema

Imagina esto: tienes un almacén de distribución farmacéutica en Ciudad de México. Cada mañana debes entregar medicamentos de cadena de frío a 30 ubicaciones — algunos son hospitales, otros son farmacias. Cada cliente tiene una ventana de tiempo, una demanda en kg y una prioridad. Tus vehículos tienen capacidad limitada y consumen diésel que genera emisiones de carbono. ¿Cómo planificas las rutas?

Esto no es un ejercicio académico. Es un problema real que se resuelve todos los días con niveles variables de calidad. La diferencia entre una planificación buena y una mala se mide en:

DEPÓSITO H Hospital (P1) H Hospital (P1) F Farmacia (P2) F Farmacia (P2) Hospital (prioridad alta) Farmacia (prioridad media) Depósito Ruta vehículo 1 (hospitales) Ruta vehículo 2 (farmacias)
TOPOLOGÍA DEL PROBLEMA Hospitales (rojo) se atienden antes que farmacias (azul). La prioridad determina el orden de visita incluso cuando geográficamente otra secuencia sería más eficiente.

Modelo del problema

Este problema se conoce en la literatura como Pharmaceutical Distribution Routing Problem (PDRP). Formalmente:

El objetivo es minimizar la suma ponderada de:

Algoritmos genéticos: la idea central

Un algoritmo genético (GA) es una metaheurística inspirada en la evolución biológica. Funciona con una población de soluciones candidatas (cromosomas) que evolucionan generación tras generación mediante:

La función de fitness evalúa qué tan buena es cada solución. En nuestro caso, el fitness es la función de costo total — mientras menor el costo, mejor el fitness.

Cromosoma: cómo codificamos una solución

Cada gen representa un cliente y su posición en el cromosoma determina el orden de visita. El decoder convierte la secuencia en rutas concretas asignándolas a vehículos, respetando la capacidad y generando la secuencia óptima de visitas por vehículo.

Chromosome = [C3, H2, C1, H1, C7, C4, C5]

HGA con VNS: el algoritmo completo

El paper de Li et al. (2024) propone un Hybrid Genetic Algorithm (HGA) que combina GA con Variable Neighborhood Search (VNS) como operador de búsqueda local.

Flujo del Hybrid Genetic Algorithm (HGA) POBLACIÓN Inicializ. greedy SELECCIÓN Torneo binario CROSSOVER PMX adaptativo MUTACIÓN Swap / Insert DECODE Rutas vehículo BÚSQUEDA LOCAL - VNS Variable Neighborhood Search 2-opt · Or-opt · Relocate · Exchange · Cross Cycling entre estructuras de vecindad EVALUACIÓN Costo = fijo + refrigeración + combustible + CO2 + penalizaciones Decodificar Reemplazo: elitismo + offspring x N generaciones
ARQUITECTURA DEL HGA GA provee exploración global; VNS provee intensificación local. El algoritmo itera N generaciones mejorando progresivamente las rutas.

Variable Neighborhood Search

El VNS es lo que convierte un GA estándar en un HGA competitivo. Cuando una solución se estanca, cambiar la estructura de vecindad puede desbloquear mejoras que el operador actual no puede encontrar.

El VNS cyclea a través de múltiples estructuras de vecindad:

Si no hay mejora con 2-opt, se prueba or-opt. Si tampoco mejora, se prueba relocate. El ciclo se repite hasta que se agotan todas las vecindades o se encuentra mejora.

Función objetivo

El modelo matemático desglosa el costo total en componentes específicos:

Costo_total = C_fijo + C_refrig + C_combustible + C_co2 + C_penalizacion C_fijo = suma_k F_k (costo de activar vehículo k) C_refrig = suma_k [t_mov_k * r_rate + t_det_k * r_rate_unload] C_combustible = suma_k,e fuel_consumption(travel_e, load_e) * fuel_price C_co2 = suma_k,e fuel_consumption(travel_e, load_e) * emission_factor C_penalizacion = suma_i max(0, a_i - b_i) * w_i (si llega tarde)

Probabilidades adaptativas

Una mejora sobre un GA básico es el uso de probabilidades adaptativas para crossover y mutación. En vez de fijar una probabilidad estática, el algoritmo la ajusta según el desempeño histórico: si el crossover reciente produjo buenas mejoras, la probabilidad aumenta; si no, se reduce. Esto permite que el algoritmo se adapte a la estructura del problema en tiempo real.

Conclusión

El problema de enrutamiento de vehículos en distribución farmacéutica es NP-hard, lo que significa que encontrar la solución óptima es computacionalmente intractable para instancias reales. Los algoritmos genéticos híbridos (HGA) con búsqueda local basada en VNS ofrecen un balance efectivo entre calidad de solución y tiempo de cómputo.

Los componentes clave son:

Paper original:
Li, J., Peng, K., Deng, X., Wang, J., y Liu, A. (2024). Model and algorithm for pharmaceutical distribution routing problem considering customer priority and carbon emissions. Data-Centric Engineering, 5, e16. doi:10.1017/dce.2024.13
Artículo Open Access bajo licencia CC BY-NC 4.0.

Ver la implementación en acción

El algoritmo HGA descrito en este artículo está implementado y corriendo en una demo interactiva. Puedes cargar tus propios escenarios, definir clientes con prioridades y observar cómo el algoritmo toma decisiones de enrutamiento en tiempo real.

Ir a armatelaruta.dbug.mx