Ejercicio de restricción lógica
Tu cliente ha pedido seis productos para entregar durante el próximo mes. Necesitarás enviar varios camiones para entregar todos los productos. Tus camiones tienen un límite de peso de 25.000 lb. Por razones de flujo de caja, quieres embarcar la combinación de productos más rentable que quepa en tu camión.
| Product | Weight (lbs) | Profitability ($US) |
|---|---|---|
| A | 12,583 | 102,564 |
| B | 9,204 | 130,043 |
| C | 12,611 | 127,648 |
| D | 12,131 | 155,058 |
| E | 12,889 | 238,846 |
| F | 11,529 | 197,030 |
Se han creado para ti dos diccionarios de Python, weight y prof, y una lista prod con el peso, la rentabilidad y el nombre de cada producto. Puedes explorarlos en la consola.
Este ejercicio forma parte del curso
Analítica de la cadena de suministro en Python
Instrucciones del ejercicio
- Añade una restricción para asegurar que el peso total del camión sea menor o igual a 25.000 lb.
- Añade una restricción para que el modelo seleccione, como máximo, solo uno de los productos entre D, E y F.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])
# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____
model.solve()
for i in prod:
print("{} status {}".format(i, x[i].varValue))