LoslegenKostenlos starten

Logische Nebenbedingung in der Fallstudien-Übung hinzufügen

Setze die Fallstudie zum Capacitated-Plant-Location-Modell eines Autoherstellers fort. Du erhältst vier Pandas-DataFrames demand, var_cost, fix_cost und cap, die die regionale Nachfrage (Tsd. Autos), variablen Produktionskosten (Tsd. $US), fixen Produktionskosten (Tsd. $US) und Produktionskapazitäten (Tsd. Autos) enthalten. Außerdem wurden zwei Python-Listen loc und size erstellt, die die unterschiedlichen Standorte und die zwei Werkgrößen enthalten. Alle diese Variablen wurden zur Ansicht in der Konsole ausgegeben. Der Code zum Initialisieren, Definieren der Entscheidungsvariablen, Erstellen der Zielfunktion und der Nebenbedingungen wurde bereits für dich vorbereitet.

Diese Übung ist Teil des Kurses

<Kurs>Supply Chain Analytics mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Füge eine logische Nebenbedingung hinzu: Wenn das Werk mit hoher Kapazität in den USA geöffnet wird, dann wird in Deutschland auch ein Werk mit niedriger Kapazität geöffnet.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Initialize, Define Decision Vars., Object. Fun., and Constraints
model = LpProblem("Capacitated Plant Location Model", LpMinimize)
loc = ['USA', 'Germany', 'Japan', 'Brazil', 'India']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc],
                     lowBound=0, upBound=None, cat='Integer')
y = LpVariable.dicts("plant_", 
                     [(i,s) for s in size for i in loc], cat='Binary')
model += (lpSum([fix_cost.loc[i,s] * y[(i,s)] for s in size for i in loc])
          + lpSum([var_cost.loc[i,j] * x[(i,j)] for i in loc for j in loc]))
for j in loc:
    model += lpSum([x[(i, j)] for i in loc]) == demand.loc[j,'Dmd']
for i in loc:
    model += lpSum([x[(i, j)] for j in loc]) <= lpSum([cap.loc[i,s]*y[(i,s)] 
                                                       for s in size])

# Define logical constraint
model += ____ - ____ <= ____
Code bearbeiten und ausführen