ÎncepețiÎncepe gratuit

Adăugarea unei restricții logice în exercițiul de studiu de caz

Continuă studiul de caz al modelului de localizare a uzinelor cu capacitate limitată (Capacitated Plant Location) pentru un producător auto. Ai la dispoziție patru DataFrame-uri Pandas — demand, var_cost, fix_cost și cap — care conțin cererea regională (mii de mașini), costurile variabile de producție (mii USD), costurile fixe de producție (mii USD) și capacitatea de producție (mii de mașini). Două liste Python — loc și size — au fost, de asemenea, create, conținând locațiile disponibile și cele două tipuri de capacitate ale uzinelor. Toate aceste variabile au fost afișate în consolă pentru referință. Codul de inițializare, definire a variabilelor de decizie, creare a funcției obiectiv și a restricțiilor a fost completat deja.

Acest exercițiu face parte din cursul

Analitică în lanțul de aprovizionare cu Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă o restricție logică astfel încât, dacă uzina cu capacitate mare din SUA este deschisă, atunci o uzină cu capacitate mică din Germania să fie deschisă și ea.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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 += ____ - ____ <= ____
Editează și rulează codul