Začněte nyníZačněte zdarma

Přidání logického omezení do cvičení případové studie

Pokračuj v případové studii modelu Capacitated Plant Location pro výrobce automobilů. Máš k dispozici čtyři datové rámce Pandas: demand, var_cost, fix_cost a cap, které obsahují regionální poptávku (v tis. vozů), variabilní výrobní náklady (v tis. USD), fixní výrobní náklady (v tis. USD) a výrobní kapacitu (v tis. vozů). Jsou také připraveny dva pythonové seznamy loc a size s různými lokalitami a dvěma typy kapacit závodu. Všechny tyto proměnné jsou vypsány v konzoli. Kód pro inicializaci, definici rozhodovacích proměnných, vytvoření účelové funkce a omezení je již hotový.

Toto cvičení je součástí kurzu

Supply Chain Analytics v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Přidej logické omezení tak, aby v případě, že je otevřen závod s vysokou kapacitou v USA, byl otevřen také závod s nízkou kapacitou v Německu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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 += ____ - ____ <= ____
Upravit a spustit kód