What it does / Qué hace

Este proyecto es una simulación logística avanzada que resuelve el problema de optimización del transporte de cerdos desde granjas hasta escorxadors (mataderos). La simulación:

  • Planifica rutas diarias eficientes respetando restricciones reales del negocio
  • Calcula el crecimiento biológico de los animales basándose en su edad y consumo
  • Optimiza costes de transporte considerando distancias, combustible y penalizaciones por retrasos
  • Genera reportes financieros con ingresos, costes y beneficio neto
  • Visualiza datos mediante mapas interactivos y dashboards de KPIs (indicadores clave de rendimiento)

El sistema simula múltiples días de operación, respetando restricciones como máximo 3 granjas por ruta, 8 horas de trabajo diario, y una visita semanal máxima por granja.


How we built it / Cómo lo construimos

El proyecto fue desarrollado siguiendo una arquitectura modular de programación orientada a objetos (POO) en Python:

  1. Modelado de datos (src/models/):

    • Clases Farm, Slaughterhouse y Transport que representan entidades del mundo real
    • Cada clase encapsula propiedades y métodos específicos
  2. Motor de simulación (src/simulation/):

    • Simulator.py: Orquesta la simulación día por día
    • Router.py: Genera rutas óptimas basadas en restricciones del negocio
  3. Gestión de datos biológicos (src/utils/BiologicalDataManager.py):

    • Modela crecimiento de cerdos según edad
    • Calcula consumo de pienso basándose en datos reales (XLSX)
  4. Visualización (visualization/):

    • map.py: Mapas interactivos con Plotly mostrando ubicación de granjas y escorxadors
    • dashboard.py: Gráficos de KPIs y análisis de rendimiento
  5. Tecnologías utilizadas:

    • Python 3.12 como lenguaje principal
    • Pandas para manipulación de datos
    • Plotly para visualización interactiva
    • Algoritmos de optimización personalizados

Challenges we ran into / Desafíos que enfrentamos

Durante el desarrollo nos encontramos con varios obstáculos importantes:

  1. Complejidad de restricciones múltiples: Equilibrar simultáneamente máximo 3 granjas por ruta, 8 horas de trabajo, capacidad del escorxador y visita semanal única fue complejo. Necesitamos diseñar un algoritmo robusto que respetara todas las restricciones sin sacrificar eficiencia.

  2. Modelado biológico realista: Obtener datos precisos sobre crecimiento de cerdos y consumo según edad requirió investigación y validación. Integrar estos datos (archivos XLSX) en la simulación fue un desafío técnico.

  3. Optimización de rutas: Encontrar rutas óptimas que minimizaran costes sin violar restricciones es un problema NP-duro. Implementamos heurísticas y algoritmos greedy para obtener soluciones viables en tiempo razonable.

  4. Penalizaciones por retrasos: Modelar correctamente las penalizaciones por entregas fuera de horario (antes de 15:00 o después de 20:00) requería lógica temporal compleja.

  5. Gestión de datos heterogéneos: Combinar datos de múltiples fuentes (CSV, XLSX) con diferentes formatos y garantizar consistencia fue un reto de ingeniería de datos.


Accomplishments that we're proud of / Logros de los que estamos orgullosos

  1. Arquitectura escalable y mantenible: Desarrollamos un código limpio, modular y bien documentado que puede extenderse fácilmente con nuevas funcionalidades.

  2. Simulación realista: Implementamos un modelo que considera factores reales del negocio: crecimiento biológico de animales, costes operativos reales, penalizaciones por retrasos.

  3. Visualización interactiva: Creamos dashboards y mapas profesionales que permiten entender los resultados de forma intuitiva.

  4. Algoritmo de optimización funcional: A pesar de la complejidad del problema, logramos un algoritmo que encuentra soluciones viables respetando todas las restricciones.

  5. Documentación completa: Creamos un README claro con instrucciones paso a paso, estructura del proyecto y guía de solución de problemas.

  6. Enviroment management: Implementamos correctamente el uso de entornos virtuales, garantizando reproducibilidad del proyecto en diferentes máquinas.


What we learned / Qué aprendimos

  1. Programación orientada a objetos: Aprendimos cómo diseñar clases bien estructuradas que representan entidades del mundo real de forma elegante.

  2. Optimización bajo restricciones: Entendimos la dificultad de problemas combinatorios y la importancia de heurísticas en problemas NP-duros.

  3. Ingeniería de datos: Mejoramos nuestras habilidades manipulando datos de múltiples formatos (CSV, XLSX) y validando su integridad.

  4. Simulación y modelado: Aprendimos técnicas de simulación discreta y cómo modelar sistemas complejos del mundo real.

  5. Visualización de datos: Descubrimos el poder de Plotly para crear dashboards interactivos profesionales.

  6. Trabajo en equipo: Colaboramos efectivamente dividiendo tareas, resolviendo conflictos y compartiendo conocimiento entre miembros del equipo.

  7. Gestión de proyectos técnicos: Experimentamos ciclos de diseño, implementación, prueba y refinamiento iterativo.


What's next for proyecto_HackEPS2025_Daranuta-Zop-Cristian / Qué viene después

  1. Algoritmos de optimización avanzados:

    • Implementar algoritmos genéticos (GA) para exploración más profunda del espacio de soluciones
    • Utilizar programación lineal (LP) para encontrar soluciones óptimas garantizadas
    • Explorar metaheurísticas como simulated annealing o ant colony optimization
  2. Frontend mejorado:

    • Crear interfaz web con Streamlit o Django
    • Permitir carga dinámica de datos sin modificar archivos
    • Visualización en tiempo real de la simulación
  3. Funcionalidades de negocio:

    • Predicción de precios de mercado
    • Análisis de rentabilidad por ruta
    • Reportes exportables en PDF y Excel
    • Alertas automáticas por anomalías
  4. Base de datos:

    • Migrar de CSV/XLSX a base de datos relacional (PostgreSQL)
    • Implementar API REST para acceso remoto a los datos
    • Historial de simulaciones y resultados
  5. Machine Learning:

    • Predicción de demanda de transporte
    • Clustering de granjas para mejor planificación
    • Análisis predictivo de costes
  6. Testing y calidad:

    • Crear suite de tests unitarios (pytest)
    • Validación automática de restricciones
    • CI/CD pipeline para deployments
  7. Escalabilidad:

    • Optimizar performance para simular meses completos
    • Paralelizar cálculos en múltiples procesadores
    • Soporte para múltiples escorxadors y regiones

Este proyecto representa un caso de uso real de ingeniería de software aplicada a problemas de logística y optimización.

Built With

Share this project:

Updates