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 exercicio faz parte do curso
Análise de Cadeia de Suprimentos em Python
Instruções do exercicio
- 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.
exercicio interativo prático
Tente este exercicio 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 += ____ - ____ <= ____