LoslegenKostenlos starten

Ü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>
Kurs ansehen

Ü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])) <= ____
Code bearbeiten und ausführen