Optimisation de la chaîne d'approvisionnement avec Python
L'optimisation de la chaîne d'approvisionnement tire le meilleur parti de l'analyse des données pour trouver une combinaison optimale d'usines et de centres de distribution pour faire correspondre l'offre et la demande.
En raison de la flambée actuelle des coûts d'expédition, les entreprises commencent à remettre en question leur empreinte actuelle pour s'adapter à la « nouvelle normalité » post-covid .
Dans cet article, nous présenterons une méthodologie simple utilisant la programmation linéaire pour l'optimisation de la chaîne d'approvisionnement en considérant
- Coûts fixes de production de vos installations ($/Mois)
- Coûts de production variables par unité produite ($/Unité)
- Frais de port ($)
- Demande du client (unités)
Nouveaux articles directement dans votre boîte de réception gratuitement : Newsletter
Si vous préférez regarder, vous pouvez jeter un œil à la version vidéo de cet article
I. Comment concevoir un Supply Chain Network avec Python ?
Énoncé du problème
En tant que responsable de la gestion de la chaîne d'approvisionnement d'une entreprise manufacturière internationale, vous souhaitez redéfinir le réseau de la chaîne d'approvisionnement pour les 5 prochaines années compte tenu de la récente augmentation des coûts d'expédition et des prévisions de la demande future.
Votre réseau de chaîne d'approvisionnement
- 5 marchés au Brésil, USA, Inde, Japon, Allemagne
- 2 types d' installations de fabrication : sites de faible capacité et sites de grande capacité
- Frais de livraison ($/contenant)
- Demande du client (Unités/an)
- Dépenses d'investissement pour l'équipement (Machines, Stockage, ..)
- Services publics (électricité, eau, ..)
- Direction d'usine, personnel administratif
- Location d'espace
Coûts variables de production
- Opérateurs de lignes de production
- Matières premières
Coûts variables d'expédition
- Coût par conteneur ($/Conteneur)
- Hypothèse : 1 conteneur peut contenir 1000 unités
Capacité de fabrication par site
Par exemple, une usine de grande capacité au Brésil peut produire 1 500 000 (Unités/mois).
Demande des clients par marché
Vous pouvez trouver le code complet dans ce dépôt Github : Lien
Mon portfolio avec d'autres projets : Samir Saci
II. Résultats
Essayons trois scénarios
- Scénario 1 : paramètres initiaux
- Scénario 2 : on augmente la capacité de production de l'Inde (x2)
- Scénario 3 : augmentation des coûts d'expédition en raison d'une pénurie de conteneurs
- L'usine brésilienne produit pour le marché local et les États-Unis
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)
Essayons de doubler la taille de l'usine India High Capacity en supposant qu'elle doublera les coûts fixes.
- L'usine brésilienne produit toujours pour le marché local et les États-Unis
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)
Et si nous avions des coûts de conteneur multipliés par 5 ?
- Le Brésil produit uniquement pour le marché 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)
Suivez-moi sur le support pour plus d'informations sur la science des données pour la chaîne d'approvisionnement.
Nous utiliserons la bibliothèque PuLP de python. PuLP est un cadre de modélisation pour les problèmes de programmation linéaire (LP) et de programmation entière (IP) écrit en Python et maintenu par la Fondation COIN-OR (Computational Infrastructure for Operations Research).
1. Déclarez vos variables, paramètres et modèle
- LpMinimize : votre objectif est de minimiser vos coûts
- lowBound =0 : vous ne pouvez pas avoir des valeurs négatives d'unités produites
3. Résolvez votre modèle et analysez les résultats
III. Conclusion et prochaines étapes
N'hésitez pas à me suivre sur le support pour plus d'articles liés à l'analyse des données et à la gestion de la chaîne d'approvisionnement
Conclusion
Ce modèle permet de simuler plusieurs scénarios influençant les paramètres opérationnels et commerciaux.
- Et si la demande explosait en Inde ?
- Et si nous devions fermer notre usine au Brésil ?
- Et si on triplait la capacité de production au Japon ?
Approvisionnement durable
Une approche similaire peut être utilisée pour sélectionner vos fournisseurs en tenant compte d'une fonction objective qui minimisera l' empreinte CO2 .
L'approvisionnement durable est le processus d'intégration des facteurs de performance sociale, éthique et environnementale lors de la sélection des fournisseurs.
Cela implique d'évaluer et d'évaluer les fournisseurs sur la base d'un ensemble de critères de durabilité, tels que les droits du travail, la santé et la sécurité, l'impact environnemental, les droits de l'homme, etc.
Utilisez l'analyse de données pour sélectionner automatiquement le meilleur fournisseur avec un mélange de contraintes économiques et environnementales
Dans cet article, nous découvrirons comment utiliser l'analyse de données pour concevoir un réseau de chaîne d'approvisionnement optimal afin de minimiser les coûts et les impacts environnementaux.
Améliorez votre modèle
Ce modèle simple peut vous aider à tirer parti du potentiel d'optimisation linéaire pour l'optimisation du réseau de la chaîne d'approvisionnement. On peut rapidement améliorer ce modèle en ajoutant des contraintes
- Coûts de stockage
- Limitations des émissions de carbone (CO2 = f(distance, poids))
- Délai de livraison
- Frais de dédouanement client
- Changement de devise
Sur moi
Connectons-nous sur Linkedin et Twitter , je suis un ingénieur de la chaîne d'approvisionnement qui utilise l'analyse de données pour améliorer les opérations logistiques et réduire les coûts.
Si vous êtes intéressé par l'analyse de données et la chaîne d'approvisionnement, consultez mon site Web
Les références
[1] Infrastructure informatique pour la recherche opérationnelle, Optimisation avec PuLP (Documentation), Lien
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































