Exercițiu cu constrângeri logice
Clientul tău a comandat șase produse care trebuie livrate în cursul lunii următoare. Va trebui să expediezi mai multe încărcături de camion pentru a livra toate produsele. Camioanele tale au o limită de greutate de 25.000 de livre. Din motive de flux de numerar, dorești să expediezi combinația cea mai profitabilă de produse care poate încăpea în camion.
| Produs | Greutate (livre) | Profitabilitate (USD) |
|---|---|---|
| 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 |
Au fost create pentru tine două dicționare Python, weight și prof, și o listă prod, care conțin greutatea, profitabilitatea și numele fiecărui produs. Le poți explora în consolă.
Acest exercițiu face parte din cursul
Analitică în lanțul de aprovizionare cu Python
Instrucțiuni pentru exercițiu
- Adaugă o constrângere care să asigure că greutatea totală a camionului este mai mică sau egală cu 25.000 de livre.
- Adaugă o constrângere astfel încât modelul să selecteze cel mult unul singur dintre produsele D, E și F.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))