Adicionando restrição lógica no exercício do estudo de caso
Dê continuidade ao estudo de caso do modelo de Localização de Plantas com Capacidade para uma montadora de carros. Você recebe quatro DataFrames do Pandas, demand, var_cost, fix_cost e cap, contendo a demanda regional (milhares de carros), custos variáveis de produção (milhares de US\(), custos fixos de produção (milhares de US\)) e capacidade de produção (milhares de carros). Duas listas em Python, loc e size, também foram criadas, contendo os diferentes locais e os dois tipos de capacidades de planta. Todas essas variáveis foram impressas no console para você visualizar. O código para inicializar, definir as variáveis de decisão, criar a função objetivo e as restrições já foi concluído para você.
Este exercício faz parte do curso
Análise de Cadeia de Suprimentos em Python
Instruções do exercício
- Adicione uma restrição lógica para que, se a fábrica de alta capacidade nos EUA estiver aberta, então uma fábrica de baixa capacidade na Alemanha também seja aberta.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 += ____ - ____ <= ____