Ćwiczenie z ograniczeniami logicznymi
Twój klient zamówił sześć produktów do dostarczenia w ciągu najbliższego miesiąca. Do przewiezienia wszystkich produktów potrzeba kilku kursów ciężarówki. Dopuszczalna ładowność ciężarówki wynosi 25 000 funtów. Ze względu na płynność finansową chcesz wysłać najbardziej opłacalną kombinację produktów, która zmieści się na ciężarówce.
| Produkt | Waga (funty) | Opłacalność (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 |
Przygotowano dla ciebie dwa słowniki Pythona: weight i prof, oraz listę prod, zawierające odpowiednio wagę, opłacalność i nazwy każdego produktu. Możesz je przejrzeć w konsoli.
To ćwiczenie jest częścią kursu
Analityka łańcucha dostaw w Pythonie
Instrukcje do ćwiczenia
- Dodaj ograniczenie zapewniające, że łączna waga ładunku nie przekroczy 25 000 funtów.
- Dodaj ograniczenie, które sprawi, że model wybierze co najwyżej tylko jeden spośród produktów D, E i F.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))