Skip to content

Junto con Juvenal Campos participamos en el Brewing Data Cup, un concurso de análisis de datos, organizado por Ab Inbev, y ganamos el primer lugar en México 🎊🎉. El reto consistía en encontrar la mejor forma de clusterizar los puntos de venta para minimizar la distancia de reparto cada día

Notifications You must be signed in to change notification settings

Databuesos-Team/brewdatacup2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brewdatacup2020

Participación en la Brewing Datacup 2020 por Juan Javier Santos Ochoa y Jorge Juvenal Campos Ferreira.

Instrucciones.

Para ejecutar el modelo realizado por el equipo durante el Datatón, hay que descargar los archivos que componen el presente repositorio.

Software requerido.

  • Python 3.0 o más reciente.

  • Una distribución de Jupyter Notebook instalada en el ordenador.

Descripción del problema

El objetivo es generar un modelo original, escalable y con lógica de negocio que permita proponer un esquema de logística para la repartición de producto proveniente de un Centro de Distribución Regional a lo largo de una semana.

Las restricciones presentadas en el conjunto de datos son las siguientes:

  1. Existencia de 3,625 puntos de demanda de producto.

  2. La frecuencia de entrega para estos puntos es variable, variando desde 1 entrega a 3 entregas a la semana.

  3. El volumen de demanda de producto por parte de las tiendas es variable.

  4. Las entregas que se lleven a cabo en los distintos centros de distribución deben estar balanceadas, es decir, por motivos de logística, las entregas llevadas a cabo a lo largo de la semana tienen que ser lo más similares posible en distancia recorrida, volumen de producto entregado y número de paradas realizadas.

Modelo utilizado.

Se utilizó un ensamble de modelos de Machine Learning de clustering para la clasificación de zonas de venta de cerveza, combinado con Programación Lineal.

Los modelos de ML y PL utilizados fueron:

  1. Clustering con k-means.

  2. Corrección de clustering en las fronteras utilizando el algorítmo de k-Nearest Neighbors.

  3. Introducción de restricciones de balanceo a través del módulo de Python pulp, para forzar las condiciones de balanceo en la formación de los clusters de repartición.

Resultado obtenido

Se obtuvo un modelo con los siguientes resultados:

Dia No. Paradas Volumen repartido Distancia
D1 666 9247.000 7124
D2 656 8886.000 5799
D3 650 9246.667 7234
D4 676 8886.833 7493
D5 653 9247.500 6019
D6 676 8886.000 7607

Los territorios de reparto óptimo obtenidos bajo este método son los siguientes:

Presentación

La presentación de 5 diapositivas se puede consultar en este enlace.

About

Junto con Juvenal Campos participamos en el Brewing Data Cup, un concurso de análisis de datos, organizado por Ab Inbev, y ganamos el primer lugar en México 🎊🎉. El reto consistía en encontrar la mejor forma de clusterizar los puntos de venta para minimizar la distancia de reparto cada día

Resources

Stars

Watchers

Forks