Optimización de la cadena de suministro con Python
La optimización de la cadena de suministro hace el mejor uso del análisis de datos para encontrar una combinación óptima de fábricas y centros de distribución para hacer coincidir la oferta y la demanda.
Debido al aumento actual en los costos de envío, las empresas comienzan a desafiar su huella actual para adaptarse a la "Nueva Normalidad" posterior al covid .
En este artículo, presentaremos una metodología simple usando Programación Lineal para la Optimización de la Cadena de Suministro considerando
- Costos fijos de producción de sus instalaciones ($/Mes)
- Costos variables de producción por unidad producida ($/Unidad)
- Gastos de envío ($)
- Demanda del cliente (Unidades)
Nuevos artículos directamente en tu bandeja de entrada gratis: Newsletter
Si prefiere ver, puede echar un vistazo a la versión en video de este artículo.
I. ¿Cómo diseñar una red de cadena de suministro con Python?
Planteamiento del problema
Como jefe de gestión de la cadena de suministro de una empresa de fabricación internacional, desea redefinir la red de la cadena de suministro para los próximos 5 años teniendo en cuenta el reciente aumento de los costes de envío y las previsiones de demanda futura.
Su red de cadena de suministro
- 5 mercados en Brasil, EE. UU., India, Japón, Alemania
- 2 tipos de instalaciones de fabricación : sitios de baja y alta capacidad
- Gastos de envío ($/contenedor)
- Demanda del cliente (Unidades/año)
- Gastos de capital para el equipo (Máquinas, Almacenamiento, ..)
- Servicios Públicos (Electricidad, Agua, ..)
- Dirección de fábrica, personal administrativo.
- Alquiler de espacio
Costos variables de producción
- Operadores de líneas de producción
- Materias primas
Costos variables de envío
- Costo por contenedor ($/Contenedor)
- Suposición: 1 contenedor puede contener 1000 unidades
Capacidad de fabricación por sitio
Por ejemplo, una fábrica de alta capacidad en Brasil puede producir 1.500.000 (Unidades/mes).
Demanda de clientes por mercado
Puedes encontrar el código completo en este repositorio de Github: Vincular
Mi portafolio con otros proyectos: Samir Saci
II. Resultados
Probemos tres escenarios
- Escenario 1: parámetros iniciales
- Escenario 2: aumentamos la capacidad productiva de India (x2)
- Escenario 3: aumento de los costos de envío debido a la escasez de contenedores
- La planta de Brasil está produciendo para el mercado local y los EE. UU.
Facilities: 1 high capacity plant
('Brazil','Brazil') = 145,000 (Units/Month)
('Brazil','USA') = 1,250,000 (Units/Month)
Facilities: 1 high capacity plant and 1 low capacity plant
('India','Germany') = 90,000 (Units/Month)
('India','India') = 160,000 (Units/Month)
('India','Japan') = 200,000 (Units/Month)
('India','USA') = 1,550,000 (Units/Month)
Facilities: 1 high capacity plant
('Japan','Japan') = 1,500,000 (Units/Month)
Total Costs = 62,038,000 ($/Month)
Tratemos de duplicar el tamaño de la planta de alta capacidad de India con el supuesto de que duplicará los costos fijos.
- La planta de Brasil sigue produciendo para el mercado local y EE.UU.
Facilities: 1 high capacity plant
('Brazil','Brazil') = 145,000 (Units/Month)
('Brazil','USA') = 1,250,000 (Units/Month)
Facilities: 2 high capacity and 1 low capacity plants
('India','Germany') = 90,000 (Units/Month)
('India','India') = 160,000 (Units/Month)
('India','Japan') = 1,700,000 (Units/Month)
('India','USA') = 1,550,000 (Units/Month)
-19.4(%) vs. Scenario 1
Total Costs = 51,352,000 ($/Month)
¿Qué pasa si tenemos los costos de los contenedores multiplicados por 5?
- Brasil está produciendo solo para el mercado local
Facilities: 1 low capacity plant
('Brazil','Brazil') = 145,000 (Units/Month)
Facilities: 1 high capacity plant
('USA','Japan') = 200,000 (Units/Month)
('USA','USA') = 1,300,000 (Units/Month)
Facilities: 1 high capacity plant
('India','Germany') = 90,000 (Units/Month)
('India','India') = 160,000 (Units/Month)
('India','USA') = 1,500,000 (Units/Month)
Facilities: 1 high capacity plant
('Japan','Japan') = 1,500,000 (Units/Month)
Total Costs = 92,981,000 ($/Month)
Sígueme en medium para obtener más información relacionada con la ciencia de datos para la cadena de suministro.
Usaremos la biblioteca PuLP de python. PuLP es un marco de modelado para problemas de programación lineal (LP) y de enteros (IP) escrito en Python y mantenido por la Fundación COIN-OR (Infraestructura informática para la investigación de operaciones).
1. Declara tus variables, parámetros y modelo
- LpMinimize : su objetivo es minimizar sus costos
- lowBound =0: no puede tener valores negativos de unidades producidas
3. Resuelve tu modelo y analiza los resultados
tercero Conclusión y próximos pasos
No dude en seguirme en medio para obtener más artículos relacionados con el análisis de datos y la gestión de la cadena de suministro.
Conclusión
Este modelo le permite simular varios escenarios que influyen en los parámetros operativos y comerciales.
- ¿Qué pasa si la demanda explota en la India?
- ¿Qué pasa si tenemos que cerrar nuestra planta en Brasil?
- ¿Y si triplicamos la capacidad de producción en Japón?
Abastecimiento Sostenible
Se puede utilizar un enfoque similar para seleccionar a sus proveedores considerando una función objetivo que minimice la huella de CO2 .
El abastecimiento sostenible es el proceso de integración de factores de desempeño social, ético y ambiental al seleccionar proveedores.
Esto implica evaluar y evaluar a los proveedores en función de un conjunto de criterios de sostenibilidad, como derechos laborales, salud y seguridad, impacto ambiental, derechos humanos y más.
Use análisis de datos para seleccionar automáticamente el mejor proveedor con una combinación de restricciones económicas y ambientales
En este artículo, descubriremos cómo usar el análisis de datos para diseñar una red de cadena de suministro óptima para minimizar los costos y los impactos ambientales.
Mejora tu modelo
Este modelo simple puede ayudarlo a obtener el potencial de la optimización lineal para la optimización de la red de la cadena de suministro. Podemos mejorar rápidamente este modelo agregando restricciones
- Costos de almacenamiento
- Limitaciones de emisiones de carbono (CO2 = f(distancia, peso))
- Plazo de entrega
- Tarifas de liquidación del cliente
- Cambio de moneda
Acerca de mí
Conectémonos en Linkedin y Twitter , soy un ingeniero de cadena de suministro que utiliza análisis de datos para mejorar las operaciones logísticas y reducir costos.
Si está interesado en el análisis de datos y la cadena de suministro, eche un vistazo a mi sitio web
Referencias
[1] Infraestructura Computacional para Investigación Operativa, Optimización con PuLP (Documentación), Link

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































