Localizarea fabricilor cu capacitate - studiu de caz P1

Analitică în lanțul de aprovizionare cu Python

Aaren Stubberfield

Supply Chain Analytics Mgr.

Context

Mai multe opțiuni pentru satisfacerea cererii regionale

Opțiune Avantaj Dezavantaj
Facilități mici de producție în regiune Costuri de transport reduse, tarife și taxe minime Rețeaua poate avea capacitate excedentară, fără economii de scară
Câteva fabrici mari și livrare în regiune Economii de scară Transport mai costisitor, tarife și taxe mai mari

Analitică în lanțul de aprovizionare cu Python

Modelul de localizare a fabricilor cu capacitate

  • Modelul de localizare a fabricilor cu capacitate$^{1}$
  • Obiectivul este optimizarea rețelei globale a lanțului de aprovizionare
    • Satisfacerea cererii regionale la cost minim
    • Determinarea producției regionale a unui produs
1 Chopra, Sunil, and Peter Meindl. _Supply Chain Management: Strategy, Planning, and Operations._ Pearson Prentice-Hall, 2007.
Analitică în lanțul de aprovizionare cu Python

Modelul de localizare a fabricilor cu capacitate

Modelare

  • Producție la facilități regionale
    • Două dimensiuni de fabrici (mică / mare)
  • Export al producției în alte regiuni
  • Facilități de producție deschise / închise

imagine a globului cu producție regională

Analitică în lanțul de aprovizionare cu Python

Variabile de decizie

Ce putem controla:

  • $x_{ij}$ = cantitatea produsă la locația _i_ și livrată la _j_
  • $y_{is}$ = 1 dacă fabrica de la locația _i_ cu capacitatea _s_ este deschisă, 0 dacă este închisă
    • $s$ = fabrică de capacitate mică sau mare
Analitică în lanțul de aprovizionare cu Python

Funcția obiectiv

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

  • $c_{ij}$ = costul producției și transportului din fabrica _i_ în regiunea _j_
  • $f_{is}$ = costul fix al menținerii fabricii _i_ cu capacitatea _s_ deschisă
  • $n$ = numărul de unități de producție
  • $m$ = numărul de piețe sau puncte de cerere regională
Analitică în lanțul de aprovizionare cu 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]))
Analitică în lanțul de aprovizionare cu Python

Rezumat

Modelul de localizare a fabricilor cu capacitate:

  • Găsește un echilibru în privința numărului de unități de producție
  • Variabile de decizie ale modelului:
    • Cantitatea produsă într-o regiune și exportată
    • Facilități de capacitate mare sau mică, deschise sau închise
  • Funcția obiectiv analizată
    • Sumează costurile variabile și fixe de producție
  • Exemplu de cod analizat
Analitică în lanțul de aprovizionare cu Python

Timp de recapitulare

Analitică în lanțul de aprovizionare cu Python

Preparing Video For Download...