El Problema de Enrutamiento de Vehículos (VRP, por sus siglas en inglés) es un desafío fundamental en la logística y el transporte, donde se busca determinar la mejor manera de asignar y organizar rutas de entrega de vehículos para minimizar costos y optimizar tiempos. Su resolución es clave para mejorar la eficiencia operativa en sectores como la distribución de mercancías, la gestión de flotas y el servicio de última milla.
Este proyecto implementa una solución al VRP combinando el algoritmo de optimización de colonias de hormigas (ACO) con clustering basado en K-Means. Mediante esta integración, se agrupan eficientemente los puntos de entrega y se optimizan las rutas dentro de cada grupo, considerando restricciones como la capacidad de los vehículos y la demanda de los clientes.
El problemset está disponible gracias al Ingeniero y maestro Carlos Ogando.
- Clustering: Se utiliza K-Means con restricción de capacidad para agrupar los puntos de entrega en clusters, teniendo en cuenta la demanda de cada punto y la capacidad de los vehículos.
- ACO: El algoritmo ACO se ejecuta en cada cluster para encontrar la ruta óptima dentro del mismo. Se considera el depósito como punto de inicio y fin de cada ruta.
- Flujo General: Se crea un flujo para integrar el clustering y el ACO, que procesa los datos, aplica los algoritmos y almacena los resultados en un dataframe.
- Validación: Se realiza una comparación con soluciones previamente calculadas utilizando Clarke-Wright (CW) y fuerza bruta (BF), y se calculan métricas de error como MAE y MSE.
Para ejecutar el proyecto en tu máquina local, instala las dependencias con:
pip install -r requirements.txt
- Importar datos: Asegúrate de tener los datos de entrada en los formatos correspondientes (Parquet, Excel) y ubicados en las rutas indicadas en el código.
- Ejecutar el flujo general: Ejecuta las celdas de código en secuencia, comenzando por la importación de librerías y la carga de datos, hasta llegar a la validación de resultados.
- Análisis de resultados: Interpreta los resultados obtenidos, como el costo total de las rutas, el número de vehículos utilizados y las métricas de error.
- Darwin Mendez: GitHub, LinkedIn
- Roither Sanchez: GitHub, LinkedIn
- Michael García: GitHub, LinkedIn
- Camily García: GitHub, LinkedIn
- Explorar distintos parámetros del ACO y del clustering para optimizar aún más la solución.
- Comparar el rendimiento con otros algoritmos de enrutamiento.
- Considerar la visualización de las rutas en un mapa.