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:
Modelado de datos (
src/models/):- Clases
Farm,SlaughterhouseyTransportque representan entidades del mundo real - Cada clase encapsula propiedades y métodos específicos
- Clases
Motor de simulación (
src/simulation/):Simulator.py: Orquesta la simulación día por díaRouter.py: Genera rutas óptimas basadas en restricciones del negocio
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)
Visualización (
visualization/):map.py: Mapas interactivos con Plotly mostrando ubicación de granjas y escorxadorsdashboard.py: Gráficos de KPIs y análisis de rendimiento
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:
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.
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.
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.
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.
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
Arquitectura escalable y mantenible: Desarrollamos un código limpio, modular y bien documentado que puede extenderse fácilmente con nuevas funcionalidades.
Simulación realista: Implementamos un modelo que considera factores reales del negocio: crecimiento biológico de animales, costes operativos reales, penalizaciones por retrasos.
Visualización interactiva: Creamos dashboards y mapas profesionales que permiten entender los resultados de forma intuitiva.
Algoritmo de optimización funcional: A pesar de la complejidad del problema, logramos un algoritmo que encuentra soluciones viables respetando todas las restricciones.
Documentación completa: Creamos un README claro con instrucciones paso a paso, estructura del proyecto y guía de solución de problemas.
Enviroment management: Implementamos correctamente el uso de entornos virtuales, garantizando reproducibilidad del proyecto en diferentes máquinas.
What we learned / Qué aprendimos
Programación orientada a objetos: Aprendimos cómo diseñar clases bien estructuradas que representan entidades del mundo real de forma elegante.
Optimización bajo restricciones: Entendimos la dificultad de problemas combinatorios y la importancia de heurísticas en problemas NP-duros.
Ingeniería de datos: Mejoramos nuestras habilidades manipulando datos de múltiples formatos (CSV, XLSX) y validando su integridad.
Simulación y modelado: Aprendimos técnicas de simulación discreta y cómo modelar sistemas complejos del mundo real.
Visualización de datos: Descubrimos el poder de Plotly para crear dashboards interactivos profesionales.
Trabajo en equipo: Colaboramos efectivamente dividiendo tareas, resolviendo conflictos y compartiendo conocimiento entre miembros del equipo.
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
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
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
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
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
Machine Learning:
- Predicción de demanda de transporte
- Clustering de granjas para mejor planificación
- Análisis predictivo de costes
Testing y calidad:
- Crear suite de tests unitarios (pytest)
- Validación automática de restricciones
- CI/CD pipeline para deployments
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.
Log in or sign up for Devpost to join the conversation.