ComenzarEmpieza gratis

Añadir una restricción lógica en el ejercicio del caso práctico

Continúa con el caso práctico del modelo de Localización de Plantas con Capacidad de un fabricante de automóviles. Se te proporcionan cuatro data frames de Pandas: demand, var_cost, fix_cost y cap, que contienen la demanda por región (miles de coches), los costes variables de producción (miles de $US), los costes fijos de producción (miles de $US) y la capacidad de producción (miles de coches). También se han creado dos listas de Python, loc y size, con las distintas ubicaciones y los dos tipos de capacidades de planta. Todas estas variables se han impreso en la consola para que puedas verlas. El código para inicializar, definir las variables de decisión, crear la función objetivo y las restricciones ya está hecho por ti.

Este ejercicio forma parte del curso

Analítica de la cadena de suministro en Python

Ver curso

Instrucciones del ejercicio

  • Añade una restricción lógica de modo que, si la planta de alta capacidad en USA está abierta, entonces también se abra una planta de baja capacidad en Germany.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Initialize, Define Decision Vars., Object. Fun., and Constraints
model = LpProblem("Capacitated Plant Location Model", LpMinimize)
loc = ['USA', 'Germany', 'Japan', 'Brazil', 'India']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc],
                     lowBound=0, upBound=None, cat='Integer')
y = LpVariable.dicts("plant_", 
                     [(i,s) for s in size for i in loc], cat='Binary')
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]))
for j in loc:
    model += lpSum([x[(i, j)] for i in loc]) == demand.loc[j,'Dmd']
for i in loc:
    model += lpSum([x[(i, j)] for j in loc]) <= lpSum([cap.loc[i,s]*y[(i,s)] 
                                                       for s in size])

# Define logical constraint
model += ____ - ____ <= ____
Editar y ejecutar código