Lokalizacja zakładu z ograniczeniami – studium przypadku cz. 1

Analityka łańcucha dostaw w Pythonie

Aaren Stubberfield

Supply Chain Analytics Mgr.

Kontekst

Wiele opcji zaspokojenia regionalnego popytu

Opcja Zalety Wady
Małe zakłady produkcyjne w regionie Niskie koszty transportu, brak lub minimalne cła i opłaty Sieć może mieć nadmierne moce, brak korzyści skali
Kilka dużych zakładów i wysyłka do regionów Korzyści skali Wyższe koszty transportu, wyższe cła i opłaty

Analityka łańcucha dostaw w Pythonie

Model lokalizacji zakładu z ograniczeniami

  • Model lokalizacji zakładu z ograniczeniami$^{1}$
  • Cel: optymalizacja globalnej sieci łańcucha dostaw
    • Zaspokojenie regionalnego popytu przy najniższym koszcie
    • Określenie regionalnej produkcji wyrobu
1 Chopra, Sunil, and Peter Meindl. _Supply Chain Management: Strategy, Planning, and Operations._ Pearson Prentice-Hall, 2007.
Analityka łańcucha dostaw w Pythonie

Model lokalizacji zakładu z ograniczeniami

Modelowanie

  • Produkcja w zakładach regionalnych
    • Dwa rozmiary zakładów (mały / duży)
  • Eksport produkcji do innych regionów
  • Zakłady produkcyjne: otwarte / zamknięte

globus z regionalną produkcją

Analityka łańcucha dostaw w Pythonie

Zmienne decyzyjne

Co możemy kontrolować:

  • $x_{ij}$ = ilość wyprodukowana w lokalizacji _i_ i dostarczona do _j_
  • $y_{is}$ = 1, jeśli zakład w lokalizacji _i_ o pojemności _s_ jest otwarty, 0 jeśli zamknięty
    • $s$ = pojemność mała lub duża
Analityka łańcucha dostaw w Pythonie

Funkcja celu

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

  • $c_{ij}$ = koszt produkcji i transportu z zakładu _i_ do regionu _j_
  • $f_{is}$ = stały koszt utrzymania zakładu _i_ o pojemności _s_
  • $n$ = liczba zakładów produkcyjnych
  • $m$ = liczba rynków lub regionalnych punktów popytu
Analityka łańcucha dostaw w Pythonie
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]))
Analityka łańcucha dostaw w Pythonie

Podsumowanie

Model lokalizacji zakładu z ograniczeniami:

  • Wyznacza kompromis między liczbą zakładów produkcyjnych
  • Zmienne decyzyjne modelu:
    • Wielkość produkcji w regionie i eksport
    • Zakłady o dużej lub małej pojemności: otwarte lub zamknięte
  • Omówiona funkcja celu
    • Sumuje zmienne i stałe koszty produkcji
  • Omówiony przykład kodu
Analityka łańcucha dostaw w Pythonie

Czas na powtórkę

Analityka łańcucha dostaw w Pythonie

Preparing Video For Download...