Übung: Einschränkungen kombinieren
Du arbeitest an einem Distributionsplan für ein Lager-Netzwerk. Das Netzwerk hat zwei Lager (W1 und W2) und jedes kann drei verschiedene Produkttypen (A, B und C) versenden. W1 ist klein und kann pro Woche entweder 10 Produkte A oder 15 Produkte B oder 20 Produkte C verschicken. Du möchtest die Gesamtkosten minimieren.
Ein Pandas-DataFrame namens demand wird in der Konsole ausgegeben und enthält die monatliche Nachfrage für jedes Produkt. Außerdem ist der Code des PuLP-Modells vorhanden, um das Modell zu initialisieren, die Entscheidungsvariablen, die Zielfunktion und die Nebenbedingung zu definieren, sodass der Gesamtversand jedes Produkts seiner Nachfrage entspricht.
Diese Übung ist Teil des Kurses
<Kurs>Supply Chain Analytics mit Python</Kurs>Übungsanweisungen
- Vervollständige den Code für die Nebenbedingung, die die Versandbeschränkungen von Lager W1 für 4 Wochen abbildet.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Initialize, Define Decision Vars., Objective Function, and Constraints
model = LpProblem("Distribution Planning", LpMinimize)
wh = ['W1','W2']
prod = ['A', 'B', 'C']
X = LpVariable.dicts("ship", [(w, p, c) for c in cust for p in prod for w in wh],
lowBound=0, cat="Integer")
model += lpSum([X[(w, p, c)]*costs.loc[(w, p), c] for c in cust for p in prod for w in wh])
for c in cust:
for p in prod:
model += lpSum([X[(w, p, c)] for w in wh]) == demand.loc[p, c]
# Define Dependent Demand Constraints
model += ((1/10) * lpSum([X[('W1', 'A', c)] for c in cust])
+ ____ * lpSum([X[(____, ____, c)] for c in cust])
+ ____ * lpSum([X[(____, ____, ____)] for c in cust])) <= ____