ComeçarComece de graça

Exercício de combinação de restrições

Você está trabalhando em um plano de distribuição para uma rede de armazéns. A rede tem dois armazéns (W1 e W2) e cada um pode enviar três tipos diferentes de produtos (A, B e C). O W1 é pequeno e pode enviar 10 produtos A por semana, ou 15 produtos B por semana, ou 20 produtos C por semana. Você quer minimizar os custos totais.

Um DataFrame do Pandas chamado demand é exibido no console e contém a demanda mensal de cada produto. Além disso, o código do modelo PuLP para inicializar, definir variáveis de decisão, função objetivo e a restrição para que o total enviado de cada produto seja igual à sua demanda já está incluído.

Este exercício faz parte do curso

Análise de Cadeia de Suprimentos em Python

Ver curso

Instruções do exercício

  • Complete o código da restrição que modela as limitações de envio do armazém W1 para 4 semanas.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Initialize, Define Decision Vars., Objective Function, and Constraints
model = LpProblem("Distribution Planning", LpMinimize)
wh = ['W1','W2']
prod = ['A', 'B', 'C']
X = LpVariable.dicts("ship", [(w, p, c) for c in cust for p in prod for w in wh], 
                     lowBound=0, cat="Integer")
model += lpSum([X[(w, p, c)]*costs.loc[(w, p), c]  for c in cust for p in prod for w in wh])
for c in cust:
    for p in prod:
        model += lpSum([X[(w, p, c)] for w in wh]) == demand.loc[p, c]

# Define Dependent Demand Constraints
model += ((1/10) * lpSum([X[('W1', 'A', c)] for c in cust]) 
          + ____ * lpSum([X[(____, ____, c)] for c in cust])
          + ____ * lpSum([X[(____, ____, ____)] for c in cust])) <= ____
Editar e executar o código