Ubicación de plantas con capacidad: estudio de caso P1

Analítica de la cadena de suministro en Python

Aaren Stubberfield

Supply Chain Analytics Mgr.

Contexto

Varias opciones para cubrir la demanda regional

Opción Ventaja Desventaja
Plantas pequeñas dentro de la región Bajos costes de transporte, pocos o ningún arancel/impuesto Exceso de capacidad en la red, sin economías de escala
Pocas plantas grandes y envío a la región Economías de escala Transporte más alto, más aranceles e impuestos

Analítica de la cadena de suministro en Python

Modelo de ubicación de plantas con capacidad

  • Modelo de ubicación de plantas con capacidad$^{1}$
  • Objetivo: optimizar la red global de la cadena de suministro
    • Cubrir la demanda regional al menor coste
    • Determinar la producción regional de un producto
1 Chopra, Sunil, and Peter Meindl. _Supply Chain Management: Strategy, Planning, and Operations._ Pearson Prentice-Hall, 2007.
Analítica de la cadena de suministro en Python

Modelo de ubicación de plantas con capacidad

Modelado

  • Producción en plantas regionales
    • Dos tamaños de planta (baja / alta)
  • Exportar producción a otras regiones
  • Abrir / cerrar plantas

imagen de un globo con producción regional

Analítica de la cadena de suministro en Python

Variables de decisión

Qué controlamos:

  • $x_{ij}$ = cantidad producida en la ubicación _i_ y enviada a _j_
  • $y_{is}$ = 1 si la planta en _i_ con capacidad _s_ está abierta; 0 si está cerrada
    • $s$ = planta de capacidad baja o alta
Analítica de la cadena de suministro en Python

Función objetivo

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

  • $c_{ij}$ = coste de producir y enviar de la planta _i_ a la región _j_
  • $f_{is}$ = coste fijo de mantener abierta la planta _i con capacidad _s_
  • $n$ = número de plantas
  • $m$ = número de mercados o puntos de demanda
Analítica de la cadena de suministro en 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]))
Analítica de la cadena de suministro en Python

Resumen

Modelo de ubicación de plantas con capacidad:

  • Equilibra cuántas plantas tener
  • Variables de decisión:
    • Cantidad producida en una región y exportada
    • Plantas abiertas de capacidad alta o baja
  • Repasamos la función objetivo
    • Suma costes variables y fijos
  • Repasamos el código
Analítica de la cadena de suministro en Python

Momento de repaso

Analítica de la cadena de suministro en Python

Preparing Video For Download...