Übung zu logischen Nebenbedingungen
Dein Kunde hat sechs Produkte bestellt, die im nächsten Monat geliefert werden sollen. Du musst mehrere Lkw-Ladungen verschicken, um alle Produkte zu liefern. Es gibt eine Gewichtsgrenze von 25.000 lbs pro Lkw. Aus Cashflow-Gründen möchtest du die profitabelste Kombination an Produkten versenden, die auf deinen Lkw passt.
| 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 |
Zwei Python-Dictionaries weight und prof sowie eine Liste prod wurden für dich erstellt. Sie enthalten das Gewicht, die Profitabilität und den Namen jedes Produkts. Du kannst sie in der Konsole erkunden.
Diese Übung ist Teil des Kurses
<Kurs>Supply Chain Analytics mit Python</Kurs>Übungsanweisungen
- Füge eine Nebenbedingung hinzu, die sicherstellt, dass das Gesamtgewicht des Lkw kleiner oder gleich 25.000 lbs ist.
- Füge eine Nebenbedingung hinzu, sodass das Modell höchstens nur eines der Produkte D, E und F auswählt.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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))