[cite_start]Este proyecto es la validación técnica y la expansión de mi experiencia profesional como Director de Operaciones en DHL Express [cite: 185][cite_start], donde diseñé e implementé procesos de optimización de rutas diarias para mejorar la eficiencia en la gestión del tiempo en ruta[cite: 187, 188].
Es un motor en Python que aplica algoritmos de optimización para resolver el Problema del Vendedor Viajero (TSP), encontrando la ruta más corta y eficiente para una flota de vehículos.
En cualquier operación logística, la planificación de rutas es un factor crítico de costos. Una ruta no optimizada se traduce directamente en:
- Costos Excesivos de Combustible: Kilómetros innecesarios que impactan la rentabilidad.
- Desgaste de la Flota: Mayor mantenimiento y depreciación de los vehículos.
- Retrasos en Entregas: Incumplimiento de ventanas de servicio (SLAs) y clientes insatisfechos.
- Ineficiencia Operativa: Pérdida de tiempo del transportista y capacidad de entrega reducida.
El desafío es encontrar la ruta más corta que visite N puntos de entrega una sola vez y regrese al almacén.
Este proyecto implementa un script en Python que ingiere un conjunto de coordenadas geográficas (puntos de entrega) y utiliza un algoritmo de optimización (como el "vecino más cercano" o "Simulated Annealing") para encontrar una solución heurística al problema TSP.
La solución no solo calcula la ruta, sino que la visualiza sobre un mapa interactivo para que sea fácilmente interpretable por un equipo de operaciones.
- Ingesta de Datos: Lee puntos de entrega desde un archivo
.csv(latitud, longitud). - Cálculo de Distancias: Utiliza la fórmula de Haversine para calcular la distancia real (en kilómetros) entre coordenadas geográficas.
- Motor de Optimización: Implementación de un algoritmo heurístico para TSP que encuentra una ruta óptima.
- Visualización Interactiva: Genera un archivo
.htmlcon un mapa (usando Folium) que muestra los puntos, la ruta optimizada y la distancia total ahorrada.
- Lenguaje:
Python - Manejo de Datos:
Pandas(para la ingesta de las coordenadas). - Cálculo Geográfico:
haversine(para distancias precisas en la esfera terrestre). - Algoritmos y Grafos:
NetworkX(para modelar el problema y aplicar algoritmos TSP). - Visualización de Mapas:
Folium(para dibujar la ruta sobre un mapa real). - Entorno:
Jupyter Notebook(para la exploración y presentación del análisis).
- Fase 1: Lógica Central (En Progreso)
- Ingesta de datos desde
.csv. - Implementar función de cálculo de matriz de distancias (Haversine).
- Implementar algoritmo base de optimización (ej. "Vecino más cercano").
- Ingesta de datos desde
- Fase 2: Visualización
- Integrar la solución con
Foliumpara generar el mapa. - Mostrar la ruta optimizada vs. una ruta aleatoria para comparar.
- Integrar la solución con
- Fase 3: (Backlog - v2.0)
- (Opcional) Implementar un algoritmo más avanzado (ej. Algoritmo Genético o Simulated Annealing).
- (Opcional) Usar
OSMnxpara obtener rutas de calles reales en lugar de líneas rectas.
# Instrucciones para clonar y ejecutar el proyecto
git clone [https://github.com/B-GUST/route-optimizer.git](https://github.com/B-GUST/route-optimizer.git)
cd route-optimizer
pip install -r requirements.txt
jupyter notebook analysis.ipynb