ComenzarEmpieza gratis

Ejercicio de combinación de restricciones

Estás trabajando en un plan de distribución para una red de almacenes. La red tiene dos almacenes (W1 y W2) y cada uno puede enviar tres tipos de productos (A, B y C). W1 es pequeño y puede enviar 10 productos A por semana o 15 productos B por semana o 20 productos C por semana. Buscas minimizar los costes totales.

En la consola se imprime un DataFrame de Pandas llamado demand que contiene la demanda mensual de cada producto. Además, el código del modelo de PuLP ya inicializa el modelo, define las variables de decisión, la función objetivo y la restricción para que el envío total de cada producto sea igual a su demanda.

Este ejercicio forma parte del curso

Analítica de la cadena de suministro en Python

Ver curso

Instrucciones del ejercicio

  • Completa el código de la restricción que modela las limitaciones de envío del almacén W1 durante 4 semanas.

Ejercicio interactivo práctico

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

# Initialize, Define Decision Vars., Objective Function, and Constraints
model = LpProblem("Distribution Planning", LpMinimize)
wh = ['W1','W2']
prod = ['A', 'B', 'C']
X = LpVariable.dicts("ship", [(w, p, c) for c in cust for p in prod for w in wh], 
                     lowBound=0, cat="Integer")
model += lpSum([X[(w, p, c)]*costs.loc[(w, p), c]  for c in cust for p in prod for w in wh])
for c in cust:
    for p in prod:
        model += lpSum([X[(w, p, c)] for w in wh]) == demand.loc[p, c]

# Define Dependent Demand Constraints
model += ((1/10) * lpSum([X[('W1', 'A', c)] for c in cust]) 
          + ____ * lpSum([X[(____, ____, c)] for c in cust])
          + ____ * lpSum([X[(____, ____, ____)] for c in cust])) <= ____
Editar y ejecutar código