Cvičení s logickým omezením
Tvůj zákazník objednal šest produktů, které je potřeba dodat v průběhu příštího měsíce. K jejich převozu bude nutné vykonat několik jízd nákladním autem. Nosnost vozidla je 25 000 liber. Z důvodu cash flow chceš naložit co nejziskovější kombinaci produktů, která se na auto vejde.
| Produkt | Hmotnost (lbs) | Ziskovost ($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 |
Byla pro tebe připravena dvě Pythonová slovníky weight a prof a seznam prod, které obsahují hmotnost, ziskovost a název každého produktu. Můžeš si je prozkoumat v konzoli.
Toto cvičení je součástí kurzu
Supply Chain Analytics v Pythonu
Pokyny k cvičení
- Přidej omezení, které zajistí, že celková hmotnost nákladu na autě bude menší nebo rovna 25 000 librám.
- Přidej omezení, díky kterému model vybere nejvýše jeden z produktů D, E a F.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))