Lägga till logiska villkor i fallstudieövningen
Fortsätt fallstudien av Capacitated Plant Location-modellen för en biltillverkare. Du får fyra Pandas-dataramar – demand, var_cost, fix_cost och cap – som innehåller regional efterfrågan (tusental bilar), rörliga produktionskostnader (tusentals USD), fasta produktionskostnader (tusentals USD) och produktionskapacitet (tusental bilar). Två Python-listor, loc och size, har också skapats och innehåller de olika platserna respektive de två typerna av anläggningskapacitet. Alla dessa variabler har skrivits ut i konsolen för din översikt. Koden för att initiera modellen, definiera beslutsvariablerna, skapa målfunktionen och lägga till villkoren har redan slutförts åt dig.
Den här övningen är en del av kursen
Supply Chain Analytics i Python
Övningsinstruktioner
- Lägg till ett logiskt villkor så att om produktionsanläggningen med hög kapacitet i USA är öppen, måste även en anläggning med låg kapacitet i Tyskland vara öppnad.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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 += ____ - ____ <= ____