Implantation d'usines avec capacité – étude de cas P1

Analytique de la chaîne d'approvisionnement avec Python

Aaren Stubberfield

Supply Chain Analytics Mgr.

Contexte

Plusieurs options pour répondre à la demande régionale

Option Avantages Inconvénients
Petites usines dans la région Faibles coûts de transport, peu ou pas de tarifs/droits Réseau global avec surcapacité possible, pas d'économies d'échelle
Quelques grandes usines et expédier vers la région Économies d'échelle Coûts de transport plus élevés, tarifs et droits plus élevés

Analytique de la chaîne d'approvisionnement avec Python

Modèle d'implantation d'usines avec capacité

  • Modèle d'implantation d'usines avec capacité$^{1}$
  • Objectif : optimiser le réseau mondial de la chaîne d'approvisionnement
    • Satisfaire la demande régionale au coût minimal
    • Déterminer la production régionale d'un produit
1 Chopra, Sunil, et Peter Meindl. Supply Chain Management : Strategy, Planning, and Operations. Pearson Prentice-Hall, 2007.
Analytique de la chaîne d'approvisionnement avec Python

Modèle d'implantation d'usines avec capacité

Modélisation

  • Production dans des installations régionales
    • Deux tailles d'usine (faible/élevée)
  • Exportation de la production vers d'autres régions
  • Ouverture/fermeture des installations

image du globe avec production régionale

Analytique de la chaîne d'approvisionnement avec Python

Variables de décision

Ce que nous contrôlons :

  • $x_{ij}$ = quantité produite à l'emplacement _i_ et expédiée vers _j_
  • $y_{is}$ = 1 si l'usine à l'emplacement _i_ de capacité _s_ est ouverte, 0 si fermée
    • $s$ = usine de capacité faible ou élevée
Analytique de la chaîne d'approvisionnement avec Python

Fonction objectif

Minimiser $z = \sum_{i=1}^{n}(f_{is} y_{is}) + \sum_{i=1}^{n} \sum_{i=1}^{m} (c_{ij} x_{ij})$

  • $c_{ij}$ = coût de production et d'expédition de l'usine _i_ vers la région _j_
  • $f_{is}$ = coût fixe pour garder ouverte l'usine _i_ de capacité _s_
  • $n$ = nombre d'installations de production
  • $m$ = nombre de marchés ou points de demande régionale
Analytique de la chaîne d'approvisionnement avec Python
from pulp import *

# Initialize Class
model = LpProblem("Capacitated Plant Location Model", LpMinimize)

# Define Decision Variables
loc = ['A', 'B', 'C', 'D', 'E']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production",[(i,j) for i in loc for j in loc], 
                      lowBound=0, upBound=None, cat='Continous')
y = LpVariable.dicts("plant",[(i,s) for s in size for i in loc], cat='Binary')

# Define objective function model += (lpSum([fix_cost.loc[i,s]*y[(i,s)] for s in size for i in loc]) + lpSum([var_cost.loc[i,j]*x[(i,j)] for i in loc for j in loc]))
Analytique de la chaîne d'approvisionnement avec Python

Résumé

Modèle d'implantation d'usines avec capacité :

  • Trouve l'équilibre du nombre d'installations
  • Variables de décision :
    • Quantité produite dans une région et exportée
    • Installations de capacité élevée ou faible, ouvertes ou fermées
  • Fonction objectif passée en revue
    • Somme des coûts variables et fixes de production
  • Exemple de code passé en revue
Analytique de la chaîne d'approvisionnement avec Python

Révision

Analytique de la chaîne d'approvisionnement avec Python

Preparing Video For Download...